From f839e19947e85279fd302053af63a741cbafd46e Mon Sep 17 00:00:00 2001 From: biss Date: Tue, 4 Aug 2026 16:05:05 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=8C=85=20=20--=20[CST=2020?= =?UTF-8?q?26-08-04=20Tuesday=2016:05:05]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _astro/BaseLayout.DvPRLM9I.css | 1 + about/index.html | 384 +++++++ api/posts.json | 1 + archives/index.html | 380 +++++++ archives/page/2/index.html | 380 +++++++ archives/page/3/index.html | 380 +++++++ atom.xml | 1 + categories/index.html | 376 +++++++ categories/life/index.html | 376 +++++++ categories/notes/index.html | 376 +++++++ categories/site-notes/index.html | 376 +++++++ categories/study/index.html | 376 +++++++ categories/tech/index.html | 376 +++++++ cc/index.html | 384 +++++++ cookie/index.html | 383 +++++++ go/index.html | 501 +++++++++ images/Bi.ico | Bin 0 -> 36534 bytes images/apple-touch-icon.png | Bin 0 -> 2660 bytes images/background.png | Bin 0 -> 467607 bytes images/pwa-192x192.png | Bin 0 -> 2783 bytes images/pwa-512x512.png | Bin 0 -> 7629 bytes images/pwa-maskable-512x512.png | Bin 0 -> 6685 bytes img/404.jpg | Bin 0 -> 16393 bytes img/butterfly-icon.png | Bin 0 -> 275383 bytes img/error-page.png | Bin 0 -> 35850 bytes img/favicon.ico | Bin 0 -> 15406 bytes img/friend_404.gif | Bin 0 -> 65097 bytes index.html | 626 +++++++++++ js/external-links.js | 45 + js/pwa.js | 104 ++ js/random.js | 93 ++ js/search/typesense-search.js | 528 +++++++++ js/shuoshuo.js | 363 ++++++ js/shuoshuoshouye.js | 103 ++ js/weather.js | 204 ++++ link/index.html | 378 +++++++ manifest.webmanifest | 46 + offline.html | 29 + page/2/index.html | 626 +++++++++++ page/3/index.html | 626 +++++++++++ posts/2b2fb1a7/index.html | 867 +++++++++++++++ posts/33249733/index.html | 973 ++++++++++++++++ posts/34725d47/index.html | 926 ++++++++++++++++ posts/3a26a97a/index.html | 1039 +++++++++++++++++ posts/3e61a389/index.html | 1154 +++++++++++++++++++ posts/3f8de22/index.html | 934 ++++++++++++++++ posts/41b9aff7/index.html | 1325 ++++++++++++++++++++++ posts/437a5198/index.html | 1182 ++++++++++++++++++++ posts/4c91a8f2/index.html | 1132 +++++++++++++++++++ posts/56f57c0b/index.html | 873 +++++++++++++++ posts/5785bd01/index.html | 853 ++++++++++++++ posts/59c8572a/index.html | 889 +++++++++++++++ posts/5ed2f1e6/index.html | 1265 +++++++++++++++++++++ posts/66e66374/index.html | 853 ++++++++++++++ posts/69b16001/index.html | 875 +++++++++++++++ posts/6e3332b/index.html | 889 +++++++++++++++ posts/6e5f5039/index.html | 948 ++++++++++++++++ posts/7207243b/index.html | 1215 ++++++++++++++++++++ posts/7baa41fc/index.html | 877 +++++++++++++++ posts/7e921903/index.html | 1118 +++++++++++++++++++ posts/8712baaa/index.html | 868 +++++++++++++++ posts/8802e397/index.html | 880 +++++++++++++++ posts/8bdb35fb/index.html | 1352 ++++++++++++++++++++++ posts/8f3b9d21/index.html | 938 ++++++++++++++++ posts/9b2ef00a/index.html | 1033 +++++++++++++++++ posts/a31d95d9/index.html | 856 ++++++++++++++ posts/a6ab0925/index.html | 1165 +++++++++++++++++++ posts/ad244066/index.html | 1728 +++++++++++++++++++++++++++++ posts/b559997d/index.html | 930 ++++++++++++++++ posts/b5601a7e/index.html | 907 +++++++++++++++ posts/b57500e9/index.html | 870 +++++++++++++++ posts/b5866b9e/index.html | 889 +++++++++++++++ posts/bb18d851/index.html | 1277 +++++++++++++++++++++ posts/bc56f789/index.html | 879 +++++++++++++++ posts/c4477b0c/index.html | 979 ++++++++++++++++ posts/c6143ad3/index.html | 1360 +++++++++++++++++++++++ posts/ce1ec3fe/index.html | 979 ++++++++++++++++ posts/d2c8521/index.html | 908 +++++++++++++++ posts/da17d00/index.html | 1177 ++++++++++++++++++++ posts/e8f95ead/index.html | 1001 +++++++++++++++++ posts/e9a8e898/index.html | 987 ++++++++++++++++ posts/efe1e805/index.html | 858 ++++++++++++++ posts/f0a1a1f4/index.html | 879 +++++++++++++++ posts/f287c563/index.html | 1524 +++++++++++++++++++++++++ privacy/index.html | 382 +++++++ rss.xml | 1 + rss.xsl | 261 +++++ shuoshuo/index.html | 424 +++++++ sitemap-0.xml | 1 + sitemap-index.xml | 1 + sw.js | 110 ++ tags/1panel/index.html | 376 +++++++ tags/AI/index.html | 376 +++++++ tags/AdguardHome/index.html | 376 +++++++ tags/Astro/index.html | 376 +++++++ tags/C%23/index.html | 376 +++++++ tags/Cloudflare Worker/index.html | 376 +++++++ tags/Cudy-TR3000/index.html | 376 +++++++ tags/OpenAI/index.html | 376 +++++++ tags/OpenGL/index.html | 376 +++++++ tags/Openclash/index.html | 376 +++++++ tags/Openwrt/index.html | 376 +++++++ tags/Umami/index.html | 376 +++++++ tags/gitea/index.html | 376 +++++++ tags/index.html | 376 +++++++ tags/opencv/index.html | 376 +++++++ tags/图像生成/index.html | 376 +++++++ tags/生活/index.html | 376 +++++++ tags/网站/index.html | 376 +++++++ tags/英语/index.html | 376 +++++++ tags/迁移/index.html | 376 +++++++ tags/随笔/index.html | 376 +++++++ 112 files changed, 63309 insertions(+) create mode 100644 _astro/BaseLayout.DvPRLM9I.css create mode 100644 about/index.html create mode 100644 api/posts.json create mode 100644 archives/index.html create mode 100644 archives/page/2/index.html create mode 100644 archives/page/3/index.html create mode 100644 atom.xml create mode 100644 categories/index.html create mode 100644 categories/life/index.html create mode 100644 categories/notes/index.html create mode 100644 categories/site-notes/index.html create mode 100644 categories/study/index.html create mode 100644 categories/tech/index.html create mode 100644 cc/index.html create mode 100644 cookie/index.html create mode 100644 go/index.html create mode 100644 images/Bi.ico create mode 100644 images/apple-touch-icon.png create mode 100644 images/background.png create mode 100644 images/pwa-192x192.png create mode 100644 images/pwa-512x512.png create mode 100644 images/pwa-maskable-512x512.png create mode 100644 img/404.jpg create mode 100644 img/butterfly-icon.png create mode 100644 img/error-page.png create mode 100644 img/favicon.ico create mode 100644 img/friend_404.gif create mode 100644 index.html create mode 100644 js/external-links.js create mode 100644 js/pwa.js create mode 100644 js/random.js create mode 100644 js/search/typesense-search.js create mode 100644 js/shuoshuo.js create mode 100644 js/shuoshuoshouye.js create mode 100644 js/weather.js create mode 100644 link/index.html create mode 100644 manifest.webmanifest create mode 100644 offline.html create mode 100644 page/2/index.html create mode 100644 page/3/index.html create mode 100644 posts/2b2fb1a7/index.html create mode 100644 posts/33249733/index.html create mode 100644 posts/34725d47/index.html create mode 100644 posts/3a26a97a/index.html create mode 100644 posts/3e61a389/index.html create mode 100644 posts/3f8de22/index.html create mode 100644 posts/41b9aff7/index.html create mode 100644 posts/437a5198/index.html create mode 100644 posts/4c91a8f2/index.html create mode 100644 posts/56f57c0b/index.html create mode 100644 posts/5785bd01/index.html create mode 100644 posts/59c8572a/index.html create mode 100644 posts/5ed2f1e6/index.html create mode 100644 posts/66e66374/index.html create mode 100644 posts/69b16001/index.html create mode 100644 posts/6e3332b/index.html create mode 100644 posts/6e5f5039/index.html create mode 100644 posts/7207243b/index.html create mode 100644 posts/7baa41fc/index.html create mode 100644 posts/7e921903/index.html create mode 100644 posts/8712baaa/index.html create mode 100644 posts/8802e397/index.html create mode 100644 posts/8bdb35fb/index.html create mode 100644 posts/8f3b9d21/index.html create mode 100644 posts/9b2ef00a/index.html create mode 100644 posts/a31d95d9/index.html create mode 100644 posts/a6ab0925/index.html create mode 100644 posts/ad244066/index.html create mode 100644 posts/b559997d/index.html create mode 100644 posts/b5601a7e/index.html create mode 100644 posts/b57500e9/index.html create mode 100644 posts/b5866b9e/index.html create mode 100644 posts/bb18d851/index.html create mode 100644 posts/bc56f789/index.html create mode 100644 posts/c4477b0c/index.html create mode 100644 posts/c6143ad3/index.html create mode 100644 posts/ce1ec3fe/index.html create mode 100644 posts/d2c8521/index.html create mode 100644 posts/da17d00/index.html create mode 100644 posts/e8f95ead/index.html create mode 100644 posts/e9a8e898/index.html create mode 100644 posts/efe1e805/index.html create mode 100644 posts/f0a1a1f4/index.html create mode 100644 posts/f287c563/index.html create mode 100644 privacy/index.html create mode 100644 rss.xml create mode 100644 rss.xsl create mode 100644 shuoshuo/index.html create mode 100644 sitemap-0.xml create mode 100644 sitemap-index.xml create mode 100644 sw.js create mode 100644 tags/1panel/index.html create mode 100644 tags/AI/index.html create mode 100644 tags/AdguardHome/index.html create mode 100644 tags/Astro/index.html create mode 100644 tags/C%23/index.html create mode 100644 tags/Cloudflare Worker/index.html create mode 100644 tags/Cudy-TR3000/index.html create mode 100644 tags/OpenAI/index.html create mode 100644 tags/OpenGL/index.html create mode 100644 tags/Openclash/index.html create mode 100644 tags/Openwrt/index.html create mode 100644 tags/Umami/index.html create mode 100644 tags/gitea/index.html create mode 100644 tags/index.html create mode 100644 tags/opencv/index.html create mode 100644 tags/图像生成/index.html create mode 100644 tags/生活/index.html create mode 100644 tags/网站/index.html create mode 100644 tags/英语/index.html create mode 100644 tags/迁移/index.html create mode 100644 tags/随笔/index.html diff --git a/_astro/BaseLayout.DvPRLM9I.css b/_astro/BaseLayout.DvPRLM9I.css new file mode 100644 index 0000000..8dac41d --- /dev/null +++ b/_astro/BaseLayout.DvPRLM9I.css @@ -0,0 +1 @@ +@import"https://fontsapi.zeoseven.com/7/main/result.css";:root{color-scheme:light;--bg: #f7f5ef;--surface: #fffdf8;--text: #20242a;--muted: #686f78;--line: #ded8cc;--accent: #0f766e;--accent-strong: #14532d;--shadow: 0 14px 45px rgba(58, 51, 38, .1);--page-gutter: clamp(20px, 4vw, 64px);--wide-width: 1440px;--content-width: 1280px;--article-width: 1080px;--narrow-width: 1000px}:root[data-theme=dark]{color-scheme:dark;--bg: #0b1014;--surface: #141b21;--text: #eef4f6;--muted: #b6c3c9;--line: rgba(181, 198, 207, .28);--accent: #8be0d5;--accent-strong: #b7e7d4;--shadow: 0 18px 52px rgba(0, 0, 0, .44)}*{box-sizing:border-box}html{max-width:100%;overflow-x:hidden;overflow-x:clip}body{margin:0;color:var(--text);font-family:"Zhuque Fangsong (technical preview)";font-weight:400;line-height:1.75;background:linear-gradient(#f7f5efdb,#f7f5eff2),url(/images/background.png) center top / cover fixed;transition:color .22s ease,background-color .22s ease}:root[data-theme=dark] body{background:linear-gradient(#070a0ee6,#080d11f5),url(/images/background.png) center top / cover fixed}a{color:inherit;text-decoration:none}.site-header{position:sticky;top:12px;z-index:10;pointer-events:none}.nav{position:relative;width:min(var(--wide-width),calc(100% - (var(--page-gutter) * 2)));min-height:58px;margin:0 auto;padding:0 18px;display:grid;grid-template-columns:minmax(120px,1fr) auto minmax(120px,1fr);align-items:center;gap:24px;overflow:hidden;border:1px solid rgba(255,255,255,.56);border-radius:999px;background:linear-gradient(135deg,#ffffff85,#fff3),#ffffff47;box-shadow:inset 0 1px #ffffffd1,inset 0 -18px 38px #ffffff29,0 18px 54px #2c373f2e;backdrop-filter:blur(22px) saturate(180%);-webkit-backdrop-filter:blur(22px) saturate(180%);pointer-events:auto}.nav:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 18% 0%,rgba(255,255,255,.72),transparent 30%),linear-gradient(90deg,rgba(255,255,255,.42),transparent 38%,rgba(255,255,255,.22));opacity:.74;pointer-events:none}.nav:after{display:none}.brand{position:relative;z-index:1;font-size:1.05rem;font-weight:800}.nav-menu{display:contents}.nav-drawer-backdrop{display:none}.nav-menu-toggle{position:relative;z-index:1;display:none;width:40px;height:40px;place-items:center;border:1px solid transparent;border-radius:999px;color:var(--muted);font:inherit;background:transparent;cursor:pointer;transition:color .2s ease,background-color .2s ease,border-color .2s ease,box-shadow .2s ease,transform .2s ease}.nav-menu-close{display:none}.nav-links{position:relative;z-index:1;display:flex;align-items:center;gap:6px;color:var(--muted);font-size:.94rem;white-space:nowrap}.nav-center{justify-content:center}.nav-actions{justify-content:flex-end}.nav-links a,.nav-random,.nav-search,.nav-console,.theme-toggle{display:inline-flex;align-items:center;gap:6px;border:1px solid transparent;border-radius:999px;padding:7px 12px;transition:color .2s ease,background-color .2s ease,border-color .2s ease,box-shadow .2s ease,transform .2s ease}.nav-search,.nav-random,.nav-console,.theme-toggle{color:inherit;font:inherit;line-height:inherit;background:transparent;cursor:pointer}.nav-random{position:relative;overflow:hidden}.nav-random:after{content:"";position:absolute;inset:3px;border-radius:inherit;background:linear-gradient(120deg,transparent 8%,rgba(255,255,255,.82) 34%,transparent 58%);opacity:0;transform:translate(-135%);pointer-events:none}.nav-random.is-randomizing{color:var(--accent);border-color:#0f766e38;background:#ffffff80;box-shadow:inset 0 1px #ffffffc2,0 10px 24px #0f766e29}.nav-random.is-randomizing:after{opacity:1;animation:random-button-sheen .72s ease both}.nav-random.is-randomizing .nav-icon{animation:random-button-spin .72s cubic-bezier(.2,.8,.2,1) both}.nav-icon{display:inline-grid;width:16px;min-width:16px;height:16px;place-items:center;font-size:.95em;line-height:1}.theme-toggle{justify-content:center;width:38px;min-height:38px;padding:0}:root:not([data-theme=dark]) .theme-toggle-sun,:root[data-theme=dark] .theme-toggle-moon{display:none}.nav-links a:hover,.nav-random:hover,.nav-search:hover,.nav-console:hover,.theme-toggle:hover,.site-footer a:hover,.section-heading a:hover{color:var(--accent)}.custom-context-menu{position:fixed;top:0;left:0;z-index:1000;width:min(218px,calc(100vw - 20px));max-height:calc(100vh - 20px);overflow-y:auto;border:1px solid rgba(255,255,255,.58);border-radius:14px;padding:8px;color:#4f565b;background:linear-gradient(145deg,#ffffffc7,#ebf8e7ad),#f5fcf1d1;box-shadow:inset 0 1px #ffffffdb,0 18px 42px #2c373f2e;backdrop-filter:blur(18px) saturate(165%);-webkit-backdrop-filter:blur(18px) saturate(165%);opacity:0;pointer-events:none;transform:translate3d(0,6px,0) scale(.98);transform-origin:top left;transition:opacity .14s ease,transform .14s ease}.custom-context-menu.is-open{opacity:1;pointer-events:auto;transform:translateZ(0) scale(1)}.custom-context-menu [hidden]{display:none!important}.context-menu-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding-bottom:7px}.context-menu-group{display:grid;gap:2px;border-top:1px dashed rgba(104,111,120,.18);padding-top:7px}.context-menu-group+.context-menu-group{margin-top:7px}.custom-context-menu :where(a,button){display:flex;align-items:center;width:100%;min-width:0;border:0;color:inherit;font:inherit;line-height:1.25;text-align:left;background:transparent;cursor:pointer}.context-menu-nav :where(a,button){justify-content:center;height:42px;border:1px solid rgba(178,194,170,.42);border-radius:14px;color:#6b7174;background:#ffffff70;box-shadow:inset 0 1px #ffffffc2}.context-menu-group :where(a,button){gap:12px;min-height:40px;border-radius:10px;padding:9px 10px}.custom-context-menu :where(a,button):hover,.custom-context-menu :where(a,button):focus-visible{color:var(--accent);background:#ffffff94;outline:0}.custom-context-menu i{display:inline-grid;width:18px;min-width:18px;height:18px;place-items:center;color:#737a7d;font-size:.98rem;line-height:1}.custom-context-menu :where(a,button):hover i,.custom-context-menu :where(a,button):focus-visible i{color:currentColor}.custom-context-menu span{min-width:0;overflow:hidden;font-size:.95rem;font-weight:650;text-overflow:ellipsis;white-space:nowrap}.context-menu-native-hint{position:fixed;right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));z-index:900;display:inline-flex;align-items:center;gap:6px;max-width:min(300px,calc(100vw - 32px));border:1px solid rgba(255,255,255,.58);border-radius:999px;padding:8px 12px;color:#4f565b;font-size:.84rem;font-weight:650;line-height:1.3;background:linear-gradient(145deg,#ffffffc7,#ebf8e7ad),#f5fcf1d1;box-shadow:inset 0 1px #ffffffdb,0 12px 30px #2c373f24;backdrop-filter:blur(16px) saturate(165%);-webkit-backdrop-filter:blur(16px) saturate(165%);opacity:0;pointer-events:none;transform:translate3d(0,8px,0);transition:opacity .18s ease,transform .18s ease}.context-menu-native-hint.is-visible{opacity:1;transform:translateZ(0)}.context-menu-native-hint kbd{border:1px solid rgba(178,194,170,.52);border-radius:7px;padding:1px 6px;color:var(--accent);font:inherit;background:#ffffff85;box-shadow:inset 0 -1px #2c373f14}.nav-links a:hover,.nav-random:hover,.nav-search:hover,.nav-console:hover,.theme-toggle:hover,.nav-menu-toggle:hover{border-color:#ffffff9e;background:#ffffff61;box-shadow:inset 0 1px #ffffffb8,0 8px 18px #0f766e1a;transform:translateY(-1px)}.random-post-transition{position:fixed;inset:0;z-index:1200;display:grid;place-items:center;padding:var(--page-gutter);opacity:0;pointer-events:none;background:#f7f5ef57;backdrop-filter:blur(6px) saturate(145%);-webkit-backdrop-filter:blur(6px) saturate(145%);transition:opacity .18s ease}.random-post-transition.is-visible{opacity:1}.random-post-flight{position:absolute;inset:0;overflow:hidden;pointer-events:none}.random-post-flying-card{position:absolute;top:calc(50% + var(--flight-y));left:50%;width:min(260px,68vw);border:1px solid rgba(255,255,255,.64);border-radius:8px;padding:12px 14px;color:#2f4358;background:linear-gradient(135deg,#ffffffe0,#eefaf6ad),#ffffffbd;box-shadow:inset 0 1px #ffffffdb,0 18px 48px #2c373f29;opacity:0;transform:translate3d(-50vw,-50%,0) rotate(var(--flight-rotate)) scale(.82);animation:random-card-fly 1.16s cubic-bezier(.16,.84,.28,1) var(--flight-delay) both}.random-post-flying-card small,.random-post-flying-card strong{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.random-post-flying-card small{color:var(--muted);font-size:.74rem;font-weight:700}.random-post-flying-card strong{margin-top:4px;font-size:.95rem;font-weight:800}.random-post-transition-card{position:relative;display:inline-flex;align-items:center;gap:12px;min-width:min(280px,100%);border:1px solid rgba(255,255,255,.66);border-radius:999px;padding:16px 22px;color:var(--accent);font-size:1rem;font-weight:750;background:linear-gradient(135deg,#ffffffd6,#eefaf69e),#ffffffb3;box-shadow:inset 0 1px #ffffffe0,0 24px 64px #2c373f33;transform:translateY(8px) scale(.96);transition:transform .22s cubic-bezier(.2,.8,.2,1)}.random-post-transition.is-visible .random-post-transition-card{transform:translateY(0) scale(1)}.random-post-transition-card:before,.random-post-transition-card:after{content:"";position:absolute;inset:-10px;border:1px solid rgba(15,118,110,.24);border-radius:inherit;opacity:0;animation:random-card-pulse 1.1s ease-out infinite}.random-post-transition-card:after{animation-delay:.28s}.random-post-transition-card i{display:inline-grid;width:22px;min-width:22px;height:22px;place-items:center;animation:random-button-spin .9s cubic-bezier(.2,.8,.2,1) infinite}.random-post-transition-card span{min-width:0;overflow-wrap:anywhere}.random-post-transition-card span:after{content:"";display:inline-block;width:1.25em;text-align:left;animation:random-loading-dots 1s steps(4,end) infinite}.has-control-console{overflow:hidden}.control-console{position:fixed;inset:0;z-index:900;display:grid;place-items:center;padding:var(--page-gutter);opacity:0;pointer-events:none;transition:opacity .18s ease}.control-console.is-open{opacity:1;pointer-events:auto}.control-console-backdrop{position:absolute;inset:0;background:#1c252a5c;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.control-console-panel{position:relative;width:min(880px,100%);max-height:min(760px,calc(100vh - (var(--page-gutter) * 2)));overflow:auto;border:1px solid rgba(255,255,255,.58);border-radius:8px;padding:clamp(20px,4vw,30px);background:radial-gradient(circle at 14% 0%,rgba(255,255,255,.76),transparent 34%),linear-gradient(145deg,#ffffffc2,#e2f8f17a),#fffdf8e0;box-shadow:inset 0 1px #ffffffd1,0 28px 80px #2c373f3d;backdrop-filter:blur(20px) saturate(165%);-webkit-backdrop-filter:blur(20px) saturate(165%);transform:translateY(10px) scale(.98);transition:transform .18s ease}.control-console.is-open .control-console-panel{transform:translateY(0) scale(1)}.control-console-panel:focus{outline:0}.control-console-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:20px}.control-console-head p{margin:0 0 4px;color:var(--accent);font-size:.78rem;font-weight:800}.control-console-head h2{margin:0;color:#20242a;font-size:clamp(1.8rem,5vw,2.7rem);line-height:1.08}.control-console-close{display:grid;width:40px;height:40px;place-items:center;flex:0 0 auto;border:1px solid rgba(15,118,110,.16);border-radius:999px;color:var(--accent);font:inherit;background:#ecfdf5a3;cursor:pointer;transition:color .2s ease,background-color .2s ease,transform .2s ease}.control-console-close:hover{color:#fff;background:#3eb8be;transform:translateY(-1px)}.control-console-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.control-site-card{display:grid;grid-template-columns:46px minmax(0,1fr);gap:14px;align-items:center;min-width:0;border:1px solid rgba(15,118,110,.14);border-radius:8px;padding:16px;background:#ecfdf594;box-shadow:inset 0 1px #ffffff9e;transition:border-color .2s ease,background-color .2s ease,transform .2s ease}.control-site-card:hover{border-color:#0f766e47;background:#ecfdf5c7;transform:translateY(-2px)}.control-site-card>i{display:grid;width:46px;height:46px;place-items:center;border-radius:8px;color:#fff;background:#3eb8be}.control-site-card span{display:grid;min-width:0;gap:3px}.control-site-card strong{color:#33433f;font-size:1.04rem;line-height:1.25}.control-site-card em,.control-site-card small{overflow:hidden;color:var(--muted);font-style:normal;text-overflow:ellipsis;white-space:nowrap}.control-site-card small{grid-column:2;font-size:.82rem}.control-console-info{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:18px}.control-console-info section{display:grid;gap:4px;border:1px solid rgba(222,216,204,.72);border-radius:8px;padding:14px;background:#fffdf88f}.control-console-info span{color:var(--muted);font-size:.84rem;font-weight:700}.control-console-info strong{min-width:0;overflow-wrap:anywhere;color:#2f4358;font-size:1rem}:root[data-theme=dark] .nav{border-color:#a6b8c233;background:linear-gradient(135deg,#19232ad1,#0a0f14a8),#0a0f14ad;box-shadow:inset 0 1px #ffffff1f,inset 0 -18px 38px #0000002e,0 18px 54px #0000006b}:root[data-theme=dark] .nav:before{background:radial-gradient(circle at 18% 0%,rgba(125,211,199,.16),transparent 32%),linear-gradient(90deg,rgba(255,255,255,.07),transparent 42%,rgba(125,211,199,.08))}:root[data-theme=dark] .nav:after{background:#ffffff1f}:root[data-theme=dark] .nav-links a:hover,:root[data-theme=dark] .nav-random:hover,:root[data-theme=dark] .nav-search:hover,:root[data-theme=dark] .nav-console:hover,:root[data-theme=dark] .theme-toggle:hover,:root[data-theme=dark] .nav-menu-toggle:hover{border-color:#7dd3c747;background:#7dd3c71c;box-shadow:inset 0 1px #ffffff1f,0 8px 18px #0000002e}:root[data-theme=dark] .nav-random.is-randomizing{color:var(--accent);border-color:#8be0d552;background:#7dd3c724;box-shadow:inset 0 1px #ffffff1f,0 10px 24px #00000047}:root[data-theme=dark] .random-post-transition{background:#030a0c61}:root[data-theme=dark] .random-post-transition-card{border-color:#a6b8c238;background:linear-gradient(135deg,#19232ae6,#0a1116c2),#0e161cd6;box-shadow:inset 0 1px #ffffff1a,0 28px 74px #0000006b}:root[data-theme=dark] .random-post-transition-card:before,:root[data-theme=dark] .random-post-transition-card:after{border-color:#8be0d542}:root[data-theme=dark] .random-post-flying-card{border-color:#a6b8c233;color:#edf7f5;background:linear-gradient(135deg,#19232ae0,#0a1116b8),#0e161cc7;box-shadow:inset 0 1px #ffffff1a,0 22px 54px #00000057}:root[data-theme=dark] .control-console-backdrop{background:#030a0c94}:root[data-theme=dark] .control-console-panel{border-color:#a6b8c233;background:radial-gradient(circle at 14% 0%,rgba(125,211,199,.08),transparent 34%),linear-gradient(145deg,#18222ae6,#0a1116d6),#0e161cd6;box-shadow:inset 0 1px #ffffff1a,0 28px 80px #00000075}:root[data-theme=dark] .control-console-head h2,:root[data-theme=dark] .control-site-card strong,:root[data-theme=dark] .control-console-info strong{color:#edf7f5}:root[data-theme=dark] .control-site-card,:root[data-theme=dark] .control-console-info section,:root[data-theme=dark] .control-console-close{border-color:#7dd3c733;background:#7dd3c714;box-shadow:inset 0 1px #ffffff14}:root[data-theme=dark] .control-console-close:hover{color:#081315;background:var(--accent)}:root[data-theme=dark] .custom-context-menu{border-color:#a6b8c233;color:#e2ecef;background:linear-gradient(145deg,#1b272fe6,#0a1116d1),#0e161cd6;box-shadow:inset 0 1px #ffffff1a,0 18px 42px #0000006b}:root[data-theme=dark] .context-menu-nav :where(a,button){border-color:#a6b8c229;color:#c7d4d9;background:#ffffff14;box-shadow:inset 0 1px #ffffff14}:root[data-theme=dark] .context-menu-group{border-top-color:#a6b8c229}:root[data-theme=dark] .custom-context-menu :where(a,button):hover,:root[data-theme=dark] .custom-context-menu :where(a,button):focus-visible{color:var(--accent);background:#7dd3c71a}:root[data-theme=dark] .custom-context-menu i{color:#c1cdd2}:root[data-theme=dark] .context-menu-native-hint{border-color:#a6b8c233;color:#e2ecef;background:linear-gradient(145deg,#1b272fe6,#0a1116d1),#0e161cd6;box-shadow:inset 0 1px #ffffff1a,0 12px 30px #00000052}:root[data-theme=dark] .context-menu-native-hint kbd{border-color:#a6b8c233;color:var(--accent);background:#ffffff14;box-shadow:inset 0 -1px #0000002e}.hero{width:min(var(--wide-width),calc(100% - (var(--page-gutter) * 2)));min-height:360px;margin:0 auto;display:grid;align-items:center}.compact-hero{min-height:260px}.hero h1{margin:0;font-size:clamp(3rem,8vw,6.5rem);line-height:.95}.hero p{max-width:620px;margin:18px 0 0;color:var(--muted);font-size:1.12rem}.home-hero{grid-template-columns:minmax(320px,.74fr) minmax(360px,1fr);gap:clamp(28px,6vw,84px)}.hero-copy{min-width:0}.hero-talk{align-self:center;width:100%;max-width:820px;min-height:190px;overflow:hidden;border:1px solid rgba(255,255,255,.52);border-radius:8px;padding:18px 18px 16px;background:linear-gradient(135deg,#ffffff4d,#f1faf429),#ffffff2e;box-shadow:inset 0 1px #ffffff94,0 18px 46px #2c373f1f;backdrop-filter:blur(10px) saturate(135%);-webkit-backdrop-filter:blur(10px) saturate(135%)}.hero-talk-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px;color:var(--accent-strong);font-size:.86rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.hero-talk-head a{display:grid;width:34px;height:34px;place-items:center;border:1px solid rgba(15,118,110,.16);border-radius:999px;color:var(--accent);background:#ecfdf58a;transition:color .2s ease,background-color .2s ease,transform .2s ease}.hero-talk-head a:hover{color:#fff;background:#3eb8be;transform:translateY(-1px)}.hero-talk .talk-list{display:grid;height:120px;margin:0;overflow:hidden;padding:0;list-style:none}.hero-talk .talk-list:empty:before{content:"说说加载中...";display:grid;min-height:58px;align-items:center;color:var(--muted);font-size:.95rem}.hero-talk .item{display:flex;min-height:40px;align-items:center;gap:10px;border-top:1px dashed rgba(104,111,120,.22);padding:9px 2px;color:#40505a;font-size:.96rem;line-height:1.55}.hero-talk .item:first-child{border-top:0}.hero-talk .item:before{content:"";width:7px;height:7px;flex:0 0 auto;border-radius:999px;background:#3eb8be;box-shadow:0 0 0 4px #3eb8be24}.hero-talk .item i{color:var(--accent)}.eyebrow{margin:0 0 16px!important;color:var(--accent-strong)!important;font-size:.95rem!important;font-weight:700}.content-wrap{width:min(var(--content-width),calc(100% - (var(--page-gutter) * 2)));margin:0 auto 72px}.content-wrap.narrow{width:min(var(--narrow-width),calc(100% - (var(--page-gutter) * 2)))}.page-header-card{position:relative;overflow:hidden;margin:40px 0 26px;border:1px solid rgba(255,255,255,.58);border-radius:8px;padding:clamp(26px,5vw,44px);background:radial-gradient(circle at 18% 0%,rgba(255,255,255,.78),transparent 36%),linear-gradient(135deg,#ffffff94,#eefaf35c),#fffdf8b8;box-shadow:inset 0 1px #ffffffd1,0 18px 48px #3a33261f;backdrop-filter:blur(18px) saturate(165%);-webkit-backdrop-filter:blur(18px) saturate(165%)}.page-header-card:after{content:"";position:absolute;top:10px;right:18px;left:18px;height:1px;border-radius:999px;background:#ffffffc2}.page-header-eyebrow{position:relative;z-index:1;margin:0 0 8px;color:var(--accent);font-size:.86rem;font-weight:700}.page-header-card h1,.content-wrap .page-header-card h1{position:relative;z-index:1;margin:0;color:#20242a;font-size:clamp(2rem,5vw,3.6rem);line-height:1.08}.page-header-subtitle{position:relative;z-index:1;max-width:620px;margin:12px 0 0;color:var(--muted);font-size:1rem}.page-with-card{margin-bottom:0}.page-article{margin-top:0}.post-layout{width:min(var(--wide-width),calc(100% - (var(--page-gutter) * 2)));margin:40px auto 84px;display:grid;grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:28px}.post-layout .article{width:100%;min-width:0;margin:0}.home-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:24px}.home-main{min-width:0}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:18px}.section-heading h2,.content-wrap h1{margin:0;font-size:1.8rem;line-height:1.2}.section-heading a{color:var(--muted)}.post-list{display:grid;gap:16px}.post-card{border:1px solid var(--line);border-radius:8px;padding:22px;background:#fffdf8e0;box-shadow:var(--shadow)}.post-card h2{margin:6px 0 8px;font-size:1.35rem;line-height:1.35}.post-card p{margin:0;color:var(--muted)}.home-sidebar{align-self:stretch;display:grid;align-content:start;gap:20px}.sticky-sidebar{position:sticky;top:84px;display:grid;align-content:start;gap:20px}.sidebar-card{overflow:hidden;border:1px solid rgba(222,216,204,.72);border-radius:8px;padding:18px;background:linear-gradient(135deg,#ffffffb8,#f2fbedc7),#fffdf8c2;box-shadow:var(--shadow);backdrop-filter:blur(12px)}.sidebar-card h2{display:flex;align-items:center;gap:8px;margin:0 0 14px;color:#4d5258;font-size:1.08rem;font-weight:700}.sidebar-card h2 em{margin-left:auto;min-width:28px;border-radius:999px;padding:2px 8px;color:#6d9cc2;font-size:.78rem;font-style:normal;text-align:center;background:#66c8f52e}.profile-card{text-align:center}.profile-avatar{width:112px;height:112px;margin:0 auto 14px;border-radius:999px;object-fit:cover;box-shadow:0 12px 30px #0f766e2e}.profile-name{margin-bottom:16px;font-family:Georgia,Times New Roman,serif;color:#585b5e;font-size:1.9rem;letter-spacing:0}.profile-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:18px}.profile-stats a{display:grid;gap:3px;color:var(--muted)}.profile-stats strong{color:#2f4358;font-size:1.22rem;font-weight:600}.profile-stats a:first-child strong,.notice-card strong,.schedule-left span,.calendar-summary span{color:#66c8f5}.follow-button{display:flex;align-items:center;justify-content:center;gap:10px;min-height:44px;border-radius:8px;color:#fff;font-weight:700;background:#3eb8be;transition:transform .2s ease,background-color .2s ease}.follow-button:hover{color:#fff;transform:translateY(-1px);background:#279fa5}.github-mark{font-size:.9rem}.profile-links{display:flex;justify-content:center;gap:18px;margin-top:16px;color:#3f5368;font-weight:700}.notice-card p{margin:.65em 0;color:#596068;line-height:1.9}.site-info-card h2 i{width:18px;color:#3eb8be;font-size:.92rem}.site-info-list{display:grid;margin:0}.site-info-list div{display:flex;align-items:center;justify-content:space-between;gap:18px;border-top:1px dashed rgba(104,111,120,.2);padding:9px 0}.site-info-list div:first-child{border-top:0;padding-top:0}.site-info-list div:last-child{padding-bottom:0}.site-info-list dt,.site-info-list dd{margin:0}.site-info-list dt{color:#68717a;font-size:.92rem;font-weight:700}.site-info-list dd{min-width:0;color:#1aa8f6;font-size:.98rem;font-weight:800;line-height:1.3;text-align:right;overflow-wrap:anywhere}#welcome-info,#welcome-ip-location-info{margin:.65em 0;overflow-wrap:anywhere;color:#596068;line-height:1.9;--kouseki-welcome-color: #66c8f5;--kouseki-ip-color: #66c8f5;--kouseki-gl-size: 16px}#welcome-info b span.ip-mask,#welcome-ip-location-info b span.ip-mask{display:inline-block;filter:blur(6px);transition:filter .3s ease;cursor:pointer;user-select:none}#welcome-info b span.ip-mask:hover,#welcome-info b span.ip-mask:active,#welcome-ip-location-info b span.ip-mask:hover,#welcome-ip-location-info b span.ip-mask:active{filter:blur(0)}.calendar-widget,.schedule-widget{display:grid;grid-template-columns:.9fr 1.1fr;gap:16px;align-items:center}.calendar-summary,.schedule-left{display:grid;gap:4px;text-align:center}.calendar-summary strong,.schedule-left strong{color:#4b5560;font-size:.9rem}.calendar-summary span,.schedule-left span{font-size:2.25rem;line-height:1.1;font-weight:800}.calendar-summary small,.schedule-left small{color:var(--muted);font-size:.78rem}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px 7px;color:#8aa6be;text-align:center}.calendar-grid span{display:grid;place-items:center;min-height:22px;padding:0;border:1px solid transparent;border-radius:999px;line-height:1}.calendar-grid b{font-size:.78rem;font-weight:700}.calendar-grid .muted{opacity:.45}.calendar-grid .today{color:#fff;background:#66c8f5;border-color:#66c8f5}.schedule-bars{display:grid;gap:8px}.schedule-row{display:grid;grid-template-columns:34px minmax(52px,1fr) 74px;align-items:center;gap:8px;color:var(--muted);font-size:.78rem}.schedule-row progress{width:100%;height:10px;overflow:hidden;border:0;border-radius:999px;background:#66c8f529}.schedule-row progress::-webkit-progress-bar{border-radius:999px;background:#66c8f529}.schedule-row progress::-webkit-progress-value{border-radius:999px;background:linear-gradient(90deg,#5ec7f4,#42d4c4)}.schedule-row progress::-moz-progress-bar{border-radius:999px;background:linear-gradient(90deg,#5ec7f4,#42d4c4)}.schedule-row em{min-width:0;font-style:normal;text-align:right;white-space:nowrap}.sidebar-posts{display:grid}.sidebar-post{display:grid;grid-template-columns:70px minmax(0,1fr);gap:12px;align-items:center;padding:12px 0;border-top:1px dashed rgba(104,111,120,.28)}.sidebar-post:first-child{border-top:0;padding-top:0}.sidebar-post img,.post-thumb-fallback{width:70px;aspect-ratio:1;border-radius:6px;object-fit:cover;background:linear-gradient(135deg,#3eb8be52,#66c8f557)}.sidebar-post strong{display:-webkit-box;overflow:hidden;color:#4d5258;font-size:.94rem;font-weight:500;line-height:1.45;-webkit-box-orient:vertical;-webkit-line-clamp:2}.sidebar-post time{display:block;margin-top:3px}.article-sidebar{align-self:stretch;display:grid;align-content:start;gap:20px}.article-sticky-sidebar{position:sticky;top:90px;display:grid;align-content:start;gap:20px}.article-author-card{text-align:center;background:radial-gradient(circle at 50% 0%,rgba(102,200,245,.32),transparent 42%),linear-gradient(135deg,#ffffff94,#d6eeff4d),#fffdf89e}.article-author-card .profile-avatar{width:88px;height:88px}.article-author-card .profile-name{margin-bottom:8px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:1.45rem;font-weight:800}.article-author-meta{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;color:var(--muted);font-size:.86rem}.article-author-meta a{color:var(--accent)}.toc-list,.article-tag-list,.same-category-list{display:grid;gap:6px}.toc-list{position:relative;padding-top:10px}.toc-list:before{content:"";position:absolute;top:0;right:0;left:0;height:5px;border-radius:999px;background-image:radial-gradient(circle,rgba(102,200,245,.72) 2px,transparent 2px);background-size:14px 5px}.toc-list a,.article-tag-list a,.same-category-list a{border-radius:8px;padding:9px 11px;color:#50637a;line-height:1.45;transition:color .2s ease,background-color .2s ease,transform .2s ease}.toc-list a:hover,.article-tag-list a:hover,.same-category-list a:hover{color:#1f618d;background:#66c8f529;transform:translate(2px)}.toc-tree{gap:8px}.toc-group{position:relative}.toc-link{position:relative;display:flex;align-items:flex-start;gap:9px;text-decoration:none}.toc-link-main{color:#3e5664!important;font-weight:800}.toc-marker{flex:0 0 auto;width:8px;height:8px;margin-top:.52em;border-radius:999px;background:#66c8f585;box-shadow:0 0 0 4px #66c8f51f}.toc-children{position:relative;display:grid;gap:4px;max-height:0;margin-left:14px;overflow:hidden;border-left:1px solid rgba(102,200,245,.24);padding-left:10px;opacity:0;transition:max-height .28s ease,opacity .22s ease,margin-top .22s ease}.toc-group.is-open .toc-children{max-height:520px;margin-top:4px;opacity:1}.toc-link-child{color:#657384!important;font-size:.9rem;font-weight:600}.toc-link.is-active{color:#0f766e!important;background:#66c8f529;transform:translate(2px)}.toc-group.is-open .toc-link-main .toc-marker,.toc-link.is-active .toc-marker{background:#3eb8be;box-shadow:0 0 0 4px #3eb8be29}.article-tag-list{display:flex;flex-wrap:wrap;gap:8px}.article-tag-list a{display:inline-flex;align-items:center;min-height:34px;border:1px solid rgba(15,118,110,.18);padding:6px 11px;color:var(--accent);font-size:.88rem;font-weight:700;background:#ecfdf5a8}.toc-depth-2{padding-left:22px!important}.toc-depth-3{padding-left:24px!important;font-size:.9rem}.same-category-list a{display:grid;gap:3px;border-top:1px dashed rgba(104,111,120,.22)}.same-category-list a:first-child{border-top:0}.same-category-list strong{display:-webkit-box;overflow:hidden;font-size:.94rem;font-weight:600;-webkit-box-orient:vertical;-webkit-line-clamp:2}.sidebar-empty{margin:0;color:var(--muted);font-size:.92rem}time{color:var(--muted);font-size:.9rem}.meta-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.meta-list a{border:1px solid rgba(15,118,110,.28);border-radius:999px;padding:2px 10px;color:var(--accent);font-size:.86rem;background:#ecfdf5b3}.article{--article-padding: clamp(24px, 5vw, 48px);width:min(var(--article-width),calc(100% - (var(--page-gutter) * 2)));min-width:0;margin:64px auto 84px;border:1px solid rgba(255,255,255,.58);border-radius:8px;padding:var(--article-padding);background:radial-gradient(circle at 18% 0%,rgba(255,255,255,.72),transparent 34%),linear-gradient(145deg,#ffffff9e,#e2f8f159),#fffdf8ad;box-shadow:inset 0 1px #ffffffd1,0 24px 64px #2c373f29;backdrop-filter:blur(18px) saturate(165%);-webkit-backdrop-filter:blur(18px) saturate(165%)}.prose{min-width:0}.article-header{position:relative;margin-bottom:28px;padding-bottom:22px;border-bottom:1px solid var(--line)}.article-header-content{position:relative;z-index:1}.article-header h1{margin:8px 0 0;font-size:clamp(2rem,6vw,3.3rem);line-height:1.14}.article-header-cover{display:grid;align-items:end;min-height:clamp(320px,40vw,460px);margin:calc(var(--article-padding) * -1) calc(var(--article-padding) * -1) 34px;overflow:hidden;border:0;border-radius:8px 8px 0 0;padding:clamp(86px,13vw,150px) var(--article-padding) clamp(28px,6vw,52px);color:#fff;background:#5d7f78}.article-header-cover:before,.article-header-cover:after{content:"";position:absolute;inset:0;pointer-events:none}.article-header-cover:before{z-index:1;background:linear-gradient(180deg,#1737306b,#1737302e 38%,#0c1f1cad),linear-gradient(90deg,#0d373185,#135a4f24 54%,#0d37315c)}.article-header-cover:after{z-index:2;box-shadow:inset 0 1px #fff3,inset 0 -90px 110px #0a1c1a57}.article-header-cover-img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;filter:saturate(.9) contrast(.94)}.article-header-cover .article-header-content{z-index:3;max-width:900px;text-shadow:0 3px 14px rgba(0,0,0,.48)}.article-header-cover time{display:none}.article-header-cover h1{max-width:920px;margin:0;color:#fff;font-family:Georgia,Times New Roman,Microsoft YaHei,serif;font-size:clamp(2.4rem,6vw,4.2rem);font-weight:700;line-height:1.12}.article-hero-meta{display:flex;flex-wrap:wrap;gap:9px 12px;align-items:center;margin-top:18px;color:#ffffffeb;font-size:.98rem;font-weight:700}.article-hero-meta span,.article-hero-meta a{display:inline-flex;align-items:center}.article-hero-meta span:not(:first-child):before,.article-hero-meta a:before{content:"|";margin-right:12px;color:#ffffff9e;font-weight:400}.article-hero-meta a:hover{color:#d8fff5}.article-summary-card{position:relative;margin:0 0 30px;overflow:hidden;border:1px solid rgba(15,118,110,.16);border-radius:14px;padding:20px 22px 22px;background:radial-gradient(circle at 100% 0%,rgba(62,184,190,.12),transparent 40%),linear-gradient(145deg,#fffffff0,#eff8f5d1);box-shadow:inset 0 1px #ffffffe6,0 10px 28px #23474214}.article-summary-card:before{content:"";position:absolute;top:0;bottom:0;left:0;width:3px;background:linear-gradient(180deg,var(--accent),rgba(62,184,190,.26));pointer-events:none}.article-summary-header{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:13px}.article-summary-content{position:relative;z-index:1;margin:0;color:#465552;font-family:LXGW WenKai,霞鹜文楷,Microsoft YaHei,ui-sans-serif,system-ui,sans-serif;font-size:1rem;line-height:1.8;overflow-wrap:anywhere}.article-summary-caret{display:inline-block;width:2px;height:1.1em;margin-left:3px;vertical-align:-.16em;background:var(--accent);animation:summary-caret-blink .9s steps(1) infinite}.article-summary-brand{display:inline-flex;align-items:center;gap:8px;color:#376d67;font-family:JetBrains Mono,Consolas,Microsoft YaHei,monospace;font-size:.86rem;font-weight:800}.article-summary-icon{display:inline-flex;width:26px;height:26px;align-items:center;justify-content:center;border-radius:8px;color:#fff;background:linear-gradient(135deg,#2f9f96,#5dbcc0);box-shadow:0 5px 12px #2f9f9633}.article-summary-model{border:1px solid rgba(15,118,110,.14);border-radius:999px;padding:4px 9px;color:#376d67b8;font:700 .7rem/1.2 JetBrains Mono,Consolas,monospace;letter-spacing:.06em;background:#ffffff8f;white-space:nowrap}@keyframes summary-caret-blink{50%{opacity:0}}.prose :where(h2,h3,h4){scroll-margin-top:110px;margin-top:2em;line-height:1.35}.prose :where(p,ul,ol,blockquote,pre){margin:1.1em 0}.prose a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}.prose .hexo-link-card{display:grid;grid-template-columns:46px minmax(0,1fr);gap:14px;align-items:center;margin:1.2em 0;border:1px solid rgba(15,118,110,.2);border-radius:8px;padding:14px 16px;color:#27313a;text-decoration:none;background:linear-gradient(135deg,#ffffffc7,#ecfdf59e),#fffdf8e0;box-shadow:0 12px 28px #2c373f1a;transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}.prose .hexo-link-card:hover{color:#27313a;border-color:#0f766e61;box-shadow:0 16px 34px #0f766e24;transform:translateY(-1px)}.hexo-link-card__icon{display:grid;place-items:center;width:46px;height:46px;border-radius:8px;color:#fff;font-size:1.05rem;font-weight:800;background:#3eb8be}.hexo-link-card__body{display:grid;min-width:0;gap:2px}.hexo-link-card__body strong,.hexo-link-card__body span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hexo-link-card__body strong{font-size:1rem;line-height:1.35}.hexo-link-card__body span{color:var(--muted);font-size:.88rem}.prose img{display:block;max-width:100%;height:auto;margin:1.4em auto;border-radius:8px}.prose .fancybox{display:block;width:fit-content;max-width:100%;margin:1.4em auto;border-radius:8px;text-decoration:none}.prose .fancybox img{margin:0 auto;box-shadow:0 12px 32px #2c373f1f;transition:box-shadow .2s ease,transform .2s ease}.prose .fancybox:hover img{box-shadow:0 16px 38px #0f766e29;transform:translateY(-1px)}.prose pre{max-width:100%;margin:0;overflow-x:auto;padding:18px;overscroll-behavior-inline:contain;scrollbar-color:rgba(102,200,245,.58) rgba(255,255,255,.08);scrollbar-width:thin}.prose code{font-family:JetBrains Mono,Consolas,monospace}.prose :not(pre)>code{border:1px solid rgba(15,118,110,.14);border-radius:6px;padding:.12em .38em;color:#0f766e;font-size:.92em;line-height:1.4;background:#ecfdf5c7;overflow-wrap:break-word}.butterfly-note{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;margin:1.2em 0;border:1px solid rgba(15,118,110,.18);border-left-width:4px;border-radius:8px;padding:14px 16px;color:#32413f;background:#ecfdf594}.article-outdated-note[hidden]{display:none}.butterfly-note>i{margin-top:.28em;color:var(--butterfly-note-color, var(--accent))}.butterfly-note.is-no-icon{grid-template-columns:minmax(0,1fr)}.butterfly-note__content>:first-child{margin-top:0}.butterfly-note__content>:last-child{margin-bottom:0}.butterfly-note--default,.butterfly-label--default,.butterfly-btn--default{--butterfly-note-color: #68717a;--butterfly-color: #68717a}.butterfly-note--primary,.butterfly-note--blue,.butterfly-label--blue,.butterfly-btn--blue{--butterfly-note-color: #2f80ed;--butterfly-color: #2f80ed}.butterfly-note--success,.butterfly-note--green,.butterfly-label--green,.butterfly-btn--green{--butterfly-note-color: #2f9e44;--butterfly-color: #2f9e44}.butterfly-note--info{--butterfly-note-color: #0ea5e9;--butterfly-color: #0ea5e9}.butterfly-note--warning,.butterfly-note--orange,.butterfly-label--orange,.butterfly-btn--orange{--butterfly-note-color: #f59f00;--butterfly-color: #f59f00}.butterfly-note--danger,.butterfly-note--red,.butterfly-label--red,.butterfly-btn--red{--butterfly-note-color: #e03131;--butterfly-color: #e03131}.butterfly-note--pink,.butterfly-label--pink,.butterfly-btn--pink{--butterfly-note-color: #d63384;--butterfly-color: #d63384}.butterfly-note--purple,.butterfly-label--purple,.butterfly-btn--purple{--butterfly-note-color: #7950f2;--butterfly-color: #7950f2}.butterfly-note{border-left-color:var(--butterfly-note-color, var(--accent))}.butterfly-note--modern{box-shadow:inset 0 1px #ffffff9e}.butterfly-note--flat{border-color:transparent;border-left-color:var(--butterfly-note-color, var(--accent));background:color-mix(in srgb,var(--butterfly-note-color, #0f766e) 13%,transparent)}.butterfly-note--disabled{display:block;border:0;padding:0;background:transparent}.butterfly-label{display:inline-flex;align-items:center;min-height:1.7em;border-radius:6px;padding:.05em .48em;color:#fff;font-size:.88em;font-weight:700;line-height:1.35;vertical-align:.08em;background:var(--butterfly-color, #68717a)}.butterfly-inline-img{display:inline-block!important;width:auto;max-width:min(100%,18rem);margin:0 .18em!important;vertical-align:middle}.prose .butterfly-btn{display:inline-flex;align-items:center;justify-content:center;gap:.45em;min-height:34px;border:1px solid var(--butterfly-color, var(--accent));border-radius:8px;padding:.4em .78em;color:#fff;font-weight:800;line-height:1.2;text-decoration:none;background:var(--butterfly-color, var(--accent));transition:color .2s ease,background-color .2s ease,box-shadow .2s ease,transform .2s ease}.prose .butterfly-btn:hover{color:#fff;box-shadow:0 10px 22px color-mix(in srgb,var(--butterfly-color, #0f766e) 24%,transparent);transform:translateY(-1px)}.prose .butterfly-btn.is-outline{color:var(--butterfly-color, var(--accent));background:transparent}.prose .butterfly-btn.is-outline:hover{color:#fff;background:var(--butterfly-color, var(--accent))}.prose .butterfly-btn.is-larger{min-height:40px;padding:.56em 1em;font-size:1.05em}.prose .butterfly-btn.is-block{display:flex;width:fit-content;margin:.9em 0}.prose .butterfly-btn.is-center{margin-right:auto;margin-left:auto}.prose .butterfly-btn.is-right{margin-left:auto}.butterfly-hide-inline{display:inline-flex;align-items:center;gap:.45em;vertical-align:baseline}.butterfly-hide-toggle,.butterfly-hide-block>summary{border:0;border-radius:7px;padding:.25em .62em;color:var(--hide-color, #fff);font:inherit;font-weight:800;line-height:1.3;background:var(--hide-bg, #ff7242);cursor:pointer}.butterfly-hide-content{display:none;color:var(--text)}.butterfly-hide-inline.is-open .butterfly-hide-content{display:inline}.butterfly-hide-block{margin:1.2em 0}.butterfly-hide-block>summary{display:inline-flex;list-style:none}.butterfly-hide-block>summary::-webkit-details-marker{display:none}.butterfly-hide-block__content{margin-top:.9em;border-left:3px solid rgba(15,118,110,.2);padding-left:1em}.prose .code-block{position:relative;width:100%;max-width:100%;min-width:0;margin:1.25em 0;overflow:hidden;border:1px solid rgba(15,118,110,.16);border-radius:12px;background:#172126;box-shadow:0 10px 28px #19262c29}.prose .code-block pre::-webkit-scrollbar,.table-scroll::-webkit-scrollbar{height:10px}.prose .code-block pre::-webkit-scrollbar-track,.table-scroll::-webkit-scrollbar-track{border-radius:999px;background:#ffffff14}.prose .code-block pre::-webkit-scrollbar-thumb,.table-scroll::-webkit-scrollbar-thumb{border:2px solid rgba(255,255,255,.08);border-radius:999px;background:linear-gradient(90deg,#66c8f5b8,#3eb8bec2),#3eb8beb8}.prose .code-block pre::-webkit-scrollbar-thumb:hover,.table-scroll::-webkit-scrollbar-thumb:hover{background:linear-gradient(90deg,#66c8f5e6,#3eb8bef0),#3eb8bee6}.prose .code-block pre{margin:0;max-width:100%;max-height:none;padding:16px 18px 18px;background:transparent;white-space:normal!important;word-wrap:normal!important;transition:max-height .24s ease}.prose .code-block pre code{display:block;min-width:max-content}.prose .code-block.is-collapsible:not(.is-expanded) pre{max-height:15.5em}.prose .code-block.is-collapsible:not(.is-expanded):after{content:"";position:absolute;z-index:1;right:0;bottom:0;left:0;height:58px;background:linear-gradient(#161f2400,#161f24fa);pointer-events:none}.code-block-expand-cue{appearance:none;-webkit-appearance:none;position:absolute;z-index:3;right:50%;bottom:10px;display:none;width:36px;height:28px;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.18);border-radius:999px;padding:0;background:#161f24b8;box-shadow:0 8px 18px #0000002e;cursor:pointer;transform:translate(50%);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:border-color .2s ease,background-color .2s ease,transform .2s ease}.code-block-expand-cue span{width:10px;height:10px;border-right:2px solid rgba(255,255,255,.9);border-bottom:2px solid rgba(255,255,255,.9);transform:translateY(-2px) rotate(45deg)}.code-block-expand-cue:hover,.code-block-expand-cue:focus-visible{border-color:#ffffff5c;background:#3eb8bed1;transform:translate(50%) translateY(-1px)}.prose .code-block.is-collapsible:not(.is-expanded) .code-block-expand-cue{display:inline-flex}.prose .code-block code{color:#e8edf2;line-height:1.42}.code-block-header{position:relative;z-index:4;display:flex;min-height:44px;align-items:center;justify-content:space-between;gap:8px;border-bottom:1px solid rgba(255,255,255,.08);padding:7px 9px 7px 15px;background:#ffffff09;pointer-events:none}.code-block-language{overflow:hidden;color:#e8edf2b8;font-family:JetBrains Mono,Consolas,monospace;font-size:.8rem;font-weight:800;letter-spacing:0;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.code-block-toolbar{display:flex;flex:0 0 auto;gap:8px;pointer-events:auto}.prose .code-block.has-line-numbers code>.line{position:relative;display:block;min-height:1.42em;padding-left:calc(var(--line-number-width, 3ch) + 16px);white-space:pre}.prose .code-block.has-line-numbers code>.line:before{content:attr(data-line);position:absolute;top:0;left:0;width:var(--line-number-width, 3ch);color:#e8edf257;font-variant-numeric:tabular-nums;text-align:right;user-select:none}.code-block-copy,.code-block-toggle{appearance:none;-webkit-appearance:none;display:inline-flex;align-items:center;justify-content:center;min-height:30px;border:1px solid rgba(255,255,255,.18);border-radius:7px;padding:6px 10px;color:#ffffffdb;font:700 .78rem/1 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#ffffff1a;cursor:pointer;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:color .2s ease,border-color .2s ease,background-color .2s ease,transform .2s ease}.code-block-copy:hover,.code-block-toggle:hover{color:#fff;border-color:#ffffff57;background:#3eb8beb8;transform:translateY(-1px)}.code-block-toggle{display:none}.code-block.is-collapsible .code-block-toggle{display:inline-flex}.table-scroll{max-width:100%;margin:1.35em 0;overflow-x:auto;border:1px solid rgba(15,118,110,.14);border-radius:8px;background:linear-gradient(135deg,#ffffffb8,#ecfdf56b),#fffdf8c7;box-shadow:0 14px 34px #2c373f1a;overscroll-behavior-inline:contain;scrollbar-color:rgba(62,184,190,.58) rgba(15,118,110,.08);scrollbar-width:thin}.prose table{width:100%;min-width:620px;border-collapse:separate;border-spacing:0;color:#33433f;font-size:.95rem;line-height:1.6}.prose th,.prose td{border-right:1px solid rgba(15,118,110,.1);border-bottom:1px solid rgba(15,118,110,.1);padding:12px 14px;vertical-align:top}.prose th:last-child,.prose td:last-child{border-right:0}.prose tr:last-child td{border-bottom:0}.prose thead th{color:#2f4a43;font-weight:800;text-align:left;background:linear-gradient(135deg,#ecfdf5e0,#dcf6f0b8),#ffffffa8}.prose tbody tr:nth-child(2n) td{background:#ecfdf55c}.prose tbody tr:hover td{background:#66c8f521}.fancybox__container{--fancybox-bg: rgba(32, 36, 42, .72);--fancybox-accent-color: #3eb8be;backdrop-filter:blur(18px) saturate(145%);-webkit-backdrop-filter:blur(18px) saturate(145%)}.prose mjx-container{color:#223833}.prose mjx-container[display=true]{max-width:100%;margin:1.35em 0;overflow-x:auto;overflow-y:hidden;padding:10px 0;scrollbar-color:rgba(62,184,190,.58) rgba(15,118,110,.08);scrollbar-width:thin}.prose mjx-container[display=true]::-webkit-scrollbar{height:8px}.prose mjx-container[display=true]::-webkit-scrollbar-track{border-radius:999px;background:#0f766e14}.prose mjx-container[display=true]::-webkit-scrollbar-thumb{border-radius:999px;background:linear-gradient(90deg,#66c8f5b8,#3eb8bec2),#3eb8beb8}.post-copyright-card{position:relative;overflow:hidden;margin-top:42px;border:1px solid rgba(255,255,255,.64);border-radius:8px;padding:24px 28px 20px;color:#33433f;background:radial-gradient(circle at 14% 0%,rgba(255,255,255,.82),transparent 32%),linear-gradient(135deg,#fffdf8c2,#ecfdf594),#fffdf8b8;box-shadow:inset 0 1px #ffffffe0,0 16px 42px #3a33261f;backdrop-filter:blur(18px) saturate(165%);-webkit-backdrop-filter:blur(18px) saturate(165%)}.post-copyright-card:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.44),transparent 44%,rgba(255,255,255,.22));pointer-events:none}.post-copyright-card:after{content:"";position:absolute;top:8px;right:16px;left:16px;height:1px;border-radius:999px;background:#ffffffd1;pointer-events:none}.post-copyright-main,.post-copyright-footer{position:relative;z-index:2}.post-copyright-mark{position:absolute;top:14px;right:22px;z-index:1;display:grid;place-items:center;width:clamp(74px,12vw,118px);aspect-ratio:1;border:1px solid rgba(15,118,110,.12);border-radius:999px;color:#0f766e29;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.85rem,5vw,3.4rem);font-weight:900;line-height:1;background:linear-gradient(145deg,#ffffff75,#ecfdf533),#ffffff29;box-shadow:inset 0 1px #ffffffb8,0 12px 30px #0f766e0f;pointer-events:none}.post-copyright-mark span{transform:translateY(-1px)}.post-copyright-card h2{margin:0;color:#27313a;font-size:clamp(1.08rem,2.2vw,1.35rem);line-height:1.35}.post-copyright-link{display:inline-block;margin-top:12px;color:var(--muted);font-size:.94rem;font-weight:600}.post-copyright-link:hover,.post-copyright-meta a:hover{color:var(--accent)}.post-copyright-meta{display:grid;grid-template-columns:1fr 1.25fr 2fr;gap:18px 28px;margin:20px 0 0;border-top:1px solid rgba(15,118,110,.18);border-bottom:1px solid rgba(15,118,110,.12);padding:16px 0}.post-copyright-meta div{min-width:0}.post-copyright-meta dt{margin-bottom:5px;color:#58645f;font-size:.8rem;font-weight:800}.post-copyright-meta dd{margin:0;color:#2f4a43;font-size:.95rem;font-weight:600}.post-copyright-meta time{color:inherit;font-size:inherit}.post-copyright-footer{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:14px}.post-copyright-tags,.post-copyright-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.post-copyright-tags a,.post-copyright-action,.post-copyright-icon{min-height:38px;border:1px solid rgba(15,118,110,.2);border-radius:999px;color:var(--accent);background:#ecfdf5b8;box-shadow:inset 0 1px #ffffff8a;transition:color .2s ease,background-color .2s ease,transform .2s ease}.post-copyright-tags a{display:inline-flex;align-items:center;padding:7px 13px;font-size:.88rem}.post-copyright-action{appearance:none;-webkit-appearance:none;display:inline-flex;align-items:center;gap:7px;padding:7px 15px;font:inherit;font-weight:800;cursor:pointer}.post-copyright-action.is-primary{color:#fff;border-color:#0f766e4d;background:#3eb8be}.post-copyright-action svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.4}.post-copyright-icon{display:grid;place-items:center;width:38px;font-size:.94rem;font-weight:900;line-height:1}.post-copyright-tags a:hover,.post-copyright-action:hover,.post-copyright-icon:hover{color:#fff;background:#3eb8be;transform:translateY(-1px)}.twikoo-comments{margin-top:34px;border:1px solid rgba(255,255,255,.64);border-radius:8px;padding:clamp(20px,4vw,30px);background:radial-gradient(circle at 14% 0%,rgba(255,255,255,.8),transparent 32%),linear-gradient(135deg,#fffdf8cc,#ecfdf58c),#fffdf8c2;box-shadow:inset 0 1px #ffffffdb,0 16px 42px #3a33261f;backdrop-filter:blur(18px) saturate(165%);-webkit-backdrop-filter:blur(18px) saturate(165%)}.twikoo-comments-head{display:flex;align-items:center;gap:14px;margin-bottom:22px}.twikoo-comments-icon{display:grid;flex:0 0 auto;place-items:center;width:44px;height:44px;border-radius:8px;color:#fff;background:#3eb8be;box-shadow:0 12px 28px #0f766e29}.twikoo-comments-icon svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.2}.twikoo-comments h2{margin:0;color:#27313a;font-size:1.28rem;line-height:1.25}.twikoo-comments p{margin:4px 0 0;color:var(--muted);font-size:.92rem;line-height:1.45}.twikoo-wrap{min-height:160px}.twikoo-comments :where(.tk-comments-container,.tk-submit){color:var(--text)}.archive-timeline{position:relative;display:grid;gap:26px;margin-top:28px;padding-left:34px}.archive-timeline:before{content:"";position:absolute;top:10px;bottom:10px;left:10px;width:2px;border-radius:999px;background:linear-gradient(180deg,#3eb8becc,#ded8cc2e)}.archive-year{position:relative;display:grid;grid-template-columns:150px minmax(0,1fr);gap:22px}.archive-year-marker{position:absolute;top:12px;left:-31px;width:18px;height:18px;border:4px solid rgba(255,253,248,.96);border-radius:999px;background:#3eb8be;box-shadow:0 0 0 6px #3eb8be29,0 10px 24px #0f766e2e}.archive-year-head{position:sticky;top:92px;align-self:start;display:grid;gap:4px;padding-top:2px}.archive-year-head h2{margin:0;color:var(--accent-strong);font-size:clamp(1.8rem,4vw,2.7rem);line-height:1}.archive-year-head span{color:var(--muted);font-size:.92rem;font-weight:700}.archive-months{display:grid;gap:16px;min-width:0}.archive-month{display:grid;grid-template-columns:92px minmax(0,1fr);gap:18px;border:1px solid rgba(222,216,204,.72);border-radius:8px;padding:18px;background:linear-gradient(135deg,#ffffffc2,#f2fbed94),#fffdf8c7;box-shadow:var(--shadow)}.archive-month-label{display:grid;align-content:start;gap:6px;color:var(--accent);font-weight:900;line-height:1.2}.archive-month-label small{color:var(--muted);font-size:.82rem;font-weight:700}.archive-list{display:grid;gap:8px;min-width:0}.archive-list a{display:grid;grid-template-columns:46px minmax(0,1fr);align-items:center;gap:14px;border:1px solid transparent;border-radius:8px;padding:9px 12px;background:#fffdf88a;transition:color .2s ease,border-color .2s ease,background-color .2s ease,box-shadow .2s ease,transform .2s ease}.archive-list a time{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:8px;color:#fff;font-size:.9rem;font-weight:900;line-height:1;background:#3eb8be;box-shadow:0 10px 24px #0f766e24}.archive-list a span{min-width:0;overflow-wrap:anywhere;color:var(--text);font-weight:800;line-height:1.45}.archive-list a:hover{border-color:#3eb8be52;background:#ffffffd1;box-shadow:0 12px 28px #3a33261a;transform:translateY(-1px)}.pagination{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px;margin-top:30px}.pagination-pages{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.pagination-link,.pagination-number{display:inline-flex;align-items:center;justify-content:center;min-width:40px;min-height:40px;border:1px solid rgba(222,216,204,.78);border-radius:8px;padding:8px 12px;color:#50637a;font-weight:700;line-height:1;background:#fffdf8d1;box-shadow:0 10px 28px #3a332614;transition:color .2s ease,border-color .2s ease,background-color .2s ease,transform .2s ease}.pagination-link{min-width:76px}.pagination-link:hover,.pagination-number:hover,.pagination-number.is-current{color:#fff;border-color:#0f766e57;background:#3eb8be;transform:translateY(-1px)}.pagination-link.is-disabled{color:#686f7880;background:#fffdf875;box-shadow:none;cursor:not-allowed}.term-grid{margin-top:24px;display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}.term-grid a{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line);border-radius:8px;padding:14px 16px;background:#fffdf8e6}.stats-chart{margin-top:24px;border:1px solid rgba(222,216,204,.78);border-radius:8px;padding:22px;background:#fffdf8e0;box-shadow:0 14px 36px #3a332614}.stats-chart-head{display:grid;gap:6px;margin-bottom:18px}.stats-chart-head h2,.stats-chart-head p{margin:0}.stats-chart-head h2{color:#27313a;font-size:1.18rem;line-height:1.25}.stats-chart-head p{color:var(--muted);font-size:.92rem}.stats-chart-body{display:grid;grid-template-columns:minmax(180px,240px) 1fr;align-items:center;gap:24px}.pie-chart{width:100%;max-width:240px;margin:0 auto;overflow:visible}.pie-chart-track,.pie-chart-segment{fill:none;stroke-width:18}.pie-chart-track{stroke:#ded8cc85}.pie-chart-segment{transform:rotate(-90deg);transform-origin:60px 60px;transition:stroke-width .2s ease}.pie-chart-segment:hover{stroke-width:20}.pie-chart-total{fill:#27313a;font-size:1.28rem;font-weight:800}.pie-chart-label{fill:var(--muted);font-size:.68rem}.chart-legend{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.chart-legend-item{display:grid;grid-template-columns:12px minmax(0,1fr) auto auto;align-items:center;gap:10px;border:1px solid rgba(222,216,204,.68);border-radius:8px;padding:10px 12px;color:var(--text);background:#ffffff94}a.chart-legend-item{transition:border-color .2s ease,transform .2s ease,box-shadow .2s ease}a.chart-legend-item:hover{border-color:#3eb8be6b;box-shadow:0 10px 24px #3a332614;transform:translateY(-1px)}.chart-legend-color{width:12px;height:12px;border-radius:50%;background:var(--chart-color)}.chart-legend-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chart-legend-item strong{color:#27313a;font-size:1rem}.chart-legend-percent{min-width:38px;color:var(--muted);font-size:.84rem;text-align:right}.line-chart-wrap{width:100%;overflow-x:auto}.line-chart{display:block;width:100%;min-width:520px;height:260px}.line-chart-axis{stroke:#686f7852;stroke-width:1.4}.line-chart-grid{stroke:#686f7829;stroke-width:1}.line-chart-area{fill:#3eb8be2e}.line-chart-line{fill:none;stroke:#3eb8be;stroke-linecap:round;stroke-linejoin:round;stroke-width:4}.line-chart-dot{fill:#fffdf8;stroke:#3eb8be;stroke-width:3}.line-chart-x-label,.line-chart-y-label{fill:var(--muted);font-size:.78rem}.shuoshuo-page{margin-top:40px}#talk{position:relative;width:100%;min-height:220px}#talk:empty:before{content:"说说加载中...";display:grid;min-height:180px;place-items:center;border:1px solid rgba(255,255,255,.58);border-radius:8px;color:var(--muted);background:radial-gradient(circle at 18% 0%,rgba(255,255,255,.72),transparent 34%),linear-gradient(145deg,#ffffff9e,#e2f8f159),#fffdf8ad;box-shadow:var(--shadow);backdrop-filter:blur(18px) saturate(165%);-webkit-backdrop-filter:blur(18px) saturate(165%)}#talk .talk_item{position:absolute;display:flex;flex-direction:column;width:calc(33.333% - 8px);margin:0 12px 12px 0;border:1px solid rgba(255,255,255,.58);border-radius:8px;padding:20px;color:var(--text);background:radial-gradient(circle at 14% 0%,rgba(255,255,255,.72),transparent 34%),linear-gradient(145deg,#ffffff9e,#e2f8f159),#fffdf8c7;box-shadow:var(--shadow);backdrop-filter:blur(18px) saturate(165%);-webkit-backdrop-filter:blur(18px) saturate(165%);transition:box-shadow .2s ease,transform .2s ease}#talk .talk_item:hover{transform:translateY(-2px);box-shadow:0 20px 54px #2c373f2e}#talk .talk_meta,#talk .talk_bottom{display:flex;align-items:center}#talk .talk_meta{width:100%;border-bottom:1px dashed rgba(104,111,120,.34);padding-bottom:10px}#talk .talk_meta .avatar{width:56px;height:56px;margin:0!important;border-radius:8px;object-fit:cover}#talk .talk_meta .info{display:flex;min-width:0;flex-direction:column;margin-left:12px;line-height:1.4}#talk .talk_meta .info .talk_nick{display:inline-flex;align-items:center;gap:5px;color:#3eb8be;font-size:1.08rem;font-weight:800}#talk .talk_meta .info svg.is-badge.icon{width:15px;height:15px;flex:0 0 auto}#talk .talk_meta .info span.talk_date{color:var(--muted);font-size:.9rem}#talk .talk_item .talk_content{margin-top:12px;overflow-wrap:anywhere;color:#33433f}#talk .talk_item .talk_content a{color:#d75f54;font-weight:700}#talk .talk_item .talk_content a:hover{color:var(--accent)}#talk .talk_item .talk_content .zone_imgbox{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px;--talk-image-size: calc(25% - 8px) }#talk .talk_item .talk_content .zone_imgbox a{position:relative;display:block;width:var(--talk-image-size);overflow:hidden;border-radius:8px;aspect-ratio:1}#talk .talk_item .talk_content .zone_imgbox a:first-child{width:100%;aspect-ratio:1.8}#talk .talk_item .talk_content .zone_imgbox img{width:100%;height:100%;margin:0!important;object-fit:cover}#talk .talk_item .talk_bottom{justify-content:space-between;gap:12px;margin-top:15px;border-top:1px dashed rgba(104,111,120,.34);padding-top:10px}#talk .talk_item .talk_bottom span.talk_tag,#talk .talk_item .talk_bottom span.location_tag{display:inline-flex;max-width:100%;min-height:30px;align-items:center;border:1px solid rgba(15,118,110,.16);border-radius:999px;padding:3px 11px;color:var(--accent);font-size:.86rem;background:#ecfdf5b3;transition:color .2s ease,background-color .2s ease,transform .2s ease}#talk .talk_item .talk_bottom span.talk_tag:hover,#talk .talk_item .talk_bottom span.location_tag:hover,#talk .talk_item .talk_bottom .icon:hover{color:#fff;background:#3eb8be;transform:translateY(-1px)}#talk .talk_item .talk_bottom .icon{display:grid;place-items:center;width:34px;height:34px;border-radius:999px;color:var(--accent);transition:color .2s ease,background-color .2s ease,transform .2s ease}#talk .talk_item .talk_content .shuoshuo-external-link{width:100%;height:80px;margin-top:12px;overflow:hidden;border:1px solid rgba(15,118,110,.14);border-radius:8px;color:var(--text);background:#ecfdf5a3;transition:background-color .2s ease,transform .2s ease}.shuoshuo-external-link:hover{background:#3eb8be;transform:translateY(-1px)}.shuoshuo-external-link .external-link{display:flex;width:100%;height:100%}.shuoshuo-external-link .external-link:hover{color:#fff}.shuoshuo-external-link .external-link-left{width:60px;height:60px;margin:10px;flex:0 0 auto;border-radius:8px;background-position:center;background-size:cover}.shuoshuo-external-link .external-link-right{display:flex;min-width:0;width:calc(100% - 80px);flex-direction:column;justify-content:center;padding:10px}.shuoshuo-external-link .external-link-right .external-link-title{overflow:hidden;font-size:1rem;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.talk_content iframe{min-height:150px}meting-js{display:block;min-height:100px;margin-top:10px}.limit{width:100%;margin-top:30px;color:var(--muted);text-align:center}:root[data-theme=dark] #talk:empty:before,:root[data-theme=dark] #talk .talk_item{border-color:#b5c6cf3d;background:radial-gradient(circle at 14% 0%,rgba(139,224,213,.1),transparent 34%),linear-gradient(145deg,#162027eb,#080e13db),#0c1319e0;box-shadow:var(--shadow)}:root[data-theme=dark] #talk .talk_item .talk_content{color:var(--text)}:root[data-theme=dark] #talk .talk_item .talk_bottom span.talk_tag,:root[data-theme=dark] #talk .talk_item .talk_bottom span.location_tag,:root[data-theme=dark] #talk .talk_item .talk_content .shuoshuo-external-link{border-color:#8be0d547;color:#e6f4f6;background:#8be0d521}:root[data-theme=dark] #talk .talk_meta,:root[data-theme=dark] #talk .talk_item .talk_bottom{border-color:#b5c6cf42;color:var(--muted)}:root[data-theme=dark] .hero-talk{border-color:#b5c6cf3d;background:linear-gradient(135deg,#162027c7,#080e13b8),#0c1319bd;box-shadow:inset 0 1px #ffffff1a,0 18px 46px #00000057}:root[data-theme=dark] .hero-talk .item{border-top-color:#b5c6cf38;color:var(--text)}:root[data-theme=dark] .hero-talk-head a{border-color:#8be0d547;background:#8be0d521}.external-redirect{width:min(760px,calc(100% - (var(--page-gutter) * 2)));min-height:calc(100vh - 240px);margin:42px auto 80px;display:grid;place-items:center}.external-redirect-panel{width:100%;overflow:hidden;border:1px solid rgba(255,255,255,.58);border-radius:8px;padding:clamp(26px,6vw,48px);background:radial-gradient(circle at 15% 0%,rgba(255,255,255,.74),transparent 36%),linear-gradient(145deg,#ffffffb3,#e2f8f16b),#fffdf8c7;box-shadow:inset 0 1px #ffffffd1,0 24px 64px #2c373f29;backdrop-filter:blur(18px) saturate(165%);-webkit-backdrop-filter:blur(18px) saturate(165%)}.external-redirect-eyebrow{margin:0 0 10px;color:var(--accent);font-size:.88rem;font-weight:800}.external-redirect h1{margin:0;color:#20242a;font-size:clamp(2rem,6vw,3.8rem);line-height:1.08}.external-redirect-copy{max-width:620px;margin:16px 0 0;color:var(--muted);font-size:1rem}.external-redirect-target{display:grid;gap:8px;margin-top:24px;border:1px solid rgba(15,118,110,.16);border-radius:8px;padding:14px 16px;background:#ecfdf5a3}.external-redirect-target span{color:var(--accent);font-size:.84rem;font-weight:800}.external-redirect-target code{overflow-wrap:anywhere;color:#33433f;font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.92rem}.external-redirect-countdown{position:relative;width:112px;height:112px;margin:26px auto 0}.external-redirect-countdown svg{width:112px;height:112px;transform:rotate(-90deg)}.external-redirect-countdown circle{fill:none;stroke:#0f766e24;stroke-width:10}.external-redirect-countdown circle:last-child{stroke:#3eb8be;stroke-linecap:round;transition:stroke-dashoffset .9s linear}.external-redirect-countdown strong{position:absolute;inset:0;display:grid;place-items:center;color:#2f4358;font-size:2rem;line-height:1}.external-redirect-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:28px}.external-redirect-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;border:1px solid rgba(15,118,110,.2);border-radius:8px;padding:9px 16px;color:var(--accent);font:inherit;font-weight:800;background:#ecfdf5ad;cursor:pointer;transition:color .2s ease,background-color .2s ease,transform .2s ease}.external-redirect-button:hover,.external-redirect-button.is-primary{color:#fff;background:#3eb8be;transform:translateY(-1px)}.native-page{margin-top:40px}.native-page-article{overflow:hidden}.native-feature-grid,.friend-link-grid{display:grid;gap:16px}.native-feature-grid{grid-template-columns:repeat(3,minmax(0,1fr));margin:28px 0}.native-feature-grid section,.friend-link-card{border:1px solid rgba(15,118,110,.14);border-radius:8px;background:#ecfdf594;box-shadow:inset 0 1px #ffffff9e}.native-feature-grid section{padding:18px}.native-feature-grid i{display:grid;width:42px;height:42px;margin-bottom:12px;place-items:center;border-radius:8px;color:#fff;background:#3eb8be}.native-feature-grid h2{margin:0 0 8px;font-size:1.12rem}.native-feature-grid p{margin:0;color:var(--muted)}.native-table-wrap{overflow-x:auto}.friend-link-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin:0 0 24px}.friend-link-card{display:grid;grid-template-columns:58px minmax(0,1fr) auto;align-items:center;gap:14px;padding:16px;transition:border-color .2s ease,background-color .2s ease,transform .2s ease}.friend-link-card:hover{border-color:#0f766e47;background:#ecfdf5c7;transform:translateY(-2px)}.friend-link-card img{width:58px;height:58px;border-radius:8px;object-fit:cover}.friend-link-card span{display:grid;min-width:0;gap:2px}.friend-link-card strong{color:#33433f;font-size:1.05rem}.friend-link-card em{overflow:hidden;color:var(--muted);font-size:.9rem;font-style:normal;text-overflow:ellipsis;white-space:nowrap}.friend-link-card i{color:var(--accent)}.link-apply-card{width:100%;margin-top:0}:root[data-theme=dark] .external-redirect-panel{border-color:#b5c6cf3d;background:radial-gradient(circle at 14% 0%,rgba(139,224,213,.1),transparent 34%),linear-gradient(145deg,#162027eb,#080e13db),#0c1319e0;box-shadow:var(--shadow)}:root[data-theme=dark] .external-redirect h1,:root[data-theme=dark] .external-redirect-countdown strong{color:#edf7f5}:root[data-theme=dark] .external-redirect-target,:root[data-theme=dark] .external-redirect-button{border-color:#8be0d547;background:#8be0d521}:root[data-theme=dark] .external-redirect-target code{color:var(--text)}:root[data-theme=dark] .native-feature-grid section,:root[data-theme=dark] .friend-link-card{border-color:#8be0d542;background:#8be0d51f}:root[data-theme=dark] .friend-link-card strong{color:#edf7f5}.site-footer{position:relative;margin-top:64px;color:#535b60b8;background:linear-gradient(180deg,#f2f8ec8f,#f6faefb8),#f6faefb8;box-shadow:inset 0 1px #ffffffc7;backdrop-filter:blur(18px) saturate(150%);-webkit-backdrop-filter:blur(18px) saturate(150%)}.footer-inner{width:min(1180px,calc(100% - (var(--page-gutter) * 2)));margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,320px);gap:34px 64px;padding:42px 0 38px}.footer-top{display:grid;align-content:start;gap:10px}.footer-brand{display:inline-flex;align-items:center;gap:10px;width:fit-content;color:#3f4143;font-size:1.22rem;font-weight:800;line-height:1}.footer-brand img{width:34px;height:34px;border-radius:999px;object-fit:cover;box-shadow:0 8px 22px #0f766e2e}.footer-slogan,.footer-contact p,.footer-bottom p{margin:0}.footer-slogan{font-size:.92rem}.footer-contact{display:grid;justify-items:center;align-content:start;gap:10px;text-align:center}.footer-contact p{color:#535b60a3;font-size:.94rem}.footer-socials{display:flex;align-items:center;justify-content:center;gap:8px}.footer-socials a{display:grid;place-items:center;width:36px;height:36px;border:1px solid rgba(178,194,170,.48);border-radius:10px;color:#4c5458c7;background:linear-gradient(145deg,#ffffff7a,#dae7cb6b),#ecf4e2b8;box-shadow:inset 0 1px #ffffffb3,0 10px 24px #5b6b4a1a;transition:color .2s ease,border-color .2s ease,background-color .2s ease,transform .2s ease}.footer-socials a:hover{color:var(--accent);border-color:#0f766e47;background-color:#ffffffd6;transform:translateY(-2px)}.footer-socials i{width:18px;height:18px;display:inline-grid;place-items:center;font-size:1.08rem;line-height:1}.footer-contact-links,.footer-meta p:last-child{display:flex;align-items:center;justify-content:center;gap:8px}.footer-contact-links{font-size:.92rem}.footer-contact-links span,.footer-meta span{color:#535b6059}.footer-bottom{grid-column:1 / -1;display:flex;justify-content:space-between;gap:24px;border-top:1px solid rgba(182,197,174,.34);padding-top:22px;font-size:.92rem}.footer-bottom>div{display:grid;gap:8px}.footer-meta{justify-items:end;text-align:right}:root[data-theme=dark] :where(.page-header-card,.post-card,.sidebar-card,.article,.article-summary-card,.post-copyright-card,.twikoo-comments,.table-scroll,.stats-chart,.term-grid a,.pagination-link,.pagination-number){border-color:#b5c6cf3d;background:radial-gradient(circle at 14% 0%,rgba(139,224,213,.1),transparent 34%),linear-gradient(145deg,#162027eb,#080e13db),#0c1319e0;box-shadow:var(--shadow)}:root[data-theme=dark] :where(.page-header-card:after,.post-copyright-card:after){background:#ffffff1f}:root[data-theme=dark] :where(.page-header-card h1,.content-wrap .page-header-card h1,.sidebar-card h2,.stats-chart-head h2,.chart-legend-item strong,.pie-chart-total,.profile-name,.calendar-summary strong,.schedule-left strong,.sidebar-post strong,.toc-link-main,.post-copyright-card h2,.post-copyright-meta dd,.twikoo-comments h2,.footer-brand){color:#edf7f5}:root[data-theme=dark] .page-header-eyebrow{color:#a8f1e8;text-shadow:0 1px 14px rgba(0,0,0,.38)}:root[data-theme=dark] .page-header-card h1,:root[data-theme=dark] .content-wrap .page-header-card h1{color:#f5fbfc;text-shadow:0 2px 16px rgba(0,0,0,.72),0 0 1px rgba(245,251,252,.92)}:root[data-theme=dark] .page-header-subtitle{color:#d3e0e5;text-shadow:0 1px 12px rgba(0,0,0,.48)}:root[data-theme=dark] :where(.notice-card p,#welcome-info,#welcome-ip-location-info,.site-info-list dt,.toc-link-child,.same-category-list a,.profile-links,.footer-contact p){color:#c4d0d5}:root[data-theme=dark] .chart-legend-item{border-color:#b5c6cf38;background:#ffffff14}:root[data-theme=dark] .calendar-grid{color:#c2d2dc}:root[data-theme=dark] .pie-chart-track{stroke:#b5c6cf38}:root[data-theme=dark] .line-chart-dot{fill:#112023}:root[data-theme=dark] .site-info-list div{border-top-color:#b5c6cf38}:root[data-theme=dark] :where(.meta-list a,.article-tag-list a,.post-copyright-tags a,.post-copyright-action,.post-copyright-icon){border-color:#8be0d547;color:var(--accent);background:#8be0d521;box-shadow:inset 0 1px #ffffff14}:root[data-theme=dark] :where(.follow-button,.calendar-grid .today,.post-copyright-action.is-primary,.post-copyright-tags a:hover,.post-copyright-action:hover,.post-copyright-icon:hover,.pagination-link:hover,.pagination-number:hover,.pagination-number.is-current){color:#081315;background:var(--accent)}:root[data-theme=dark] .pagination-link.is-disabled{color:#c6d3dab8;background:#ffffff14}:root[data-theme=dark] .article-header{border-bottom-color:var(--line)}:root[data-theme=dark] .article-header-cover{background:#0d171d}:root[data-theme=dark] .article-header-cover:before{background:linear-gradient(180deg,#05090c94,#08101447 38%,#03080bdb),linear-gradient(90deg,#050d11a8,#14393a24 54%,#050d117a)}:root[data-theme=dark] .prose .code-block{border-color:#8be0d53d;background:#05080cf5;box-shadow:0 14px 32px #00000052}:root[data-theme=dark] .article-summary-content{color:#e5eff1db}:root[data-theme=dark] .article-summary-brand{color:#a6e2d9e6}:root[data-theme=dark] .article-summary-model{border-color:#8be0d533;color:#b5e5deb8;background:#8be0d514}:root[data-theme=dark] .prose :not(pre)>code{border-color:#8be0d54d;color:var(--accent);background:#8be0d521}:root[data-theme=dark] .butterfly-note{color:#e5eff1;background:#8be0d51c}:root[data-theme=dark] .butterfly-note--disabled{background:transparent}:root[data-theme=dark] .butterfly-hide-content{color:#e5eff1}:root[data-theme=dark] .butterfly-hide-block__content{border-left-color:#8be0d547}:root[data-theme=dark] .prose table{color:#e5eff1}:root[data-theme=dark] .prose thead th{color:#effaf7;background:linear-gradient(135deg,#23373ddb,#121f26c7),#0c151bd6}:root[data-theme=dark] .prose tbody tr:nth-child(2n) td{background:#8be0d517}:root[data-theme=dark] .prose tbody tr:hover td{background:#8be0d524}:root[data-theme=dark] .prose :where(th,td){border-color:#8be0d52e}:root[data-theme=dark] .site-footer{color:#dae4e8db;background:linear-gradient(180deg,#0a1015d1,#060a0ef0),#070b0feb;box-shadow:inset 0 1px #ffffff14}:root[data-theme=dark] .footer-socials a{border-color:#b5c6cf3d;color:#e7f0f3e6;background:linear-gradient(145deg,#1c2830cc,#0a1116bd),#0e161cbd;box-shadow:inset 0 1px #ffffff14,0 10px 24px #0000004d}:root[data-theme=dark] .footer-bottom{border-top-color:#b5c6cf38}@media(min-width:960px){.post-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:1100px){.post-layout{grid-template-columns:1fr}.home-hero{grid-template-columns:1fr;gap:22px;padding:44px 0 28px}.hero-talk{max-width:none}.article-sidebar{align-self:auto;position:static;grid-template-columns:repeat(2,minmax(0,1fr))}.article-sticky-sidebar{position:static;grid-column:1 / -1;grid-template-columns:repeat(2,minmax(0,1fr));max-height:none;overflow:visible}.toc-card{grid-column:1 / -1}.home-layout{grid-template-columns:1fr}#talk .talk_item{width:calc(50% - 6px)}.home-sidebar{align-self:auto;grid-template-columns:repeat(2,minmax(0,1fr))}.sticky-sidebar,.article-sticky-sidebar{position:static;max-height:none;overflow:visible}}@media(max-width:720px){:root{--page-gutter: 16px}.custom-context-menu{width:min(218px,calc(100vw - 16px));border-radius:12px;padding:7px}.context-menu-nav :where(a,button){height:40px;border-radius:13px}.context-menu-group :where(a,button){min-height:38px;padding:8px 9px}.nav{display:grid;grid-template-columns:minmax(0,1fr) 40px;min-height:auto;padding:10px 12px;align-items:center;gap:0 10px;border-radius:24px;overflow:visible}.nav-menu-toggle{display:grid;justify-self:end;z-index:3}.nav.is-open .nav-menu-open,.nav-menu-close{display:none}.nav.is-open .nav-menu-close{display:inline-block}.has-nav-drawer{overflow:hidden}.nav-drawer-backdrop{position:fixed;inset:0;z-index:1;display:block;opacity:0;pointer-events:none;background:#1c252a38;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);transition:opacity .2s ease}.nav.is-open .nav-drawer-backdrop{opacity:1;pointer-events:auto}.nav-menu{position:fixed;top:calc(env(safe-area-inset-top,0px) + 72px);right:max(12px,var(--page-gutter));z-index:2;display:grid;width:min(312px,calc(100vw - 32px));max-height:calc(100dvh - 92px);align-content:start;gap:10px;overflow-y:auto;overscroll-behavior:contain;border:1px solid rgba(255,255,255,.62);border-radius:22px;padding:14px;background:radial-gradient(circle at 82% 0%,rgba(255,255,255,.78),transparent 34%),linear-gradient(145deg,#ffffffe0,#e2f8f1b3),#fffdf8eb;box-shadow:inset 0 1px #ffffffd1,0 22px 64px #2c373f3d;backdrop-filter:blur(22px) saturate(170%);-webkit-backdrop-filter:blur(22px) saturate(170%);visibility:hidden;opacity:0;pointer-events:none;transform:translateY(-8px) scale(.98);transform-origin:top right;transition:visibility 0s linear .24s,opacity .18s ease,transform .24s cubic-bezier(.2,.8,.2,1)}.nav.is-open .nav-menu{visibility:visible;opacity:1;pointer-events:auto;transform:translateY(0) scale(1);transition-delay:0s}.nav-links{width:100%;gap:6px;overflow:visible;padding-bottom:0}.nav-menu .nav-links{display:grid}.nav-center{grid-template-columns:1fr}.nav-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.nav-links a,.nav-random,.nav-search,.nav-console,.theme-toggle{width:100%;justify-content:center;min-height:42px;border-color:#0f766e1a;background:#ffffff6b}:root[data-theme=dark] .nav-drawer-backdrop{background:#030a0c5c}:root[data-theme=dark] .nav-menu{border-color:#a6b8c233;background:radial-gradient(circle at 82% 0%,rgba(125,211,199,.16),transparent 36%),linear-gradient(145deg,#19232af0,#0a0f14d1),#0a0f14e0;box-shadow:inset 0 1px #ffffff1a,0 22px 64px #00000075}:root[data-theme=dark] .nav-links a,:root[data-theme=dark] .nav-random,:root[data-theme=dark] .nav-search,:root[data-theme=dark] .nav-console,:root[data-theme=dark] .theme-toggle{border-color:#7dd3c729;background:#7dd3c714}.control-console{align-items:end;padding:14px}.control-console-panel{max-height:calc(100vh - 28px);border-radius:8px;padding:18px}.control-console-grid,.control-console-info{grid-template-columns:1fr}.control-site-card{grid-template-columns:40px minmax(0,1fr);gap:12px;padding:14px}.control-site-card>i{width:40px;height:40px}.control-site-card small{grid-column:1 / -1}.theme-toggle{min-height:38px}.hero{min-height:300px}.home-hero{min-height:auto;padding-top:34px}.hero-talk{min-height:164px;padding:14px}.hero-talk .talk-list{height:102px}.hero-talk .item{min-height:34px;padding:7px 0;font-size:.9rem}.home-sidebar,.native-feature-grid,.friend-link-grid{grid-template-columns:1fr}#talk .talk_item{width:100%;margin-right:0}#talk .talk_item .talk_content .zone_imgbox{--talk-image-size: calc(50% - 5px) }.calendar-widget,.schedule-widget,.article-sidebar,.article-sticky-sidebar{grid-template-columns:1fr}.archive-timeline{padding-left:24px}.archive-timeline:before{left:7px}.archive-year{grid-template-columns:1fr;gap:14px}.archive-year-marker{left:-25px}.archive-year-head{position:static}.archive-month{grid-template-columns:1fr;gap:12px;padding:16px}.archive-month-label{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.archive-list a{grid-template-columns:38px minmax(0,1fr);gap:10px;padding:8px}.archive-list a time{width:34px;height:34px}.stats-chart{padding:18px}.stats-chart-body,.chart-legend{grid-template-columns:1fr}.line-chart{min-width:460px}.article{margin-top:32px}.article-header-cover{min-height:300px;padding-top:92px}.article-header-cover h1{font-size:clamp(2rem,11vw,3rem)}.article-hero-meta{font-size:.9rem}.article-summary-card{border-radius:12px;padding:17px 16px 18px}.prose .code-block,.table-scroll{margin-right:calc(var(--article-padding) * -.5);margin-left:calc(var(--article-padding) * -.5)}.prose .code-block pre{padding:14px 13px 16px;font-size:.86rem}.code-block-header{min-height:42px;padding:6px 7px 6px 12px}.code-block-toolbar{gap:5px}.code-block-copy,.code-block-toggle{min-height:29px;padding:5px 8px;font-size:.72rem}.prose table{min-width:560px;font-size:.9rem}.post-copyright-card{padding:22px 18px 18px}.post-copyright-meta{grid-template-columns:1fr;gap:12px}.post-copyright-footer{align-items:flex-start;flex-direction:column}.footer-inner{grid-template-columns:1fr;gap:28px;padding:36px 0 34px;text-align:center}.footer-top{justify-items:center}.footer-bottom{flex-direction:column;align-items:center;text-align:center}.footer-meta{justify-items:center;text-align:center}}@keyframes random-button-spin{0%{transform:rotate(0) scale(1)}55%{transform:rotate(210deg) scale(1.18)}to{transform:rotate(360deg) scale(1)}}@keyframes random-button-sheen{0%{transform:translate(-135%)}to{transform:translate(135%)}}@keyframes random-card-pulse{0%{opacity:.55;transform:scale(.94)}to{opacity:0;transform:scale(1.16)}}@keyframes random-card-fly{0%{opacity:0;filter:blur(2px);transform:translate3d(-58vw,-50%,0) rotate(calc(var(--flight-rotate) - 8deg)) scale(.74)}22%{opacity:.88;filter:blur(0)}58%{opacity:.92;transform:translate3d(-50%,-50%,0) rotate(var(--flight-rotate)) scale(1)}to{opacity:0;filter:blur(2px);transform:translate3d(58vw,-50%,0) rotate(calc(var(--flight-rotate) + 10deg)) scale(.78)}}@keyframes random-loading-dots{0%{content:""}25%{content:"."}50%{content:".."}75%,to{content:"..."}}@media(prefers-reduced-motion:reduce){.nav-random.is-randomizing:after,.nav-random.is-randomizing .nav-icon,.random-post-flying-card,.random-post-transition-card:before,.random-post-transition-card:after,.random-post-transition-card i,.random-post-transition-card span:after{animation:none}.random-post-transition,.random-post-transition-card,.nav-drawer-backdrop,.nav-menu{transition:none}}.reading-progress{position:fixed;inset:0 0 auto;z-index:40;height:4px;overflow:hidden;background:#0f766e1f;pointer-events:none}.reading-progress span{display:block;width:100%;height:100%;transform:scaleX(0);transform-origin:left center;background:linear-gradient(90deg,#3eb8be,#0f766e);box-shadow:0 0 12px #3eb8be8f;will-change:transform}.reading-resume{position:fixed;right:max(18px,var(--page-gutter));bottom:24px;z-index:32;display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:13px;width:min(520px,calc(100vw - 32px));border:1px solid rgba(255,255,255,.66);border-radius:14px;padding:14px;color:#27313a;background:#fffdf8eb;box-shadow:0 22px 60px #2c373f3d;backdrop-filter:blur(20px) saturate(165%);-webkit-backdrop-filter:blur(20px) saturate(165%);animation:reading-resume-in .3s ease both}.reading-resume[hidden]{display:none}.reading-resume-icon{display:grid;width:42px;height:42px;place-items:center;border-radius:12px;color:#fff;background:#3eb8be}.reading-resume strong,.reading-resume p{margin:0}.reading-resume p{color:var(--muted);font-size:.88rem}.reading-resume-actions{display:flex;gap:7px}.reading-resume button{border:1px solid rgba(15,118,110,.18);border-radius:999px;padding:7px 11px;color:var(--accent);font:inherit;font-size:.84rem;font-weight:800;background:#ecfdf5b8;cursor:pointer}.reading-resume button:first-child{color:#fff;background:#3eb8be}.post-series{margin:0 0 30px;overflow:hidden;border:1px solid rgba(15,118,110,.18);border-radius:12px;background:#ecfdf56b}.post-series-head{display:flex;align-items:end;justify-content:space-between;gap:18px;padding:18px 20px;border-bottom:1px solid rgba(15,118,110,.14)}.post-series-head span{color:var(--accent);font-size:.72rem;font-weight:900;letter-spacing:.1em}.post-series-head h2{margin:2px 0 0;font-size:1.25rem}.post-series-head>strong{color:var(--muted);font-size:.86rem;white-space:nowrap}.post-series-list{display:grid;max-height:310px;margin:0;overflow-y:auto;padding:8px;list-style:none}.post-series-list a{display:grid;grid-template-columns:32px minmax(0,1fr);align-items:center;gap:10px;border-radius:8px;padding:8px 10px}.post-series-list a:hover{background:#3eb8be1a}.post-series-list li.is-current a{color:#fff;background:#3eb8be}.post-series-list span{font-variant-numeric:tabular-nums;opacity:.7}.post-series-list strong{overflow:hidden;font-size:.92rem;text-overflow:ellipsis;white-space:nowrap}.post-series-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid rgba(15,118,110,.14)}.post-series-nav a{display:grid;gap:2px;padding:13px 18px}.post-series-nav a:last-child{text-align:right;border-left:1px solid rgba(15,118,110,.14)}.post-series-nav span{color:var(--muted);font-size:.76rem}.post-series-nav strong{overflow:hidden;color:var(--accent);font-size:.88rem;text-overflow:ellipsis;white-space:nowrap}:root[data-theme=dark] .reading-resume,:root[data-theme=dark] .post-series{border-color:#8be0d538;color:#edf7f5;background:#0d171deb}:root[data-theme=dark] .post-series-list a:hover{background:#8be0d51a}@keyframes reading-resume-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@media(max-width:720px){.reading-resume{right:16px;bottom:16px;grid-template-columns:38px minmax(0,1fr)}.reading-resume-icon{width:38px;height:38px}.reading-resume-actions{grid-column:1 / -1}.reading-resume button{flex:1}.post-series-head{align-items:start;flex-direction:column;gap:6px}.post-series-nav{grid-template-columns:1fr}.post-series-nav a:last-child{border-top:1px solid rgba(15,118,110,.14);border-left:0}}@media(prefers-reduced-motion:reduce){.reading-resume{animation:none}}.pwa-toast{position:fixed;right:max(18px,var(--page-gutter));bottom:24px;z-index:34;display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:14px;width:min(560px,calc(100vw - 32px));border:1px solid rgba(255,255,255,.68);border-radius:14px;padding:14px;color:#27313a;background:#fffdf8f0;box-shadow:0 22px 60px #2c373f3d;backdrop-filter:blur(20px) saturate(165%);-webkit-backdrop-filter:blur(20px) saturate(165%);animation:pwa-toast-in .3s ease both}.pwa-toast[hidden]{display:none}.pwa-toast-icon{display:grid;width:44px;height:44px;place-items:center;border-radius:12px;color:#fff;background:#3eb8be}.pwa-toast-copy{min-width:0}.pwa-toast-copy strong,.pwa-toast-copy p{margin:0}.pwa-toast-copy p{color:var(--muted);font-size:.88rem;line-height:1.5}.pwa-toast-actions{display:flex;gap:7px}.pwa-toast button{border:1px solid rgba(15,118,110,.18);border-radius:999px;padding:7px 12px;color:var(--accent);font:inherit;font-size:.84rem;font-weight:800;background:#ecfdf5b8;cursor:pointer}.pwa-toast .pwa-toast-primary{color:#fff;background:#3eb8be}:root[data-theme=dark] .pwa-toast{border-color:#8be0d538;color:#edf7f5;background:#0d171df0}@keyframes pwa-toast-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@media(max-width:720px){.pwa-toast{right:16px;bottom:16px;grid-template-columns:40px minmax(0,1fr)}.pwa-toast-icon{width:40px;height:40px}.pwa-toast-actions{grid-column:1 / -1}.pwa-toast button{flex:1}}@media(prefers-reduced-motion:reduce){.pwa-toast{animation:none}}.article-date-line{display:flex;flex-wrap:wrap;gap:4px 14px;color:var(--muted);font-size:.92rem}.article-date-line time+time:before{content:"·";margin-right:14px}.article-outdated-note a{display:inline-flex;align-items:center;gap:6px;margin:0 3px;color:inherit;font-weight:900;text-decoration:underline;text-underline-offset:3px}.post-changelog{margin-top:38px;overflow:hidden;border:1px solid rgba(15,118,110,.18);border-radius:12px;background:radial-gradient(circle at 10% 0%,rgba(255,255,255,.78),transparent 30%),#ecfdf575}.post-changelog-head{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:13px;border-bottom:1px solid rgba(15,118,110,.14);padding:17px 20px}.post-changelog-icon{display:grid;width:44px;height:44px;place-items:center;border-radius:12px;color:#fff;background:#3eb8be}.post-changelog-head span{color:var(--accent);font-size:.7rem;font-weight:900;letter-spacing:.1em}.post-changelog-head h2{margin:1px 0 0;font-size:1.2rem}.post-changelog-head>strong{color:var(--muted);font-size:.84rem}.post-changelog-list{margin:0;padding:16px 20px 18px 34px;list-style:none}.post-changelog-list li{position:relative;border-left:1px solid rgba(15,118,110,.22);padding:0 0 20px 22px}.post-changelog-list li:last-child{padding-bottom:0}.post-changelog-marker{position:absolute;top:8px;left:-5px;width:9px;height:9px;border:2px solid var(--surface);border-radius:999px;background:#3eb8be;box-shadow:0 0 0 3px #3eb8be29}.post-changelog-entry>div{display:flex;align-items:baseline;justify-content:space-between;gap:16px}.post-changelog-entry h3,.post-changelog-entry p{margin:0}.post-changelog-entry h3{font-size:1rem}.post-changelog-entry time{flex:0 0 auto;color:var(--muted);font-size:.82rem}.post-changelog-entry p{margin-top:4px;color:var(--muted);font-size:.92rem;line-height:1.7}:root[data-theme=dark] .post-changelog{border-color:#8be0d538;background:radial-gradient(circle at 10% 0%,rgba(139,224,213,.1),transparent 32%),#0d171de0}:root[data-theme=dark] .post-changelog-list li{border-left-color:#8be0d53d}:root[data-theme=dark] .post-changelog-marker{border-color:#132028}@media(max-width:720px){.article-date-line{display:grid;gap:1px}.article-date-line time+time:before{content:none}.post-changelog-head{grid-template-columns:40px minmax(0,1fr) auto;padding:15px}.post-changelog-icon{width:40px;height:40px}.post-changelog-list{padding-right:15px;padding-left:27px}.post-changelog-entry>div{align-items:flex-start;flex-direction:column;gap:1px}}:root{--bg: #e9edef;--surface: #f8faf9;--surface-strong: #ffffff;--text: #18212b;--muted: #687480;--line: #c7d0d6;--line-strong: #9eabb4;--accent: #245b9b;--accent-strong: #173f72;--signal: #df673d;--shadow: none;--page-gutter: clamp(18px, 4vw, 58px);--wide-width: 1360px;--content-width: 1240px}:root[data-theme=dark]{--bg: #171d23;--surface: #202830;--surface-strong: #26303a;--text: #e8edf2;--muted: #9eabb6;--line: #3b4650;--line-strong: #596773;--accent: #87add9;--accent-strong: #b8d0ed;--signal: #f08b66;--shadow: none}body{color:var(--text);font-family:Inter,Segoe UI Variable Text,Microsoft YaHei UI,PingFang SC,system-ui,sans-serif;line-height:1.68;background-color:var(--bg);background-image:linear-gradient(color-mix(in srgb,var(--line) 36%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--line) 36%,transparent) 1px,transparent 1px);background-size:48px 48px;background-attachment:fixed}button,input,textarea,select{font:inherit}:where(a,button):focus-visible{outline:3px solid color-mix(in srgb,var(--signal) 75%,transparent);outline-offset:3px}.site-header{top:0;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--bg) 94%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.nav{width:min(var(--wide-width),calc(100% - (var(--page-gutter) * 2)));min-height:68px;border:0;border-radius:0;padding:0;overflow:visible;background:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}.nav:before{display:none}.brand{display:inline-flex;align-items:baseline;width:fit-content;font-family:Cascadia Code,SFMono-Regular,Consolas,monospace;font-size:1.12rem;font-weight:760;letter-spacing:-.04em}.brand i{color:var(--signal);font-style:normal;font-weight:500}.nav-links{gap:2px;font-size:.86rem;font-weight:650}.nav-links a,.nav-random,.nav-search,.nav-console,.theme-toggle,.nav-menu-toggle{border-radius:2px;padding:8px 10px}.nav-links a:hover,.nav-random:hover,.nav-search:hover,.nav-console:hover,.theme-toggle:hover,.nav-menu-toggle:hover{border-color:transparent;color:var(--accent-strong);background:color-mix(in srgb,var(--accent) 9%,transparent);box-shadow:inset 0 -2px 0 var(--accent);transform:none}.hero{min-height:440px}.home-hero{position:relative;grid-template-columns:minmax(360px,.9fr) minmax(420px,1.1fr);gap:clamp(42px,8vw,118px);border-bottom:1px solid var(--line-strong)}.home-hero:after{content:"";position:absolute;right:0;bottom:-5px;width:72px;height:9px;background:var(--signal)}.hero-copy{position:relative;padding-left:clamp(24px,4vw,52px)}.hero-copy:before{content:"";position:absolute;top:4px;bottom:6px;left:0;width:7px;background:var(--accent)}.hero-copy:after{content:"";position:absolute;top:4px;left:0;width:7px;height:38px;background:var(--signal)}.hero-kicker,.hero-route,.section-heading p,.profile-identity span,.post-card-index,.hero-talk-head,.article-summary-brand,.article-summary-model{font-family:Cascadia Code,SFMono-Regular,Consolas,monospace}.hero-kicker{display:flex;justify-content:space-between;max-width:410px!important;margin:0 0 24px!important;color:var(--muted)!important;font-size:.72rem!important;font-weight:700;letter-spacing:.1em}.hero h1{display:flex;align-items:baseline;margin:0;color:var(--text);font-family:Arial Narrow,Bahnschrift SemiCondensed,Aptos Display,sans-serif;font-size:clamp(4.5rem,9vw,8.3rem);font-stretch:condensed;font-weight:750;letter-spacing:-.075em;line-height:.82}.hero h1 em{color:var(--signal);font-family:Cascadia Code,Consolas,monospace;font-size:.33em;font-style:normal;font-weight:600;letter-spacing:-.06em}.hero .hero-intro{max-width:520px;margin-top:30px;color:var(--text);font-size:clamp(1.08rem,2vw,1.38rem);font-weight:700}.hero .hero-route{max-width:540px;margin-top:10px;color:var(--muted);font-size:.77rem;letter-spacing:.025em}.hero-talk{max-width:none;min-height:190px;border:0;border-top:3px solid var(--text);border-bottom:1px solid var(--line-strong);border-radius:0;padding:14px 0 10px;background:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}.hero-talk-head{margin:0 0 8px;color:var(--text);font-size:.74rem;letter-spacing:.08em}.hero-talk-head>span{display:flex;align-items:baseline;gap:14px}.hero-talk-head small{color:var(--muted);font-family:inherit;font-size:.68rem;font-weight:500;letter-spacing:0}.hero-talk-head a{width:30px;height:30px;border:1px solid var(--line-strong);border-radius:2px;color:var(--accent);background:transparent}.hero-talk-head a:hover{color:#fff;background:var(--accent);transform:none}.hero-talk .item{min-height:42px;border-top:1px solid var(--line);padding:9px 4px;color:var(--text);font-size:.9rem}.hero-talk .item:before{width:9px;height:3px;border-radius:0;background:var(--signal);box-shadow:none}.content-wrap{margin-top:56px}.home-layout{grid-template-columns:minmax(0,1fr) 292px;gap:clamp(34px,6vw,72px)}.section-heading{align-items:end;margin-bottom:0;border-bottom:3px solid var(--text);padding-bottom:14px}.section-heading p{margin:0 0 4px;color:var(--accent);font-size:.68rem;font-weight:750;letter-spacing:.1em}.section-heading h2,.content-wrap h1{font-family:Arial Narrow,Bahnschrift SemiCondensed,Microsoft YaHei UI,sans-serif;font-size:clamp(1.75rem,3vw,2.35rem);font-weight:720;letter-spacing:-.04em}.section-heading a{padding-bottom:3px;color:var(--muted);font-size:.86rem;font-weight:700}.section-heading a span{color:var(--signal)}@media(min-width:960px){.post-list{grid-template-columns:1fr}}.post-list{display:grid;gap:0}.post-card{display:grid;grid-template-columns:minmax(0,1fr);border:0;border-bottom:1px solid var(--line);border-radius:0;padding:0;background:color-mix(in srgb,var(--surface) 72%,transparent);box-shadow:none;transition:background-color .18s ease}.post-card:hover{background:var(--surface-strong)}.post-card-main{display:grid;grid-template-columns:76px minmax(0,1fr) 28px;gap:clamp(14px,3vw,28px);align-items:start;padding:24px 18px 16px 0}.post-card-index{display:grid;align-content:start;min-height:58px;border-left:5px solid var(--accent);padding-left:10px;color:var(--muted);line-height:1}.post-card-index small{color:var(--signal);font-size:.58rem;font-weight:800;letter-spacing:.11em}.post-card-index strong{margin-top:8px;color:var(--text);font-size:1rem;font-variant-numeric:tabular-nums}.post-card-copy{display:grid;min-width:0}.post-card-copy time{margin-bottom:6px;font-family:Cascadia Code,Consolas,monospace;font-size:.71rem;font-variant-numeric:tabular-nums;letter-spacing:.02em}.post-card-title{color:var(--text);font-size:clamp(1.18rem,2.2vw,1.48rem);font-weight:720;letter-spacing:-.025em;line-height:1.32}.post-card-summary{display:-webkit-box;margin-top:8px;overflow:hidden;color:var(--muted);font-size:.94rem;line-height:1.65;-webkit-box-orient:vertical;-webkit-line-clamp:2}.post-card-open{color:var(--line-strong);font-family:Cascadia Code,Consolas,monospace;font-size:1.05rem;transition:color .18s ease,transform .18s ease}.post-card-main:hover .post-card-open{color:var(--signal);transform:translate(2px,-2px)}.post-card .meta-list{margin:0 18px 18px 104px}.meta-list{gap:7px 15px}.meta-list a,.article-tag-list a,.post-copyright-tags a{border:0;border-radius:0;padding:0;color:var(--accent);font-family:Cascadia Code,Consolas,monospace;font-size:.73rem;font-weight:650;background:transparent;box-shadow:none}.meta-list a+a:before{content:"/";margin-right:15px;color:var(--line-strong)}.home-sidebar,.sticky-sidebar{gap:0}.sidebar-card{border:0;border-top:1px solid var(--line-strong);border-radius:0;padding:20px 0;background:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}.sidebar-card:first-child{border-top:3px solid var(--text)}.sidebar-card h2{margin-bottom:14px;color:var(--text);font-size:.92rem;letter-spacing:-.01em}.notice-card h2 span{color:var(--signal);font-size:.6rem}.profile-card{text-align:left}.profile-identity{display:grid;grid-template-columns:68px minmax(0,1fr);gap:14px;align-items:center}.profile-identity>div{display:grid;gap:3px}.profile-identity span{color:var(--signal);font-size:.62rem;font-weight:800;letter-spacing:.1em}.profile-avatar{width:68px;height:68px;margin:0;border:1px solid var(--line-strong);border-radius:2px;box-shadow:5px 5px 0 var(--accent)}.profile-name{margin:0;color:var(--text);font-family:Arial Narrow,Bahnschrift SemiCondensed,sans-serif;font-size:1.6rem;font-weight:760;letter-spacing:-.04em}.profile-bio{margin:20px 0;color:var(--muted);font-size:.88rem}.profile-stats{gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:16px}.profile-stats a{gap:0;padding:10px 6px}.profile-stats a+a{border-left:1px solid var(--line)}.profile-stats strong{color:var(--text);font-family:Cascadia Code,Consolas,monospace}.follow-button{justify-content:space-between;border:0;border-radius:2px;padding:10px 13px;color:#fff;background:var(--accent);box-shadow:none}.follow-button:hover{color:#fff;background:var(--accent-strong);transform:none}.profile-links{justify-content:flex-start;font-family:Cascadia Code,Consolas,monospace;font-size:.72rem}.calendar-grid .today{border-radius:2px;color:#fff;background:var(--signal);box-shadow:none}.schedule-row progress{accent-color:var(--accent)}.sidebar-card h2 em{border-radius:2px;color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent)}.toc-link.is-active{border-left:3px solid var(--signal);border-radius:0;padding-left:9px;color:var(--accent-strong)!important;background:color-mix(in srgb,var(--accent) 9%,transparent);transform:none}.toc-marker,.toc-group.is-open .toc-link-main .toc-marker,.toc-link.is-active .toc-marker{width:8px;height:3px;border-radius:0;background:var(--signal);box-shadow:none}.page-header-card,.article,.article-summary-card,.post-copyright-card,.twikoo-comments,.stats-chart,.term-grid a,.pagination-link,.pagination-number,.native-feature-grid section,.friend-link-card,.external-redirect-panel,.post-changelog,.table-scroll{border-color:var(--line);border-radius:2px;background:var(--surface);box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}.page-header-card{overflow:visible;border:0;border-left:8px solid var(--accent);margin-top:56px;padding:24px clamp(24px,5vw,52px)}.page-header-card:after{top:0;right:auto;left:-8px;width:8px;height:34px;border-radius:0;background:var(--signal)}.page-header-eyebrow{color:var(--signal);font-family:Cascadia Code,Consolas,monospace;font-size:.66rem;letter-spacing:.08em;text-transform:uppercase}.page-header-card h1,.content-wrap .page-header-card h1{color:var(--text);font-family:Arial Narrow,Bahnschrift SemiCondensed,Microsoft YaHei UI,sans-serif;font-weight:750;letter-spacing:-.045em}.post-layout{gap:38px}.about-page-article{width:100%}.article{border:1px solid var(--line);border-top:5px solid var(--accent);border-radius:0;background:var(--surface)}.article-header-cover,.article-header-cover-img,.prose img,.prose .fancybox{border-radius:0}.article-header h1,.article-header-cover h1{font-family:Arial Narrow,Bahnschrift SemiCondensed,Microsoft YaHei UI,sans-serif;font-weight:760;letter-spacing:-.045em}.article-summary-card{border:0;border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line);border-radius:0;padding:17px 0 19px;background:transparent}.article-summary-card:before{display:none}.article-summary-header{margin-bottom:9px}.article-summary-brand{color:var(--accent-strong);font-size:.75rem}.article-summary-icon{width:auto;height:auto;border-radius:0;color:var(--signal);background:transparent;box-shadow:none}.article-summary-model{border:0;border-radius:0;padding:0;color:var(--muted);background:transparent;letter-spacing:0}.article-summary-content{color:var(--text);font-family:inherit;line-height:1.72}.article-summary-caret{display:none}.prose :not(pre)>code{border-color:var(--line);border-radius:2px;color:var(--accent-strong);background:color-mix(in srgb,var(--accent) 8%,var(--surface))}.prose .code-block{border-radius:2px;box-shadow:none}.custom-context-menu,.control-console-panel,.nav-menu{border-color:var(--line);border-radius:3px;color:var(--text);background:var(--surface-strong);box-shadow:8px 8px color-mix(in srgb,var(--text) 14%,transparent);backdrop-filter:none;-webkit-backdrop-filter:none}.site-footer{border-top:1px solid var(--line-strong);color:var(--muted);background:var(--surface);box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}.footer-brand,:root[data-theme=dark] .footer-brand{color:var(--text);font-family:Cascadia Code,Consolas,monospace}.footer-brand img{border-radius:2px;box-shadow:3px 3px 0 var(--accent)}.footer-socials a{border-color:var(--line);border-radius:2px;color:var(--text);background:transparent;box-shadow:none}:root[data-theme=dark] :where(.page-header-card,.post-card,.sidebar-card,.article,.article-summary-card,.post-copyright-card,.twikoo-comments,.table-scroll,.stats-chart,.term-grid a,.pagination-link,.pagination-number,.native-feature-grid section,.friend-link-card,.external-redirect-panel,.post-changelog){border-color:var(--line);background:var(--surface);box-shadow:none}:root[data-theme=dark] :where(.page-header-card h1,.content-wrap .page-header-card h1,.sidebar-card h2,.profile-name,.article-summary-content){color:var(--text);text-shadow:none}:root[data-theme=dark] .site-footer,:root[data-theme=dark] .footer-socials a{color:var(--muted);background:var(--surface);box-shadow:none}@media(max-width:1100px){.home-layout{grid-template-columns:1fr}.home-hero{gap:34px;padding-top:72px;padding-bottom:52px}.home-sidebar{border-top:3px solid var(--text);gap:0 32px}.home-sidebar>.sidebar-card:first-child,.sticky-sidebar>.sidebar-card:first-child{border-top-width:1px}}@media(max-width:720px){.site-header{padding:0 var(--page-gutter)}.nav{width:100%;min-height:60px;border-radius:0;padding:8px 0}.nav-menu{top:calc(env(safe-area-inset-top,0px) + 66px);right:var(--page-gutter);border-radius:3px;padding:10px;background:var(--surface-strong);box-shadow:7px 7px color-mix(in srgb,var(--text) 16%,transparent)}.nav-links a,.nav-random,.nav-search,.nav-console,.theme-toggle{border-color:var(--line);border-radius:2px;background:transparent}.hero{min-height:0}.home-hero{padding-top:58px;padding-bottom:42px}.hero-copy{padding-left:22px}.hero h1{font-size:clamp(4rem,25vw,6.2rem)}.hero-kicker{max-width:100%!important}.hero-talk-head small{display:none}.content-wrap{margin-top:38px}.post-card-main{grid-template-columns:58px minmax(0,1fr) 18px;gap:12px;padding-right:6px}.post-card-index{min-height:50px;border-left-width:4px;padding-left:8px}.post-card-summary{-webkit-line-clamp:3}.post-card .meta-list{margin-left:70px}.home-sidebar,.sticky-sidebar{display:grid;grid-template-columns:1fr}.page-header-card{margin-top:34px;padding:20px}.article{border-right:0;border-left:0}.footer-inner{text-align:left}.footer-top,.footer-meta,.footer-contact{justify-items:start;text-align:left}.footer-bottom{align-items:flex-start;text-align:left}}@media(prefers-reduced-motion:reduce){.post-card-open,.post-card,.nav-links a,.nav-random,.nav-search,.nav-console,.theme-toggle{transition:none}}.hitokoto-card[data-astro-cid-4cgfuthx]{position:fixed;left:max(18px,env(safe-area-inset-left));bottom:max(18px,env(safe-area-inset-bottom));z-index:30;width:min(340px,calc(100vw - 36px));min-height:48px;overflow:hidden;border:1px solid rgba(255,255,255,.58);border-radius:8px;padding:14px 15px 13px;color:#40505a;background:linear-gradient(135deg,#ffffffbd,#ecfdf594),#fffdf8c2;box-shadow:inset 0 1px #fffc,0 18px 44px #2c373f29;backdrop-filter:blur(18px) saturate(165%);-webkit-backdrop-filter:blur(18px) saturate(165%);transition:width .2s ease,padding .2s ease,transform .2s ease}.hitokoto-card[data-astro-cid-4cgfuthx].is-collapsed{width:48px;padding:8px;cursor:pointer}.hitokoto-card__head[data-astro-cid-4cgfuthx]{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px;color:var(--accent);font-size:.84rem;font-weight:800}.hitokoto-card[data-astro-cid-4cgfuthx].is-collapsed .hitokoto-card__head[data-astro-cid-4cgfuthx]{justify-content:center;margin-bottom:0}.hitokoto-card__toggle[data-astro-cid-4cgfuthx],.hitokoto-card__actions[data-astro-cid-4cgfuthx]{display:inline-flex;align-items:center;gap:7px}.hitokoto-card__toggle[data-astro-cid-4cgfuthx],.hitokoto-card__refresh[data-astro-cid-4cgfuthx],.hitokoto-card__collapse[data-astro-cid-4cgfuthx]{appearance:none;-webkit-appearance:none;border:0;color:inherit;font:inherit;background:transparent;cursor:pointer}.hitokoto-card__toggle[data-astro-cid-4cgfuthx]{display:inline-flex;align-items:center;gap:7px;min-width:0;border-radius:999px;padding:0}.hitokoto-card__toggle[data-astro-cid-4cgfuthx]:hover{color:var(--accent-strong)}.hitokoto-card__refresh[data-astro-cid-4cgfuthx],.hitokoto-card__collapse[data-astro-cid-4cgfuthx]{display:grid;width:30px;min-width:30px;height:30px;place-items:center;border:1px solid rgba(15,118,110,.16);border-radius:999px;background:#ecfdf594;transition:color .2s ease,background-color .2s ease,transform .2s ease}.hitokoto-card__refresh[data-astro-cid-4cgfuthx]:hover{color:#fff;background:#3eb8be;transform:translateY(-1px)}.hitokoto-card__collapse[data-astro-cid-4cgfuthx]:hover{color:#fff;background:#3eb8be;transform:translateY(1px)}.hitokoto-card[data-astro-cid-4cgfuthx].is-collapsed .hitokoto-card__toggle[data-astro-cid-4cgfuthx]{width:32px;height:32px;justify-content:center}.hitokoto-card[data-astro-cid-4cgfuthx].is-collapsed .hitokoto-card__toggle[data-astro-cid-4cgfuthx] span[data-astro-cid-4cgfuthx],.hitokoto-card[data-astro-cid-4cgfuthx].is-collapsed .hitokoto-card__actions[data-astro-cid-4cgfuthx],.hitokoto-card[data-astro-cid-4cgfuthx].is-collapsed .hitokoto-card__text[data-astro-cid-4cgfuthx],.hitokoto-card[data-astro-cid-4cgfuthx].is-collapsed .hitokoto-card__from[data-astro-cid-4cgfuthx]{display:none}.hitokoto-card[data-astro-cid-4cgfuthx].is-loading .hitokoto-card__refresh[data-astro-cid-4cgfuthx] i[data-astro-cid-4cgfuthx]{animation:hitokoto-spin .9s linear infinite}.hitokoto-card__text[data-astro-cid-4cgfuthx]{display:block;color:#2f4358;font-size:.95rem;font-weight:700;line-height:1.65;overflow-wrap:anywhere}.hitokoto-card__text[data-astro-cid-4cgfuthx]:hover{color:var(--accent)}.hitokoto-card__from[data-astro-cid-4cgfuthx]{margin:8px 0 0;color:var(--muted);font-size:.78rem;line-height:1.45;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:root[data-theme=dark] .hitokoto-card[data-astro-cid-4cgfuthx]{border-color:#aecdc52e;color:#dce9e6;background:radial-gradient(circle at 14% 0%,rgba(114,222,210,.1),transparent 34%),linear-gradient(145deg,#1c2b2fd1,#0c1619b8),#111c1fbd;box-shadow:var(--shadow)}:root[data-theme=dark] .hitokoto-card__text[data-astro-cid-4cgfuthx]{color:#edf7f5}:root[data-theme=dark] .hitokoto-card__refresh[data-astro-cid-4cgfuthx],:root[data-theme=dark] .hitokoto-card__collapse[data-astro-cid-4cgfuthx]{border-color:#72ded238;background:#72ded21a}@keyframes hitokoto-spin{to{transform:rotate(360deg)}}.hitokoto-card[data-astro-cid-4cgfuthx],:root[data-theme=dark] .hitokoto-card[data-astro-cid-4cgfuthx]{border:1px solid var(--line);border-radius:2px;color:var(--text);background:var(--surface-strong);box-shadow:5px 5px color-mix(in srgb,var(--text) 14%,transparent);backdrop-filter:none;-webkit-backdrop-filter:none}.hitokoto-card__refresh[data-astro-cid-4cgfuthx],.hitokoto-card__collapse[data-astro-cid-4cgfuthx],:root[data-theme=dark] .hitokoto-card__refresh[data-astro-cid-4cgfuthx],:root[data-theme=dark] .hitokoto-card__collapse[data-astro-cid-4cgfuthx]{border-color:var(--line);border-radius:2px;background:transparent}.hitokoto-card__refresh[data-astro-cid-4cgfuthx]:hover,.hitokoto-card__collapse[data-astro-cid-4cgfuthx]:hover{color:#fff;background:var(--accent);transform:none}.hitokoto-card__text[data-astro-cid-4cgfuthx],:root[data-theme=dark] .hitokoto-card__text[data-astro-cid-4cgfuthx]{color:var(--text)}@media(max-width:720px){.hitokoto-card[data-astro-cid-4cgfuthx]{left:12px;bottom:12px;width:min(300px,calc(100vw - 24px));padding:12px}.hitokoto-card[data-astro-cid-4cgfuthx].is-collapsed{width:46px;padding:7px}.hitokoto-card__text[data-astro-cid-4cgfuthx]{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:3;font-size:.9rem}} diff --git a/about/index.html b/about/index.html new file mode 100644 index 0000000..9a3a702 --- /dev/null +++ b/about/index.html @@ -0,0 +1,384 @@ + 关于 | Bi's Blog

Bi's Blog

关于

这里记录折腾、学习和一些普通日子的回声。

+你好,我是 Bi。这个博客主要用来保存技术实践、生活片段和那些一时半会儿不想让它们散掉的想法。 +

技术笔记

记录服务器、网络、开发环境、图像处理和一些实际踩坑过程。

日常碎片

把普通的一天、突然冒出来的灵感和一点点情绪留在这里。

持续生长

网站本身也在慢慢迁移和重写,新的页面会逐步变成原生实现。

联系

+如果你想交流文章内容、友链或网站相关问题,可以通过 +bishsh2006@gmail.com +联系我,也可以去 +GitHub +找到我。 +

Ctrl + 右键:浏览器原生菜单 +
\ No newline at end of file diff --git a/api/posts.json b/api/posts.json new file mode 100644 index 0000000..267a1b9 --- /dev/null +++ b/api/posts.json @@ -0,0 +1 @@ +[{"title":"网站迁移日志","href":"/posts/8f3b9d21/"},{"title":"用 Umami 分享链接给网站信息卡提供统计数据","href":"/posts/4c91a8f2/"},{"title":"把普通的一天过成自己的节奏","href":"/posts/efe1e805/"},{"title":"GPT Image2 初试","href":"/posts/3f8de22/"},{"title":"电子价签玩法","href":"/posts/8712baaa/"},{"title":"OpenGL- Cohen-Sutherland 编码裁剪算法","href":"/posts/9b2ef00a/"},{"title":"OpenGL-直线的扫描转换","href":"/posts/7207243b/"},{"title":"OpenGL-基础程序","href":"/posts/437a5198/"},{"title":"配置OpenGL环境","href":"/posts/c4477b0c/"},{"title":"opencv应用-算术运算","href":"/posts/b559997d/"},{"title":"opencv应用-基础操作","href":"/posts/e8f95ead/"},{"title":"配置opencv","href":"/posts/6e3332b/"},{"title":"自建bitwarden服务","href":"/posts/7baa41fc/"},{"title":"自建renovate-bot","href":"/posts/56f57c0b/"},{"title":"新年快乐!","href":"/posts/5785bd01/"},{"title":"添加网站左上角菜单","href":"/posts/7e921903/"},{"title":"将博客仓库转移到gitea","href":"/posts/d2c8521/"},{"title":"安装gitea","href":"/posts/34725d47/"},{"title":"添加typesense搜索","href":"/posts/f287c563/"},{"title":"自定义字体","href":"/posts/b5601a7e/"},{"title":"在侧边栏添加日历和倒计时","href":"/posts/5ed2f1e6/"},{"title":"和朋友们的故事","href":"/posts/a31d95d9/"},{"title":"Adguard和Openclash共存","href":"/posts/66e66374/"},{"title":"Adguard规则分享","href":"/posts/69b16001/"},{"title":"在Openwrt上安装AdguardHome","href":"/posts/b57500e9/"},{"title":"在Openwrt中安装OpenClash","href":"/posts/2b2fb1a7/"},{"title":"Cudy TR3000刷入Openwrt系统","href":"/posts/8802e397/"},{"title":"搭建Owncloud并集成Onlyoffice","href":"/posts/59c8572a/"},{"title":"为博客添加CMS系统","href":"/posts/3a26a97a/"},{"title":"为1Panel添加自己想要的应用","href":"/posts/bb18d851/"},{"title":"使用GitHub推送Hexo到服务器","href":"/posts/ce1ec3fe/"},{"title":"C# 基本语法","href":"/posts/e9a8e898/"},{"title":"C# 入门","href":"/posts/bc56f789/"},{"title":"自定义页脚(新)","href":"/posts/c6143ad3/"},{"title":"自定义分类条","href":"/posts/33249733/"},{"title":"自定义导航栏","href":"/posts/3e61a389/"},{"title":"利用 SiteMap 随机访问站内页面","href":"/posts/b5866b9e/"},{"title":"博客添加AI总结","href":"/posts/41b9aff7/"},{"title":"利用插件自定义页脚菜单","href":"/posts/a6ab0925/"},{"title":"英语文章分享-去奋力生活吧,就好像死亡近在咫尺","href":"/posts/f0a1a1f4/"},{"title":"自定义右键菜单","href":"/posts/8bdb35fb/"},{"title":"在侧边栏中添加欢迎信息","href":"/posts/da17d00/"},{"title":"配置说说页面","href":"/posts/ad244066/"},{"title":"部署历程","href":"/posts/6e5f5039/"}] \ No newline at end of file diff --git a/archives/index.html b/archives/index.html new file mode 100644 index 0000000..add8899 --- /dev/null +++ b/archives/index.html @@ -0,0 +1,380 @@ + 归档 | Bi's Blog

Bi's Blog

归档

共 44 篇文章

归档发布趋势

按月份统计文章发布数量

0 9 17 2025-08: 17 篇 2025-08 2025-09: 3 篇 2025-10: 2 篇 2025-10 2026-01: 3 篇 2026-02: 7 篇 2026-02 2026-03: 3 篇 2026-04: 6 篇 2026-04 2026-05: 1 篇 2026-06: 2 篇 2026-06
Ctrl + 右键:浏览器原生菜单 +
\ No newline at end of file diff --git a/archives/page/2/index.html b/archives/page/2/index.html new file mode 100644 index 0000000..f8a756f --- /dev/null +++ b/archives/page/2/index.html @@ -0,0 +1,380 @@ + 归档 - 第 2 页 | Bi's Blog

Bi's Blog

归档

共 44 篇文章,第 2 页

归档发布趋势

按月份统计文章发布数量

0 9 17 2025-08: 17 篇 2025-08 2025-09: 3 篇 2025-10: 2 篇 2025-10 2026-01: 3 篇 2026-02: 7 篇 2026-02 2026-03: 3 篇 2026-04: 6 篇 2026-04 2026-05: 1 篇 2026-06: 2 篇 2026-06
Ctrl + 右键:浏览器原生菜单 +
\ No newline at end of file diff --git a/archives/page/3/index.html b/archives/page/3/index.html new file mode 100644 index 0000000..01ddd20 --- /dev/null +++ b/archives/page/3/index.html @@ -0,0 +1,380 @@ + 归档 - 第 3 页 | Bi's Blog

Bi's Blog

归档

共 44 篇文章,第 3 页

归档发布趋势

按月份统计文章发布数量

0 9 17 2025-08: 17 篇 2025-08 2025-09: 3 篇 2025-10: 2 篇 2025-10 2026-01: 3 篇 2026-02: 7 篇 2026-02 2026-03: 3 篇 2026-04: 6 篇 2026-04 2026-05: 1 篇 2026-06: 2 篇 2026-06
Ctrl + 右键:浏览器原生菜单 +
\ No newline at end of file diff --git a/atom.xml b/atom.xml new file mode 100644 index 0000000..cb62c61 --- /dev/null +++ b/atom.xml @@ -0,0 +1 @@ +Bi's BlogPersonal blog by biss.https://blog.biss.click/网站迁移日志https://blog.biss.click/posts/8f3b9d21/https://blog.biss.click/posts/8f3b9d21/这篇文章记录一次个人网站迁移过程:为什么要从旧的博客构建流程迁到 Astro,迁移时处理了哪些内容、路由、评论、统计和搜索问题,以及这次折腾之后留下的一些经验。Fri, 19 Jun 2026 16:45:00 GMT用 Umami 分享链接给网站信息卡提供统计数据https://blog.biss.click/posts/4c91a8f2/https://blog.biss.click/posts/4c91a8f2/这篇文章记录如何通过 Umami 的分享链接获取公开统计数据,再用 Cloudflare Worker 做一层缓存代理,最后把访客数和访问量显示到博客侧边栏的网站信息卡里。Fri, 19 Jun 2026 08:58:00 GMT把普通的一天过成自己的节奏https://blog.biss.click/posts/efe1e805/https://blog.biss.click/posts/efe1e805/有时候,我们会把“好好生活”想得太大,好像它必须绑定某个明确的目标:换一份更好的工作,去一个更远的地方,学会一项很厉害的技能,或者在某个时间节点之前完成别人眼里的成功。 可真正能把日子托住的,往往不是这些很大的东西,而是一些小到容易被忽略的Fri, 29 May 2026 18:09:40 GMTGPT Image2 初试https://blog.biss.click/posts/3f8de22/https://blog.biss.click/posts/3f8de22/这篇文章介绍了作者最近试用gpt img2之后的一些直观感受。文章没有从技术角度展开,而是以普通用户的体验为主,聊了它适合做什么、哪些地方比以前的AI绘图更顺手、哪些地方依然不太稳定,以及在日常做头像、壁纸、封面图和改图时的一些实际体会。整体来看,它确实比以前更听话一些,但也还没有到可以完全省心的地步。Sat, 25 Apr 2026 15:00:00 GMT电子价签玩法https://blog.biss.click/posts/8712baaa/https://blog.biss.click/posts/8712baaa/这篇文章介绍了作者在逛咸鱼时发现并购买了两个改造二手电子价签的过程,这些电子价签由tsl0922开发的开源固件提供支持,具备日历、传图、文字功能,并且可以在网页端进行便捷的配置。尽管开源版固件功能有限,作者选择自行编写所需功能,目前已经实现了待办事项和倒计时功能,并能生成图片后上传至网络。Sun, 19 Apr 2026 13:46:25 GMTOpenGL- Cohen-Sutherland 编码裁剪算法https://blog.biss.click/posts/9b2ef00a/https://blog.biss.click/posts/9b2ef00a/这篇文章介绍了Cohen-Sutherland编码裁剪算法,这是一种在计算机图形学中常用的图像裁剪方法。裁剪的目的是从一个大场景中提取所需信息,例如在浏览地图时放大显示特定区域。Cohen-Sutherland算法通过空间划分和编码方案来判断线段与矩形窗口的位置关系,从而决定线段的哪部分在窗口内、哪部分在窗口外。算法的核心在于计算线段端点的区域编码,并根据编码值来确定线段的裁剪结果。文章还提供了具体的代码实现,包括初始化设置、窗口大小调整和主函数等,展示了如何在实际应用中使用该算法进行图像裁剪。Wed, 15 Apr 2026 19:34:23 GMTOpenGL-直线的扫描转换https://blog.biss.click/posts/7207243b/https://blog.biss.click/posts/7207243b/这篇文章介绍了三种直线扫描转换算法:DDA算法、中点画线算法和Bresenham算法。 DDA算法通过计算直线起点和终点的坐标差值来确定步数和增量,依次绘制直线上的点。算法实现简单,适用于任意直线,但精度较低。 中点画线算法仅适用于斜率为0或1的直线,通过计算中点和斜率来确定直线上的像素点,效率较高。 Bresenham算法根据直线的斜率和误差项来确定像素点的位置,适用于任意直线,且精度高,但实现稍复杂。Sat, 11 Apr 2026 19:01:02 GMTOpenGL-基础程序https://blog.biss.click/posts/437a5198/https://blog.biss.click/posts/437a5198/这篇文章详细介绍了OpenGL的基础程序,包括代码展示和代码解释两部分。代码展示部分呈现了一个简单的OpenGL程序,涵盖了初始化与窗口管理、状态设置与缓冲区操作、矩阵与坐标变换以及几何图形绘制等关键步骤。代码解释则将这些步骤按照功能类别进行了归纳,帮助读者更好地理解OpenGL的渲染流程。通过这个示例,读者可以初步掌握OpenGL的基本操作和概念。Sat, 11 Apr 2026 18:20:34 GMT配置OpenGL环境https://blog.biss.click/posts/c4477b0c/https://blog.biss.click/posts/c4477b0c/这篇文章详细介绍了配置OpenGL环境所需步骤,包括安装Visual Studio、CMake和GLFW等关键组件,并提供了具体的配置方法和测试代码,旨在帮助读者顺利开始计算机图形学的学习之旅。Thu, 02 Apr 2026 04:52:16 GMTopencv应用-算术运算https://blog.biss.click/posts/b559997d/https://blog.biss.click/posts/b559997d/这篇文章介绍了如何使用OpenCV进行图像的加法运算。首先,通过包含OpenCV和iostream头文件,并使用std命名空间,开始编写代码。主函数中,读取两张图片,检查是否成功加载,并确保它们的尺寸相同。如果尺寸不同,将第二张图片调整为与第一张相同的大小。然后,调用add函数对两幅图片进行加法运算,并将结果存储在result矩阵中。最后,显示原始图片和加法运算的结果,并等待按键关闭窗口。代码已上传至自建的git仓库。Tue, 17 Mar 2026 13:13:08 GMTopencv应用-基础操作https://blog.biss.click/posts/e8f95ead/https://blog.biss.click/posts/e8f95ead/这篇文章介绍了使用C++和OpenCV库进行图像处理的基础操作,包括图片的读取与展示、像素的读取与修改、图像的基本变换(缩放、旋转、平移、翻转)、以及图像通道的分离与合并。文章详细讲解了每个操作的代码实现,并展示了如何通过OpenCV库提供的函数来完成这些任务。这对于初学者来说是非常有用的,因为它帮助他们理解如何使用OpenCV进行图像处理。Sun, 15 Mar 2026 09:56:51 GMT配置opencvhttps://blog.biss.click/posts/6e3332b/https://blog.biss.click/posts/6e3332b/这篇文章介绍了在Ubuntu和Windows系统上配置OpenCV的过程。在Ubuntu系统中,通过包管理器安装了Visual Studio、GCC、G++、OpenCV以及Python的OpenCV绑定。而在Windows系统中,则通过安装Visual Studio并下载OpenCV的Windows安装包进行配置,包括将安装路径添加到系统环境变量中。Sat, 14 Mar 2026 11:48:36 GMT自建bitwarden服务https://blog.biss.click/posts/7baa41fc/https://blog.biss.click/posts/7baa41fc/这篇文章介绍了如何自建Bitwarden服务,以替代浏览器自带的密码管理器。Bitwarden是一款开源、端到端加密的密码管理器,支持多种操作系统和设备,具有安全存储、自动同步、一键填充、生成随机密码和检测弱密码等功能。文章详细描述了部署Bitwarden服务的步骤,包括安装Vaultwarden、配置Nginx反向代理以及设置域名和数据卷等。通过这些步骤,用户可以轻松搭建一个功能强大的密码管理服务器,提高个人信息安全。Wed, 25 Feb 2026 11:09:23 GMT自建renovate-bothttps://blog.biss.click/posts/56f57c0b/https://blog.biss.click/posts/56f57c0b/这篇文章介绍了如何自建Renovate Bot以自动更新依赖,并通过Docker Compose进行部署。首先,文章提供了Renovate Bot的Docker Compose文件配置,包括使用特定平台(gitea)、设置Git API地址、生成Token以及启用自动发现功能。接着,建议创建一个专门用于管理Renovate Bot的账户,并为其生成登录Token。最后,通过在系统的crontab中设置定时任务,可以自动化运行更新流程。Mon, 23 Feb 2026 10:49:17 GMT新年快乐!https://blog.biss.click/posts/5785bd01/https://blog.biss.click/posts/5785bd01/这篇文章是一则关于新年祝福和幸福指数提升的通知,主要内容包含以下几点:首先,强调在假期期间要确保饮食质量,避免emo情绪的影响;其次,鼓励大家在收到通知后在留言区分享新年愿望,以便后台系统收集并祝愿他们实现愿望;最后,表达了对大家新年的美好祝愿,希望他们身体健康,万事如意,所得皆所愿,所行化坦途。Sat, 14 Feb 2026 06:56:18 GMT添加网站左上角菜单https://blog.biss.click/posts/7e921903/https://blog.biss.click/posts/7e921903/这篇文章详细介绍了如何在柳神的网站上添加一个自定义的左上角菜单,包括菜单的结构、样式以及响应式设计。作者提供了具体的HTML和CSS代码示例,展示了如何实现一个包含多个链接和功能的导航栏,同时确保在不同屏幕尺寸下的适配性。此外,还解释了一些关键的CSS属性和JavaScript交互效果,以实现平滑的菜单显示和隐藏。通过这些步骤,用户可以轻松地自定义和美化网站的顶部导航栏,提升用户体验。Tue, 10 Feb 2026 07:11:14 GMT将博客仓库转移到giteahttps://blog.biss.click/posts/d2c8521/https://blog.biss.click/posts/d2c8521/这篇文章详细介绍了如何将博客仓库从现有的平台转移到Gitea。首先,确保已经成功安装了Gitea。接着,文章重点讲解了action文件的修改,包括检查分支、缓存项目、安装Node和Hexo、安装依赖、清理文件树、生成静态文件并压缩、部署到本地仓库以及Webhook的配置。这些步骤确保了博客能够顺利迁移到Gitea,并且保持了原有的功能和结构。需要注意的是,文章中的action文件包含了一些具体的指令和变量,如ref: master、cache-node-modules等,这些在实际操作时需要替换为具体的值。此外,文章还提到了Webhook的配置,这是一个可选但推荐的自定义事件触发器,用于在特定事件发生时自动触发部署流程。Sat, 07 Feb 2026 12:30:39 GMT安装giteahttps://blog.biss.click/posts/34725d47/https://blog.biss.click/posts/34725d47/这篇文章详细介绍了如何在2C2G的服务器上安装Gitea,包括获取二进制文件、创建用户和工作目录、创建系统服务、创建数据库以及安装Runner等步骤。Gitea作为一个轻量级的自助Git服务,适合用于托管网站源码。文章还提供了关于如何配置反向代理和数据库的信息,以及如何使用Docker运行Gitea Runner以实现GitHub Actions功能。通过这些步骤,用户可以在自己的服务器上成功部署Gitea,并利用其进行版本控制和自动化工作流程。Sat, 07 Feb 2026 06:32:04 GMT添加typesense搜索https://blog.biss.click/posts/f287c563/https://blog.biss.click/posts/f287c563/这篇文章介绍了如何在博客中集成Typesense搜索引擎,包括安装Typesense、添加数据集以及同步数据的详细步骤。首先,通过命令行安装Typesense并配置相关参数,如API密钥和数据目录。接着,安装必要的npm包,并在Hexo博客中配置搜索功能,指定存储搜索数据的JSON文件路径。然后,编写了一个同步脚本,用于读取XML文件、解析数据、检查或创建集合以及导入数据到Typesense。最后,在博客底部添加了InstantSearch和Typesense的JavaScript库,并根据实际情况修改了配置。Thu, 05 Feb 2026 13:14:16 GMT自定义字体https://blog.biss.click/posts/b5601a7e/https://blog.biss.click/posts/b5601a7e/这篇文章讨论了如何自定义网站字体,以提升网站的美观性和用户体验。作者首先提到了在移动端和电脑上使用woff或woff2字体能够完美显示的重要性,并提到谷歌字体库可能已经可以直接在中国大陆访问,这使得自定义字体的需求可能不再那么迫切。接着,文章详细介绍了如何在网上寻找并下载喜欢的字体,包括字体格式的转换方法。然后,展示了如何在CSS文件中添加字体,包括如何声明字体族和指定字体文件的路径。最后,文章还提供了关于其他字体格式的参考,并指导如何在主题文件的font配置区域修改字体设置。Fri, 16 Jan 2026 07:47:15 GMT在侧边栏添加日历和倒计时https://blog.biss.click/posts/5ed2f1e6/https://blog.biss.click/posts/5ed2f1e6/实现了一个侧边栏日历与倒计时卡片,包含以下核心功能:日历展示:显示当前日期(公历与农历)、星期、生肖、干支年份。动态生成当月日历网格,高亮当天日期。倒计时模块:距离除夕倒计时:实时计算并显示剩余天数(示例中为2026年2月16日)。进度条:分别展示本年、本月、本周的已过去进度(百分比)及剩余天数。农历支持:调用 chinese-lunar.js 库将公历转换为农历,格式化显示为“干支年+生肖年+农历月+农历日”。Fri, 16 Jan 2026 07:47:07 GMT和朋友们的故事https://blog.biss.click/posts/a31d95d9/https://blog.biss.click/posts/a31d95d9/这篇文章讲述了作者与朋友们的故事,以及他通过挂号信和电子贺卡与朋友们保持联系的经历。作者描述了自己对这种传统通信方式的喜爱,尽管现在网络发达,但他仍然觉得挂号信具有独特的魅力。文章中提到了作者去年上半年开始给朋友们写信,下半年因忙碌而减少,年底时尝试使用AI工具创作电子贺卡。作者感慨大学时间的快速流逝,以及朋友们之间的疏远。尽管如此,作者认为这是必然的事情,并无悲伤之处,只是单纯的感慨。最后,作者表示下次有时间会在文章中更新更多内容。Mon, 05 Jan 2026 13:14:16 GMTAdguard和Openclash共存https://blog.biss.click/posts/66e66374/https://blog.biss.click/posts/66e66374/这篇文章介绍了如何在已经安装了 OpenWrt 系统并配置好 OpenClash 和 AdguardHome 的情况下,实现这两者的共存。首先简要说明了 AdguardHome 和 OpenClash 的原理,它们都是通过劫持 DNS 来达到特定目的。然后分别介绍了两种配置方式:一种是在 AdguardHome 中将上游 DNS 服务器设置为 127.0.0.1:7874,这种方式相对简单;另一种是将 OpenClash 中的 DNS 指向 AdguardHome,但可能存在拦截失败的情况。Sun, 05 Oct 2025 15:18:00 GMTAdguard规则分享https://blog.biss.click/posts/69b16001/https://blog.biss.click/posts/69b16001/这篇文章分享了关于Adguardhome广告拦截工具的使用经验,特别强调了规则的重要性。作者提到,要达到更好的拦截效果,需要搭配有效的规则,并详细介绍了两个关键方面:一是综合过滤规则的分享,二是广告过滤规则订阅中心的集成。通过添加这些规则,使用Adblocktester工具可以达到74分的拦截效果,认为这基本够用。Sun, 05 Oct 2025 12:18:00 GMT在Openwrt上安装AdguardHomehttps://blog.biss.click/posts/b57500e9/https://blog.biss.click/posts/b57500e9/这篇文章介绍了在OpenWrt上安装AdguardHome的过程。首先,作者提到由于luci-app-adguardhome软件源的问题,选择了其他途径获取软件包并进行安装。接着,详细说明了安装步骤,包括下载、上传和运行安装命令。在配置部分,作者强调了更新核心版本的重要性,并提供了配置AdguardHome的具体步骤,如关闭路由器自带DNS/DHCP服务器,并建议设置AdguardHome的DHCP服务器。最后,作者提醒用户在完成配置后点击“保存并应用”,并通过AdGuardHome Web界面进行验证。Sun, 28 Sep 2025 17:10:18 GMT在Openwrt中安装OpenClashhttps://blog.biss.click/posts/2b2fb1a7/https://blog.biss.click/posts/2b2fb1a7/这篇文章详细介绍了在OpenWrt系统中安装OpenClash的过程。作者通过Web管理页面和终端命令两种方式进行了安装,并强调了推荐启用Smart内核。安装完成后,作者提到了配置步骤,包括下载内核和导入配置文件,最后表达了对于zashboard界面简洁美观的个人喜好。整篇文章内容连贯,条理清晰,为读者提供了完整的安装指南。Tue, 02 Sep 2025 21:00:00 GMTCudy TR3000刷入Openwrt系统https://blog.biss.click/posts/8802e397/https://blog.biss.click/posts/8802e397/这篇文章介绍了如何将Cudy TR3000路由器刷入OpenWrt系统。首先,作者提供了下载中间固件和OpenWrt固件的方法。接着,详细说明了刷入过程的步骤,包括访问不同的IP地址进行固件刷入,并提到了OpenWrt的默认登录密码是root。整个过程旨在使路由器能够支持科学上网功能。Sun, 31 Aug 2025 20:15:00 GMT搭建Owncloud并集成Onlyofficehttps://blog.biss.click/posts/59c8572a/https://blog.biss.click/posts/59c8572a/这篇文章详细介绍了如何搭建Owncloud网盘服务并集成Onlyoffice文档编辑器。首先,作者描述了搭建过程中的基本步骤,包括安装网盘和进行系统调优,其中强调了Redis缓存配置和Cron任务设置的重要性。接着,作者提到了在1panel应用商店安装Onlyoffice的过程,并说明了如何将其反向代理至个人域名。最后,文章指导用户在Owncloud中搜索并安装Onlyoffice插件,确保了整个集成过程的顺利完成。Tue, 26 Aug 2025 14:27:00 GMT为博客添加CMS系统https://blog.biss.click/posts/3a26a97a/https://blog.biss.click/posts/3a26a97a/这篇文章介绍了如何为Hexo博客添加一个基于Sveltia CMS的CMS系统。首先,作者通过npm安装了Sveltia CMS,并在博客源码目录下创建了必要的文件和目录结构。接着,作者详细说明了如何在config.yml文件中配置CMS,包括字段定义、页面和集合的设置。由于作者使用的是自己的服务器,无法使用官方的认证系统,因此他还讲解了如何配置GitHub OAuth应用,并在Cloudflare上设置环境变量以支持CI/CD流程。最后,作者指出完成这些步骤后,可以通过访问博客的admin后台来管理内容。Mon, 25 Aug 2025 22:03:00 GMT为1Panel添加自己想要的应用https://blog.biss.click/posts/bb18d851/https://blog.biss.click/posts/bb18d851/这篇文章详细介绍了如何为1Panel添加自定义应用的过程,包括预准备工作、创建文件和配置应用声明文件等步骤。首先,作者强调了Fork仓库和创建新分支的重要性。接着,文章逐步讲解了如何在应用目录下创建所需的文件和子目录,如halo、logo.png、data.yml、README.md等。特别详细地说明了应用声明文件data.yml的构成,包括基本信息、应用标签、类型等关键配置。此外,还解释了关于端口字段和type字段的具体使用方法,提供了实际安装时填写form表单的示例。整个过程不仅清晰易懂,而且为开发者提供了一套完整的操作指南,有助于他们更好地理解和实施应用添加到1Panel的过程。Tue, 19 Aug 2025 10:43:16 GMT使用GitHub推送Hexo到服务器https://blog.biss.click/posts/ce1ec3fe/https://blog.biss.click/posts/ce1ec3fe/这篇文章介绍了如何使用GitHub推送Hexo到服务器,包括建立GitHub仓库、上传文件、创建Action以及配置环境变量等步骤。首先,文章提供了在香港直连GitHub的方法,并指导如何在本地安装git、配置用户名和邮箱、创建SSH Key并在GitHub上上传公钥。接着,文章详细说明了如何在自己的hexo根目录下初始化git仓库,并使用PowerShell将文件推送到新建的私有仓库。此外,文章还创建了一个Action,用于自动化部署过程,包括检查分支、缓存项目、安装Node和Hexo、安装依赖、清理文件树、生成静态文件并压缩、部署到服务器等环节。最后,文章列出了需要配置的环境变量,如服务器IP、用户名、密钥密码、私钥和SSH登录端口,并强调了测试的重要性,以确保整个部署流程无报错。Mon, 18 Aug 2025 17:10:18 GMTC# 基本语法https://blog.biss.click/posts/e9a8e898/https://blog.biss.click/posts/e9a8e898/这篇文章通过Rectangle示例讲解C#面向对象基础,展示类与对象如何封装数据及行为,并输出面积15.75。随后介绍using引入命名空间、class声明类、注释、成员变量与函数、实例化流程及标识符规则。重点解析C#9顶级语句,无需Main方法即可在文件顶层直接写代码,编译器自动生成入口,适合脚本化开发,示例演示变量、方法、LINQ与异常处理,简化小型项目结构。Sat, 16 Aug 2025 18:01:10 GMTC# 入门https://blog.biss.click/posts/bc56f789/https://blog.biss.click/posts/bc56f789/这篇文章指导初学者在Windows上安装C#开发环境:先下载Visual Studio社区版安装器并勾选“.NET桌面开发”工作负载,可自定义安装路径;随后通过HelloWorld演示C#基础结构,包含命名空间、类、Main入口及Console输出,帮助读者完成首个程序并熟悉默认模板。Fri, 15 Aug 2025 09:56:17 GMT自定义页脚(新)https://blog.biss.click/posts/c6143ad3/https://blog.biss.click/posts/c6143ad3/您提供的代码是一个自定义页脚的HTML和CSS代码 要在您的网站中使用这个自定义页脚,请按照以下步骤操作: 1. 首先,将提供的CSS代码复制到您网站的CSS文件中。如果您没有单独的CSS文件,可以在HTML文件的`<head>`部分添加`<style>`标签,并将CSS代码粘贴到其中。 2. 接下来,将提供的HTML代码复制到您网站的HTML文件中。将其放置在`<body>`标签内,最好在页面的底部。 3. 根据需要自定义页脚内容,例如更改版权信息、菜单链接、社交链接等。 4. 保存更改并在浏览器中查看您的网站,您应该能看到自定义页脚。Thu, 14 Aug 2025 17:05:27 GMT自定义分类条https://blog.biss.click/posts/33249733/https://blog.biss.click/posts/33249733/这篇文章介绍了如何在博客系统中自定义分类栏的设计和实现过程。首先,通过Pug模板语言创建了一个名为categoryBar.pug的文件,用于定义分类栏的结构和样式。接着,在Stylus样式文件category-bar.styl中详细定义了分类栏的样式,包括内边距、背景颜色、边框圆角等,并设置了滚动条的样式。最后,在JavaScript文件main.js中添加了一个setCategoryBarActive函数,用于根据当前页面路径自动激活相应的分类项。此外,还讨论了如何将自定义的分类栏集成到主题中,并提供了相关的Pug混入代码。整个过程确保了分类栏的可定制性和易维护性。Thu, 14 Aug 2025 16:25:49 GMT自定义导航栏https://blog.biss.click/posts/3e61a389/https://blog.biss.click/posts/3e61a389/这篇文章介绍了如何在最新版的Butterfly 5.4中自定义导航栏,包括PC端和PE端的修改方法以及CSS文件的调整。主要内容包括修改header\nav.pug和menu_item.pug文件中的内容,调整head.styl和sidebar.styl中的CSS样式,以及在CSS文件中添加新的样式规则。这些修改旨在实现导航栏的个性化设置,如菜单项的显示、位置调整、背景颜色变化等,以提升网站的用户体验和视觉效果。Wed, 13 Aug 2025 16:12:25 GMT利用 SiteMap 随机访问站内页面https://blog.biss.click/posts/b5866b9e/https://blog.biss.click/posts/b5866b9e/提供了一个很好的解决方案,通过使用 Hexo 的 sitemap 生成器和 JavaScript 代码来实现随机访问站内页面的功能 以下是你提供的步骤的详细解释:Tue, 12 Aug 2025 15:15:32 GMT博客添加AI总结https://blog.biss.click/posts/41b9aff7/https://blog.biss.click/posts/41b9aff7/这篇文章介绍了如何在Hexo博客中添加AI摘要功能,作者寻找并尝试了多个AI摘要插件后,最终选择了hexo-ai-summary-liushen插件。安装过程中,作者详细说明了如何安装额外依赖,并在Hexo配置文件中添加了相关配置。文章还提供了关于内容清洗、摘要字段设置、日志等级、API接口配置、插件适配等方面的详细说明和配置示例。此外,作者还介绍了如何将AI摘要集成到Hexo主题中,并提供了相关的CSS样式和JavaScript动效代码,以实现更加逼真的摘要效果。最后,作者提醒用户在运行插件前注意备份,并介绍了如何处理可能出现的缓存问题。Tue, 12 Aug 2025 09:46:25 GMT利用插件自定义页脚菜单https://blog.biss.click/posts/a6ab0925/https://blog.biss.click/posts/a6ab0925/这篇文章介绍了如何使用插件来自定义Hexo博客的页脚菜单。首先,通过npm安装了hexo-butterfly-footer-marcus插件,并根据需要安装了yamljs插件。接着,在博客的配置文件中添加了相关配置信息,包括页脚美化、图标链接、作者信息等。文章还提供了具体的参数释义和使用方法,指导读者如何填写配置项和修改源码来调整页脚样式和布局。最后,文章还提到了如何解决在黑暗模式下修改按钮层级的问题,并提供了相关的代码修改示例。Tue, 12 Aug 2025 09:19:16 GMT英语文章分享-去奋力生活吧,就好像死亡近在咫尺https://blog.biss.click/posts/f0a1a1f4/https://blog.biss.click/posts/f0a1a1f4/这篇文章讨论了在生活中追求意义的重要性,特别是在面对死亡时。作者作为一名临终关怀医生,见证了无数病人对未实现目标的遗憾。文章指出,许多人因感到精力不足或时间不够而未能追求自己的目标。然而,研究表明,拥有强烈目标感的人实际上更有活力,更容易被激励。目的不在于做出巨大贡献,而在于找到能激发内心火花的小目标,如阅读、散步或重拾儿时的爱好。文章强调,勇气是追求目标的关键,而不仅仅是勇敢。最后,作者警告说,如果不在有生之年追求目标,可能会在死亡时后悔莫及。Mon, 11 Aug 2025 20:59:46 GMT自定义右键菜单https://blog.biss.click/posts/8bdb35fb/https://blog.biss.click/posts/8bdb35fb/这篇文章介绍了如何在自定义右键菜单中添加各种功能,包括返回、前进、刷新、滚动到页面不同位置、复制文本、搜索页面、打开链接、粘贴内容、复制本文地址、在新窗口打开链接、保存图片、随机文章浏览、切换深色模式、繁简转换、阅读模式以及隐私声明、Cookie协议和版权声明等。同时,文章还提供了创建Pug文件和JavaScript文件的步骤,详细说明了如何编写右键菜单的HTML结构和交互逻辑。Mon, 11 Aug 2025 16:02:12 GMT在侧边栏中添加欢迎信息https://blog.biss.click/posts/da17d00/https://blog.biss.click/posts/da17d00/这篇文章介绍了如何在侧边栏中添加欢迎信息,包括申请腾讯地图API key、添加js脚本以及根据用户的地理位置显示个性化欢迎语。首先,文章指导读者如何申请腾讯地图API key,并提醒注意填写信任域名时不要包含'https://'。接着,文章说明了在主题的js目录下添加txmap.js脚本的过程,并提到了一个更完善的js脚本。最后,文章详细描述了如何使用获取到的地理位置信息,通过switch语句根据不同的国家、省份和城市显示相应的欢迎语。Sun, 10 Aug 2025 19:30:40 GMT配置说说页面https://blog.biss.click/posts/ad244066/https://blog.biss.click/posts/ad244066/这段文字看起来是一个部署教程,主要是关于如何在服务器上部署一个名为“Moments”的应用,并将其与网站集成。以下是对这段文字的概括: 1. 介绍了硬件和软件的要求,包括服务器、域名、Docker环境和反向代理工具(如Nginx)。 2. 提供了Moments应用的部署方法,包括使用docker-compose进行部署和配置Nginx反向代理。 3. 介绍了如何在前端集成Moments应用,包括引入必要的CSS和JS文件,以及创建一个新的页面来显示Moments的内容。 需要注意的是,这段文字中的一些链接和代码可能已经过时或者不适用于所有场景,建议在实际操作时参考最新的官方Sun, 10 Aug 2025 08:25:39 GMT部署历程https://blog.biss.click/posts/6e5f5039/https://blog.biss.click/posts/6e5f5039/这篇文章详细介绍了如何部署Hexo博客到Linux服务器,包括前提条件、本地环境准备、SSH密钥认证、配置步骤、工作流程以及故障排除提示。文章首先列出了部署所需满足的条件,然后逐步指导读者如何在服务器上安装Git、创建裸仓库、配置Git钩子以自动部署Hexo博客,并提供了验证部署成功的步骤。最后,文章还给出了一些常见问题的解决建议,帮助读者顺利完成部署。整个过程简单高效,适合需要自动化部署博客的用户。Sat, 02 Aug 2025 19:07:05 GMT \ No newline at end of file diff --git a/categories/index.html b/categories/index.html new file mode 100644 index 0000000..4c36ab3 --- /dev/null +++ b/categories/index.html @@ -0,0 +1,376 @@ + 分类 | Bi's Blog

Bi's Blog

分类

共 5 个分类

分类归档统计

44 篇文章 · 49 次归档 · 5 篇多分类 · 1 篇未分类

Ctrl + 右键:浏览器原生菜单 +
\ No newline at end of file diff --git a/categories/life/index.html b/categories/life/index.html new file mode 100644 index 0000000..635b2dd --- /dev/null +++ b/categories/life/index.html @@ -0,0 +1,376 @@ + 生活 | Bi's Blog

Bi's Blog

生活

共 1 篇文章

Ctrl + 右键:浏览器原生菜单 +
\ No newline at end of file diff --git a/categories/notes/index.html b/categories/notes/index.html new file mode 100644 index 0000000..ca0672a --- /dev/null +++ b/categories/notes/index.html @@ -0,0 +1,376 @@ + 杂谈 | Bi's Blog

Bi's Blog

杂谈

共 1 篇文章

和朋友们的故事 这篇文章讲述了作者与朋友们的故事,以及他通过挂号信和电子贺卡与朋友们保持联系的经历。作者描述了自己对这种传统通信方式的喜爱,尽管现在网络发达,但他仍然觉得挂号信具有独特的魅力。文章中提到了作者去年上半年开始给朋友们写信,下半年因忙碌而减少,年底时尝试使用AI工具创作电子贺卡。作者感慨大学时间的快速流逝,以及朋友们之间的疏远。尽管如此,作者认为这是必然的事情,并无悲伤之处,只是单纯的感慨。最后,作者表示下次有时间会在文章中更新更多内容。
Ctrl + 右键:浏览器原生菜单 +
\ No newline at end of file diff --git a/categories/site-notes/index.html b/categories/site-notes/index.html new file mode 100644 index 0000000..7917ada --- /dev/null +++ b/categories/site-notes/index.html @@ -0,0 +1,376 @@ + 建站手札 | Bi's Blog

Bi's Blog

建站手札

共 18 篇文章

添加网站左上角菜单 这篇文章详细介绍了如何在柳神的网站上添加一个自定义的左上角菜单,包括菜单的结构、样式以及响应式设计。作者提供了具体的HTML和CSS代码示例,展示了如何实现一个包含多个链接和功能的导航栏,同时确保在不同屏幕尺寸下的适配性。此外,还解释了一些关键的CSS属性和JavaScript交互效果,以实现平滑的菜单显示和隐藏。通过这些步骤,用户可以轻松地自定义和美化网站的顶部导航栏,提升用户体验。
添加typesense搜索 这篇文章介绍了如何在博客中集成Typesense搜索引擎,包括安装Typesense、添加数据集以及同步数据的详细步骤。首先,通过命令行安装Typesense并配置相关参数,如API密钥和数据目录。接着,安装必要的npm包,并在Hexo博客中配置搜索功能,指定存储搜索数据的JSON文件路径。然后,编写了一个同步脚本,用于读取XML文件、解析数据、检查或创建集合以及导入数据到Typesense。最后,在博客底部添加了InstantSearch和Typesense的JavaScript库,并根据实际情况修改了配置。
自定义字体 这篇文章讨论了如何自定义网站字体,以提升网站的美观性和用户体验。作者首先提到了在移动端和电脑上使用woff或woff2字体能够完美显示的重要性,并提到谷歌字体库可能已经可以直接在中国大陆访问,这使得自定义字体的需求可能不再那么迫切。接着,文章详细介绍了如何在网上寻找并下载喜欢的字体,包括字体格式的转换方法。然后,展示了如何在CSS文件中添加字体,包括如何声明字体族和指定字体文件的路径。最后,文章还提供了关于其他字体格式的参考,并指导如何在主题文件的font配置区域修改字体设置。
在侧边栏添加日历和倒计时 实现了一个侧边栏日历与倒计时卡片,包含以下核心功能:日历展示:显示当前日期(公历与农历)、星期、生肖、干支年份。动态生成当月日历网格,高亮当天日期。倒计时模块:距离除夕倒计时:实时计算并显示剩余天数(示例中为2026年2月16日)。进度条:分别展示本年、本月、本周的已过去进度(百分比)及剩余天数。农历支持:调用 chinese-lunar.js 库将公历转换为农历,格式化显示为“干支年+生肖年+农历月+农历日”。
为博客添加CMS系统 这篇文章介绍了如何为Hexo博客添加一个基于Sveltia CMS的CMS系统。首先,作者通过npm安装了Sveltia CMS,并在博客源码目录下创建了必要的文件和目录结构。接着,作者详细说明了如何在config.yml文件中配置CMS,包括字段定义、页面和集合的设置。由于作者使用的是自己的服务器,无法使用官方的认证系统,因此他还讲解了如何配置GitHub OAuth应用,并在Cloudflare上设置环境变量以支持CI/CD流程。最后,作者指出完成这些步骤后,可以通过访问博客的admin后台来管理内容。
使用GitHub推送Hexo到服务器 这篇文章介绍了如何使用GitHub推送Hexo到服务器,包括建立GitHub仓库、上传文件、创建Action以及配置环境变量等步骤。首先,文章提供了在香港直连GitHub的方法,并指导如何在本地安装git、配置用户名和邮箱、创建SSH Key并在GitHub上上传公钥。接着,文章详细说明了如何在自己的hexo根目录下初始化git仓库,并使用PowerShell将文件推送到新建的私有仓库。此外,文章还创建了一个Action,用于自动化部署过程,包括检查分支、缓存项目、安装Node和Hexo、安装依赖、清理文件树、生成静态文件并压缩、部署到服务器等环节。最后,文章列出了需要配置的环境变量,如服务器IP、用户名、密钥密码、私钥和SSH登录端口,并强调了测试的重要性,以确保整个部署流程无报错。
自定义页脚(新) 您提供的代码是一个自定义页脚的HTML和CSS代码 要在您的网站中使用这个自定义页脚,请按照以下步骤操作: 1. 首先,将提供的CSS代码复制到您网站的CSS文件中。如果您没有单独的CSS文件,可以在HTML文件的`<head>`部分添加`<style>`标签,并将CSS代码粘贴到其中。 2. 接下来,将提供的HTML代码复制到您网站的HTML文件中。将其放置在`<body>`标签内,最好在页面的底部。 3. 根据需要自定义页脚内容,例如更改版权信息、菜单链接、社交链接等。 4. 保存更改并在浏览器中查看您的网站,您应该能看到自定义页脚。
自定义分类条 这篇文章介绍了如何在博客系统中自定义分类栏的设计和实现过程。首先,通过Pug模板语言创建了一个名为categoryBar.pug的文件,用于定义分类栏的结构和样式。接着,在Stylus样式文件category-bar.styl中详细定义了分类栏的样式,包括内边距、背景颜色、边框圆角等,并设置了滚动条的样式。最后,在JavaScript文件main.js中添加了一个setCategoryBarActive函数,用于根据当前页面路径自动激活相应的分类项。此外,还讨论了如何将自定义的分类栏集成到主题中,并提供了相关的Pug混入代码。整个过程确保了分类栏的可定制性和易维护性。
自定义导航栏 这篇文章介绍了如何在最新版的Butterfly 5.4中自定义导航栏,包括PC端和PE端的修改方法以及CSS文件的调整。主要内容包括修改header\nav.pug和menu_item.pug文件中的内容,调整head.styl和sidebar.styl中的CSS样式,以及在CSS文件中添加新的样式规则。这些修改旨在实现导航栏的个性化设置,如菜单项的显示、位置调整、背景颜色变化等,以提升网站的用户体验和视觉效果。
博客添加AI总结 这篇文章介绍了如何在Hexo博客中添加AI摘要功能,作者寻找并尝试了多个AI摘要插件后,最终选择了hexo-ai-summary-liushen插件。安装过程中,作者详细说明了如何安装额外依赖,并在Hexo配置文件中添加了相关配置。文章还提供了关于内容清洗、摘要字段设置、日志等级、API接口配置、插件适配等方面的详细说明和配置示例。此外,作者还介绍了如何将AI摘要集成到Hexo主题中,并提供了相关的CSS样式和JavaScript动效代码,以实现更加逼真的摘要效果。最后,作者提醒用户在运行插件前注意备份,并介绍了如何处理可能出现的缓存问题。
利用插件自定义页脚菜单 这篇文章介绍了如何使用插件来自定义Hexo博客的页脚菜单。首先,通过npm安装了hexo-butterfly-footer-marcus插件,并根据需要安装了yamljs插件。接着,在博客的配置文件中添加了相关配置信息,包括页脚美化、图标链接、作者信息等。文章还提供了具体的参数释义和使用方法,指导读者如何填写配置项和修改源码来调整页脚样式和布局。最后,文章还提到了如何解决在黑暗模式下修改按钮层级的问题,并提供了相关的代码修改示例。
自定义右键菜单 这篇文章介绍了如何在自定义右键菜单中添加各种功能,包括返回、前进、刷新、滚动到页面不同位置、复制文本、搜索页面、打开链接、粘贴内容、复制本文地址、在新窗口打开链接、保存图片、随机文章浏览、切换深色模式、繁简转换、阅读模式以及隐私声明、Cookie协议和版权声明等。同时,文章还提供了创建Pug文件和JavaScript文件的步骤,详细说明了如何编写右键菜单的HTML结构和交互逻辑。
在侧边栏中添加欢迎信息 这篇文章介绍了如何在侧边栏中添加欢迎信息,包括申请腾讯地图API key、添加js脚本以及根据用户的地理位置显示个性化欢迎语。首先,文章指导读者如何申请腾讯地图API key,并提醒注意填写信任域名时不要包含'https://'。接着,文章说明了在主题的js目录下添加txmap.js脚本的过程,并提到了一个更完善的js脚本。最后,文章详细描述了如何使用获取到的地理位置信息,通过switch语句根据不同的国家、省份和城市显示相应的欢迎语。
配置说说页面 这段文字看起来是一个部署教程,主要是关于如何在服务器上部署一个名为“Moments”的应用,并将其与网站集成。以下是对这段文字的概括: 1. 介绍了硬件和软件的要求,包括服务器、域名、Docker环境和反向代理工具(如Nginx)。 2. 提供了Moments应用的部署方法,包括使用docker-compose进行部署和配置Nginx反向代理。 3. 介绍了如何在前端集成Moments应用,包括引入必要的CSS和JS文件,以及创建一个新的页面来显示Moments的内容。 需要注意的是,这段文字中的一些链接和代码可能已经过时或者不适用于所有场景,建议在实际操作时参考最新的官方
部署历程 这篇文章详细介绍了如何部署Hexo博客到Linux服务器,包括前提条件、本地环境准备、SSH密钥认证、配置步骤、工作流程以及故障排除提示。文章首先列出了部署所需满足的条件,然后逐步指导读者如何在服务器上安装Git、创建裸仓库、配置Git钩子以自动部署Hexo博客,并提供了验证部署成功的步骤。最后,文章还给出了一些常见问题的解决建议,帮助读者顺利完成部署。整个过程简单高效,适合需要自动化部署博客的用户。
Ctrl + 右键:浏览器原生菜单 +
\ No newline at end of file diff --git a/categories/study/index.html b/categories/study/index.html new file mode 100644 index 0000000..e57a358 --- /dev/null +++ b/categories/study/index.html @@ -0,0 +1,376 @@ + 学习 | Bi's Blog

Bi's Blog

学习

共 7 篇文章

OpenGL- Cohen-Sutherland 编码裁剪算法 这篇文章介绍了Cohen-Sutherland编码裁剪算法,这是一种在计算机图形学中常用的图像裁剪方法。裁剪的目的是从一个大场景中提取所需信息,例如在浏览地图时放大显示特定区域。Cohen-Sutherland算法通过空间划分和编码方案来判断线段与矩形窗口的位置关系,从而决定线段的哪部分在窗口内、哪部分在窗口外。算法的核心在于计算线段端点的区域编码,并根据编码值来确定线段的裁剪结果。文章还提供了具体的代码实现,包括初始化设置、窗口大小调整和主函数等,展示了如何在实际应用中使用该算法进行图像裁剪。
OpenGL-直线的扫描转换 这篇文章介绍了三种直线扫描转换算法:DDA算法、中点画线算法和Bresenham算法。 DDA算法通过计算直线起点和终点的坐标差值来确定步数和增量,依次绘制直线上的点。算法实现简单,适用于任意直线,但精度较低。 中点画线算法仅适用于斜率为0或1的直线,通过计算中点和斜率来确定直线上的像素点,效率较高。 Bresenham算法根据直线的斜率和误差项来确定像素点的位置,适用于任意直线,且精度高,但实现稍复杂。
OpenGL-基础程序 这篇文章详细介绍了OpenGL的基础程序,包括代码展示和代码解释两部分。代码展示部分呈现了一个简单的OpenGL程序,涵盖了初始化与窗口管理、状态设置与缓冲区操作、矩阵与坐标变换以及几何图形绘制等关键步骤。代码解释则将这些步骤按照功能类别进行了归纳,帮助读者更好地理解OpenGL的渲染流程。通过这个示例,读者可以初步掌握OpenGL的基本操作和概念。
C# 基本语法 这篇文章通过Rectangle示例讲解C#面向对象基础,展示类与对象如何封装数据及行为,并输出面积15.75。随后介绍using引入命名空间、class声明类、注释、成员变量与函数、实例化流程及标识符规则。重点解析C#9顶级语句,无需Main方法即可在文件顶层直接写代码,编译器自动生成入口,适合脚本化开发,示例演示变量、方法、LINQ与异常处理,简化小型项目结构。
英语文章分享-去奋力生活吧,就好像死亡近在咫尺 这篇文章讨论了在生活中追求意义的重要性,特别是在面对死亡时。作者作为一名临终关怀医生,见证了无数病人对未实现目标的遗憾。文章指出,许多人因感到精力不足或时间不够而未能追求自己的目标。然而,研究表明,拥有强烈目标感的人实际上更有活力,更容易被激励。目的不在于做出巨大贡献,而在于找到能激发内心火花的小目标,如阅读、散步或重拾儿时的爱好。文章强调,勇气是追求目标的关键,而不仅仅是勇敢。最后,作者警告说,如果不在有生之年追求目标,可能会在死亡时后悔莫及。
Ctrl + 右键:浏览器原生菜单 +
\ No newline at end of file diff --git a/categories/tech/index.html b/categories/tech/index.html new file mode 100644 index 0000000..9483553 --- /dev/null +++ b/categories/tech/index.html @@ -0,0 +1,376 @@ + 技术 | Bi's Blog

Bi's Blog

技术

共 21 篇文章

GPT Image2 初试 这篇文章介绍了作者最近试用gpt img2之后的一些直观感受。文章没有从技术角度展开,而是以普通用户的体验为主,聊了它适合做什么、哪些地方比以前的AI绘图更顺手、哪些地方依然不太稳定,以及在日常做头像、壁纸、封面图和改图时的一些实际体会。整体来看,它确实比以前更听话一些,但也还没有到可以完全省心的地步。
OpenGL- Cohen-Sutherland 编码裁剪算法 这篇文章介绍了Cohen-Sutherland编码裁剪算法,这是一种在计算机图形学中常用的图像裁剪方法。裁剪的目的是从一个大场景中提取所需信息,例如在浏览地图时放大显示特定区域。Cohen-Sutherland算法通过空间划分和编码方案来判断线段与矩形窗口的位置关系,从而决定线段的哪部分在窗口内、哪部分在窗口外。算法的核心在于计算线段端点的区域编码,并根据编码值来确定线段的裁剪结果。文章还提供了具体的代码实现,包括初始化设置、窗口大小调整和主函数等,展示了如何在实际应用中使用该算法进行图像裁剪。
OpenGL-直线的扫描转换 这篇文章介绍了三种直线扫描转换算法:DDA算法、中点画线算法和Bresenham算法。 DDA算法通过计算直线起点和终点的坐标差值来确定步数和增量,依次绘制直线上的点。算法实现简单,适用于任意直线,但精度较低。 中点画线算法仅适用于斜率为0或1的直线,通过计算中点和斜率来确定直线上的像素点,效率较高。 Bresenham算法根据直线的斜率和误差项来确定像素点的位置,适用于任意直线,且精度高,但实现稍复杂。
OpenGL-基础程序 这篇文章详细介绍了OpenGL的基础程序,包括代码展示和代码解释两部分。代码展示部分呈现了一个简单的OpenGL程序,涵盖了初始化与窗口管理、状态设置与缓冲区操作、矩阵与坐标变换以及几何图形绘制等关键步骤。代码解释则将这些步骤按照功能类别进行了归纳,帮助读者更好地理解OpenGL的渲染流程。通过这个示例,读者可以初步掌握OpenGL的基本操作和概念。
opencv应用-算术运算 这篇文章介绍了如何使用OpenCV进行图像的加法运算。首先,通过包含OpenCV和iostream头文件,并使用std命名空间,开始编写代码。主函数中,读取两张图片,检查是否成功加载,并确保它们的尺寸相同。如果尺寸不同,将第二张图片调整为与第一张相同的大小。然后,调用add函数对两幅图片进行加法运算,并将结果存储在result矩阵中。最后,显示原始图片和加法运算的结果,并等待按键关闭窗口。代码已上传至自建的git仓库。
opencv应用-基础操作 这篇文章介绍了使用C++和OpenCV库进行图像处理的基础操作,包括图片的读取与展示、像素的读取与修改、图像的基本变换(缩放、旋转、平移、翻转)、以及图像通道的分离与合并。文章详细讲解了每个操作的代码实现,并展示了如何通过OpenCV库提供的函数来完成这些任务。这对于初学者来说是非常有用的,因为它帮助他们理解如何使用OpenCV进行图像处理。
自建bitwarden服务 这篇文章介绍了如何自建Bitwarden服务,以替代浏览器自带的密码管理器。Bitwarden是一款开源、端到端加密的密码管理器,支持多种操作系统和设备,具有安全存储、自动同步、一键填充、生成随机密码和检测弱密码等功能。文章详细描述了部署Bitwarden服务的步骤,包括安装Vaultwarden、配置Nginx反向代理以及设置域名和数据卷等。通过这些步骤,用户可以轻松搭建一个功能强大的密码管理服务器,提高个人信息安全。
自建renovate-bot 这篇文章介绍了如何自建Renovate Bot以自动更新依赖,并通过Docker Compose进行部署。首先,文章提供了Renovate Bot的Docker Compose文件配置,包括使用特定平台(gitea)、设置Git API地址、生成Token以及启用自动发现功能。接着,建议创建一个专门用于管理Renovate Bot的账户,并为其生成登录Token。最后,通过在系统的crontab中设置定时任务,可以自动化运行更新流程。
将博客仓库转移到gitea 这篇文章详细介绍了如何将博客仓库从现有的平台转移到Gitea。首先,确保已经成功安装了Gitea。接着,文章重点讲解了action文件的修改,包括检查分支、缓存项目、安装Node和Hexo、安装依赖、清理文件树、生成静态文件并压缩、部署到本地仓库以及Webhook的配置。这些步骤确保了博客能够顺利迁移到Gitea,并且保持了原有的功能和结构。需要注意的是,文章中的action文件包含了一些具体的指令和变量,如ref: master、cache-node-modules等,这些在实际操作时需要替换为具体的值。此外,文章还提到了Webhook的配置,这是一个可选但推荐的自定义事件触发器,用于在特定事件发生时自动触发部署流程。
安装gitea 这篇文章详细介绍了如何在2C2G的服务器上安装Gitea,包括获取二进制文件、创建用户和工作目录、创建系统服务、创建数据库以及安装Runner等步骤。Gitea作为一个轻量级的自助Git服务,适合用于托管网站源码。文章还提供了关于如何配置反向代理和数据库的信息,以及如何使用Docker运行Gitea Runner以实现GitHub Actions功能。通过这些步骤,用户可以在自己的服务器上成功部署Gitea,并利用其进行版本控制和自动化工作流程。
添加typesense搜索 这篇文章介绍了如何在博客中集成Typesense搜索引擎,包括安装Typesense、添加数据集以及同步数据的详细步骤。首先,通过命令行安装Typesense并配置相关参数,如API密钥和数据目录。接着,安装必要的npm包,并在Hexo博客中配置搜索功能,指定存储搜索数据的JSON文件路径。然后,编写了一个同步脚本,用于读取XML文件、解析数据、检查或创建集合以及导入数据到Typesense。最后,在博客底部添加了InstantSearch和Typesense的JavaScript库,并根据实际情况修改了配置。
Adguard和Openclash共存 这篇文章介绍了如何在已经安装了 OpenWrt 系统并配置好 OpenClash 和 AdguardHome 的情况下,实现这两者的共存。首先简要说明了 AdguardHome 和 OpenClash 的原理,它们都是通过劫持 DNS 来达到特定目的。然后分别介绍了两种配置方式:一种是在 AdguardHome 中将上游 DNS 服务器设置为 127.0.0.1:7874,这种方式相对简单;另一种是将 OpenClash 中的 DNS 指向 AdguardHome,但可能存在拦截失败的情况。
在Openwrt上安装AdguardHome 这篇文章介绍了在OpenWrt上安装AdguardHome的过程。首先,作者提到由于luci-app-adguardhome软件源的问题,选择了其他途径获取软件包并进行安装。接着,详细说明了安装步骤,包括下载、上传和运行安装命令。在配置部分,作者强调了更新核心版本的重要性,并提供了配置AdguardHome的具体步骤,如关闭路由器自带DNS/DHCP服务器,并建议设置AdguardHome的DHCP服务器。最后,作者提醒用户在完成配置后点击“保存并应用”,并通过AdGuardHome Web界面进行验证。
在Openwrt中安装OpenClash 这篇文章详细介绍了在OpenWrt系统中安装OpenClash的过程。作者通过Web管理页面和终端命令两种方式进行了安装,并强调了推荐启用Smart内核。安装完成后,作者提到了配置步骤,包括下载内核和导入配置文件,最后表达了对于zashboard界面简洁美观的个人喜好。整篇文章内容连贯,条理清晰,为读者提供了完整的安装指南。
搭建Owncloud并集成Onlyoffice 这篇文章详细介绍了如何搭建Owncloud网盘服务并集成Onlyoffice文档编辑器。首先,作者描述了搭建过程中的基本步骤,包括安装网盘和进行系统调优,其中强调了Redis缓存配置和Cron任务设置的重要性。接着,作者提到了在1panel应用商店安装Onlyoffice的过程,并说明了如何将其反向代理至个人域名。最后,文章指导用户在Owncloud中搜索并安装Onlyoffice插件,确保了整个集成过程的顺利完成。
为1Panel添加自己想要的应用 这篇文章详细介绍了如何为1Panel添加自定义应用的过程,包括预准备工作、创建文件和配置应用声明文件等步骤。首先,作者强调了Fork仓库和创建新分支的重要性。接着,文章逐步讲解了如何在应用目录下创建所需的文件和子目录,如halo、logo.png、data.yml、README.md等。特别详细地说明了应用声明文件data.yml的构成,包括基本信息、应用标签、类型等关键配置。此外,还解释了关于端口字段和type字段的具体使用方法,提供了实际安装时填写form表单的示例。整个过程不仅清晰易懂,而且为开发者提供了一套完整的操作指南,有助于他们更好地理解和实施应用添加到1Panel的过程。
Ctrl + 右键:浏览器原生菜单 +
\ No newline at end of file diff --git a/cc/index.html b/cc/index.html new file mode 100644 index 0000000..878949a --- /dev/null +++ b/cc/index.html @@ -0,0 +1,384 @@ + 版权协议 | Bi's Blog

Bi's Blog

版权协议

关于本站原创内容的转载、引用和使用方式。

+除特别说明外,本站原创文章采用 + +CC BY-NC-SA 4.0 + +协议发布。转载或引用时,请保留原文链接并注明来源。 +

你可以做什么

  • 在非商业场景下分享、转载本站原创文章。
  • 在文章、笔记或资料中引用少量内容作为参考。
  • 基于内容进行讨论、评论或提出修改建议。

需要遵守什么

  • 注明作者和原文链接,建议使用可点击的完整 URL。
  • 不得将本站原创内容用于广告、付费阅读、商业课程等商业用途。
  • 改编、整理或二次发布时,应继续使用相同或兼容的共享协议。

例外情况

+第三方主题、插件、外部图片或引用资料遵循其原作者的授权。网站源码中由本人编写的样式与脚本,如无额外说明,按仓库内声明为准。 +

Ctrl + 右键:浏览器原生菜单 +
\ No newline at end of file diff --git a/cookie/index.html b/cookie/index.html new file mode 100644 index 0000000..2c2fffa --- /dev/null +++ b/cookie/index.html @@ -0,0 +1,383 @@ + Cookies | Bi's Blog

Bi's Blog

Cookies

说明本站如何使用 Cookie 与浏览器本地存储。

+本站会使用少量 Cookie 或 LocalStorage 来保存主题偏好、改善访问体验,并辅助完成评论、防滥用和统计分析等功能。 + 本页面应与 隐私政策 一起阅读。 +

什么是 Cookies

+Cookies 是网站保存在浏览器中的小型文本数据。它可以帮助网站识别同一浏览器、记住你的偏好,或让某些功能保持可用。 +

本站使用目的

类型 用途
偏好设置 保存深色/浅色主题等本地偏好。
安全与防滥用 辅助识别异常访问、恶意请求和垃圾评论。
评论服务 评论系统可能会保存昵称、邮箱、头像等你主动填写的信息。
访问分析 了解页面访问情况,用于优化文章和站点性能。

如何管理

+你可以随时在浏览器设置中清除或禁用 Cookie 与站点数据。禁用后,评论、主题偏好、统计等功能可能无法按预期工作,但不影响阅读文章。 +

联系

如果你对 Cookie 使用方式有疑问,可以发送邮件至 bishsh2006@gmail.com

Ctrl + 右键:浏览器原生菜单 +
\ No newline at end of file diff --git a/go/index.html b/go/index.html new file mode 100644 index 0000000..bd15673 --- /dev/null +++ b/go/index.html @@ -0,0 +1,501 @@ + 外链跳转 | Bi's Blog

外部链接

正在检查目标链接

请稍候,正在读取跳转地址。

Ctrl + 右键:浏览器原生菜单 +
\ No newline at end of file diff --git a/images/Bi.ico b/images/Bi.ico new file mode 100644 index 0000000000000000000000000000000000000000..6d3a9bc98a0ec81772f21fb6cf8baa4c690a543d GIT binary patch literal 36534 zcmeI5eT)^=8OCRYN!*- zfeh^4ZH=a z)~>ZWR8Am>QIY^>W070oU zdgQ14P0(~KQ{ed&cwPg~X7uY~8EKJ|s;qC%(j+_-oXLt`q7^&zW0t{=89tlg=;R#9yQR4fXXs&g)GA4|difS}zb+DxCXo zT_}`CzS{54llLhZwlNwj{gnem5iDZEzo{i36TZl`yKKR^1Y9k_8k;z3=!#BP=>r~jwSFO zsJq+x5a}0_UdM&apzqZ``qh0<+~&>BeCT}ay^aL&ZgXw_Hp)8Stauln;#K_m`9@kN zn4k1ZYbFl6iSTYPJoJ#WzHS$GKS2EWzeN0WlRqfTig%SSUg-nB<%b2V`;czGv}WS4 znJDkVqP9=pvm4ufysNK&Jgm)U$-8((_SN!8pLo4|And43YxWqsiSsT@n)k!@tHSLg zr^BAVWy!mE6-M#w<&*Yt6Y+<=aY^aeO@(*i!}c=y<0J3k(;fAE$dY##tL9yXtvdtv zeBw&=aK=r;cAC83hW!B_-c=WM=LECnUHpP+*qSqrpG6YgXJP6IyQ%T6IX~>1y-v05 zeyzda7iP`7_(h&ISoHnFaoHRv9b!8*-s^CuIw%zH;??EZnXhr@i~Ex1+t^E!cXy4w z)*sil^+NK_c(RZ0){l!D`W@|6JZN}II!u#yuusPRc|YFqX=OcM>Rc;{%me$CEuO`< z(g=S5?wx-5l88&0_dBrvo)7Q3rxn5*WTtwg#p~! zd!ER%CF7GfOoMl9b|P;gew@F9Ki~CY@YD0)T|9$%ukaAQgrqWdckL(E&oCAk5B7E7 zeHZcLTyrx!!scd#D-YhqGxCzl%iH)(~$C-M768PfTg(SzjLQ-OD#V=GETg@>_eJ`kd988*Ze{qui(F%zK~NPta=5o8bI*#BVlbBZ}^)qzD;`8yn}bx^Ht#>uBFx!fcIB^ywiWaAU+MZ^}?)q z*EmKzdodB$QtM~HKM(O+r}rP?r+R%WiVm);*3a;Lbv^MdvtA6WL4CaX{igTGBwbhV z+u`y%Y`vJuAztrLY>D-e;0$W-S`U0z(!4cmPrM>m*3NkCX}v0#3%?#%nDN24ef=Rf1z{~?BJZy34`*x1P`6rafb^~$6F&vJiLL%eIx9{7I&-|q%+9%ylZX%JU_+GD?xm_@r4`9z=@}P^9-0 z)TL-ed2Pm(L-% zni`MNSKN#J!``_^Kc4;Kl6wD4h<{hLHS*VsQ~UlWel65E-Vb-wxDZ^id2if_qpxw;i>j}Rlm2=6{k$j)BAgmh_^WBd(Yu}S^Grw+Xa)o@gqUk zy%;?G82^qVujAt`IQwcG-#BjyHuT=X#MYXENAEUxI*EFW<5SVk5ijtg_roVT$0EP6 zso($ETyzfdzz64gFZ|Xt%BD^~itSTemy6S|->Np@MDK$?1wS87%Li;vq>O9t!*&U# z4eFjW)%RhWy43p?C`;c%cbmA;7|MU~5cd9wB)QRh{;BIx{d))UUpyqqYZP1bIodO# z`?^u}K6rh<$#3}|g{L&~P`1|1y@qT-Z~9U9?Ilz$q}$zS=Ml-;;?Jip(h_rp(# zYp2NP!S`hN*8AOe;A3jzmN*=MYd&%kY_sB=U(|ExSM*#&zt#7{qGF^id>x#6KgNjq zeLnp8T2VPSxHRVhPOZ}!5x+-CTN-P8YlYB#H_TJ;->YX{t$>+6QtwjkMOyCnS8Msj zhw1b^`W@dr_|;XLUW8+}57#s3qqLF8Yv_xBJp_ZEl}|&ShkMPh747%6wSQ+CK16;7 z9pZ1{lIbry;QayoyhuCC^Y`R0f?*l$yS;EEr3gsleqGmT50Jnd3@JZB>-(RaY1_VjDN@i|264$is9 zdzG$y$ZVbG?wc!Ye{BzaDpGloqyk4@ew{VJ)hpv{yUo@6J8k<+shVen;>e`@%4@H6 z^h&4ne>r-;RJ&YK9%A^Aihjt^?RM$TsXDo054Kn1|B7BIRrLXMcEUNIGWvk4S4tK8 ztg8=pR*Xs8Zm-zK+<1F?#olD}O%=*>KZh!Vokl-f87vw7a>W#D+XEF-EFM(er$Ja_ z>a7$Jk|I!L;9fQ;D4huG3m)XJt^DYv zA>HB1#M?vhLwVY4tJB28$rU?o_8Et_Du({5zTM%<(W^X^9Xv+2`MkJEdCKFYKYVOR zce!=qw>kXxJNl&aj!j2b9f6^$Q>S2?fEiP#69&hjSLD literal 0 HcmV?d00001 diff --git a/images/apple-touch-icon.png b/images/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..54af06e6aa95bff7d1509eb30410c2795e3d4758 GIT binary patch literal 2660 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

Ejp%4YTqJl^v^ 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 p+CbB39`Fi~(%0;E%$L#vzKY;Vl))xkM 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]swAH&4o9g9!ZLB%%%+3?U= z+XBib4UI+ieW(`sv(DR6L`^Nqr;T0RX&KLzUqd)%fkT~iDV?@QxBX2XGxt^1V62W^ zICd9UxOK`5X^9f|KcfI1yHk*EC~((P@7+BY^NS|;qfKRhIp4~5H#s{Uf( zpdA$qC3RjX&LP?4xsUyw{BH)BdJh9xmQvySlDIVIb^)Kh5r?)#yy}4vxOZPs|4tP1 zH0`<$*U=X`)3Ih$L+Rw0s{D9nn$>id02gF=k6ab=QFQ&#a!iX=>;KL~&huK#NfLHg zEtW{yd)KKcJ!Oq5TQz1WDclYqK)j``XxKWohhh&m+er>aq5w=fR2Uus1|e%V%Jd>xLpboir6Bd zwnS2MGdXT=^r33=hXz(3aUD=G4IzFHWpMa|wT(jw${}?_`>=V-!6CH!glWvfqUjFS zfYLM=q!F(x=_#7*T}Y)?lNalK(#F_E{_3vK>YbWv9coq5;mY!qdhBkoG}{%9ZFRTw zaVvta4f)f_A7TLjl&EGQe|OVdKuh9$IEU}^=AFW78CzlvsiFL)%0RN0CdyuY)#?P9I1685)8bf^@Uf%h%F|$q7~C4-R;5C0 zy{C=S7fzI0sykS}y3Bb>_E-70!twV3^SeYBS^H3ePIMz%%_`bQfuCF6Wg&!|4!(8U zFmMrVAPjHRRUWmE9VvtMg6iI0B+;!X!lVZxo!xNb#z>e+EvA(#;y<{1N|-Y;y5H$8 zl$2Ni4a{KTsV@7)3UJ3NER;VhD^s;o)kGlZn+@^ zd0%;6lid-TSa^d+?pgISre}(kxn|fqRqA!aroQ0dltIt^HDf2TGny>3Q++3`UZiM3 z5w{t^v?E@6yYGND__PtMDIn)**^cCA>Pq6Wn4o+(vufucXNvg3t^09)j+qyEmkahH zikNG2Y1;~0)?b%z_V&I2U7F^}o+so#)#q&GY30TY($UH$j>ul(AJjs0QqhAh)!CdpMH4PNW9u1`zKCvW2|-FvA?rpg3US8S5H4(si=6hx zlZh@02_h9_R$)NM(8)Q>ObCS4BW>#d|6=vG{Q>Z;a?bp@MP+Z8ikiNO#o%-*PBj^u z;$(%U`TiJ@$SaMw0Ijh6Dom->hrxTEDGWJ#xRkn$bjx_vum;JvFON#D9R@u2<1?6a zChxr&btvmZ2FC-~zQG@5`wLHOtCvztg3K`!7BdOTlRo!Wu%nx5Ui(eq(fw;&+X6n^ z6*rUrr3Tm*!YW%~IPjNSJLVfhC(qcls$RKxP{u0+(qBEnNSVyyaO1(OGiA$~>!uoa z;lT4y?s=97Uu^(GDpF@i{;s$SsNn8~C5B#sN>i({H&+feISs`f9<9r(L(9FX1)W%lKULy^%Hiw|5jO0|vyzjbwW5Tt z0dKzS(794kM*4$?{J*hqNwwgT%-&q#s6Vl~mijmta}Cns%nupEDnfxFMSRGlD_zYw zn%-RqxZ0(KT(pOM#7(q}o6ON$<>S3uLt|52Rz!+S$tn#G&a6GH1KH+S16$&72Gfoj zk@!om2LIa1Kyq}g^#kF+AtCs@>jl|{sn~ik0sP$%WG7>Y)ZCkck^qL&Y8zfADU^eLAox-DhZ& zX!A-lwP;TU(6S9Jmf#d9bIohr}8CbTHp zj}u$uwg6h57Y>chf3yfis{7J!R~?WhPOTNmrYpZ_@2PiI0JQk?>%* za5{aY^4D}?i5R-uCgJ`WsfB>Mk}f-_!CwJjXsyna)K=wTkQRPseaUlCoNd^h1CycoR2l{>GK3Kbz}VOQ@}RVSV|}Fm;rCF3TSWoTj?%eXiC=E`wEoD?G~gZ3k#^cknc}yF6&_Yi;ALSC=H1WyeM zeT!Mz6QwcsSrw=XK=X1NB(N-$nHK@_&PlGoJONO?MZGZK-pp~N`qIt(?SFvy!Xsg2 zY*6GIxOh*_7ifDsPviXZ`oS_^9%MOOpIUEVPiB(68_w>0 zA=WkY7`KSHvm|`Vr#mK62paeAzt@pC4w`T`_()ifqa&Mj9eK@9|4ZiST(Z5z(1W)I z_U)lRUBRe!erJh<2VDsPg7L`%M$ZjLV7ceG-}+fj23z3vN)uIwvC)5R`WjD$-&@60 zvKrrNdV%~qmoz;4jXr;m!Ts_D+`WxbgdzEY9j)vRw7<`D={1;ofS@gZq48>h;GNH$ zoR%XYP!%`E>oTn1G*U_iX85tLG1*;-#2f@{Y$wl-%cF%8(AHEp575*--q^H{$528l zplX8T$ZAS`@gFE!?uO^^FMjKHluDEGzeORE&N>PLk>8VJ*K(Rfy&aZnv{As@JYSzI zW8s;&-3r?d_?=9aMlr3cJ8k^x$@G*=i9F_xk8?8@e$ggd_Um9V<;^5El0bM=QpTxT z2xq?StcLs8ikkH?nAICmTbE*jg9jcwY+1w)N&n)aCz^Z->bFWQp!cuSq-A*cuWZ$~ zF;9B8!o|C^P@s>?`&<|GbZO)1{oD=Lp|{*{&(T_eg2QPawD!=vl7*jbO^#bXU2yKV zDkh2Fz=23HVh3{5Gv3*(^Lo9Z7!;hG$~9Nj6?^Ge zBf*3ce>`d1o|f&knc+|&W{>j0ULwS^xod;5evRaGI7Xv~*|Y*`4qTo=tNvqITxnWQ zJMp0f0y5w<1*Iw@lU&XIGP7ab_5((1+)KSan^p&}a_uRu%TT%LQd)}PkxWC^ijLa=!|i+4yoYGCiyc&}AjuQ;zxgf$h?( zG;W}h!yAE)EturHWtUD>;bNoW#^c!zu{cSZEC2cWSW9F=g>9?S14lo%sKkwH;* zz!2T6_pQ?g7g8$~u}rkD8#~k;)W*ixizO_DGfs<@$TxgO-+2_<1F=-he-DSd!3H?9 z(o4%9Ft>3gSa2q>_++AilnH6L1%AQQq&j`>Hk!dVX7pdQeOkcZ8`me+D0sVDL(-=g z*5Uku_y{uKD&$i*jL-zT(IPt}sogwhOYkk8udCx*JqH8OjE%Z5F>dH>GPt^nG$~hC zY&c20+g?Ff3f+MHr~$5JopL%|3p5Aa0x;{+=46hz38)JvLvZPT%iO%HI%6K}dufwN zl#5g+WxXXgw~f!tQK8*wosR%f*yR1$r&`OhjUEpX%8a8$XhH7(P)KlmteKz+RYZuj9W8^>n8K4S)5J>Nd6UACaaU#rgY zRa>6~#Yt_%tV9-4CEs)U(;LA_lHe04uDA`m(NyCs_pynAGm2V0x1n*0Ik;rn?OMOi11-k+N3iP9+a(36@PEO%8U(3ey_meKV1M8g)d6-Sm@llM>@ z4%gKBm70~-X5mn85C9}wv1`3SNgI;sqM&*U#I(~tFI|M>ASf4lz0l{M6m{~t~Dx5g|=lCr}J3}bdwE1dGO9kFwKCYVBrX^PoL#3B(Ua-tqR1%OH zIaHey#?O)o?`G!rM!Pi7UyammlG9E;o60c@N;_N0Yam)(Hgi{9=(u@bM1lC~CYFQf z7u{Z=L_9-=9LHa%Nf&TXDK&~3a+41u%=(8#%GF4!e%lGHBeclHNHJ zl(x9w%6I)_VF(xez{(9VOO9>)jTy`qvr^N97AM$M8a%f7>JH9pbWx={P~vg|7>EBA z3WO^3tX4>RcYdjn{n{QcQX>vefZXj|b)t*et;bI*&{W^;q?->*cu4ukV#EYz$za%3 zKUp`O%cUFsv5)b1lYA1~qWwCY*Joh6e`{s~NLd_=x5*}NHN(`+77h$B`wUy=Ma13F zzL%$^jsaT_y%CP)w_pH5b4ES{Bw}d`(ul@;8LJw$Da*9kJrcv#F6bHw7dbhfIWzvx z%9vr@4{kxml5ST?65A2$FOXi$S$|db_VE?9Cu%|ui)a`vawwhV z9Acl-_Xv5p5%4>sCg691C<_-wvjcPXl!)qpwrNty_CROVxuB$MkP|`&gurnjAZkN_P5JBEDr$6990E*8#x$fj z1i5nS{)F)0hIMAP(uSB8IcXG~tqhqRk+bcsXe>VVs%iBLOQ-m3}PN zq-{~RP~m~Yr(@rM&)VsdoY`!N?6+GI)S+9-3#zR9D93f&r(vFqckfMPJLN~`rUkyX zti4nYc)r3FeibcAS4K-w>gLaXTVJ?V`&G}M`J(LCE^8KUuX_=%?*;9oeX}oyi`dns z;`ba}V>DwEw~8OOEIXJlVs-6(v0tjLNi}K%NrKKYhr4T(1QX2!H)J@^#5M^t;{1?LnJ2vs1J)6B-14P;m8w*;E5_$1&Y&hC5yC1X7317jU z8nchLY+qQ>&9)u#E30&h@MwooeB%$KMe7N~Nq;F(=OZ7mcYE3tq$01Y+#iB&Oh_yZ zll`4@Ge}Yv0Q@32T`X>$)pXJzZj6*dB)ro^lbil~Ey1nLcy^#6^t_)PM9;u9fj2)KG`H1I#bjt3;}gLK8;53-xEG+f%*A#zWibg)w|EN7CAOV8@95GxFYn21@u z?>cA7MO#=EQL3?_rV&j~!%_=0*T$Pq|uw?Ih6HTj#3gmoy<_?sUp z*5k*Be{>rwMTe_sk>OY_ENv0{?GwxK@MT|28{vEBzDJd{7DXYsHG#0QQ8HAvA=FmX zv?k^vrmL0dX;-}`E@)ac6=H1SB5Yr$=s6fX2S+8Xdb}&tM$SC2m@vr`w9u>~Ltb*Y z*t|RDvnw$NTsa3fEvl@PboPr*sEw#eN{Gg}=hM6VF2Gvj-vl&UoO|U|lC*~O)!)m2 zY+{Po5yysyMzT|&yRUM~p=Oiro_1*uXe&v-9@CQjnN$Wj<9%FX{2pT02x;w3$Qsrg z$9fhZArw0>&v6qTleZSA0Ju;@lze%cdCYg#ln>()!KYfUR<1KJwSNhzBZy0W}&C=Ciy+ZKj@)jCN}iv5K3;E-c03JwhKFMMH&D zj`5VySnPLMkmU*%DJx=dn6MO}T4a3W<4vY#`Nd31pp!6g=miOawn1?e*C#EscQp-J zGPbFVL`B&0cd#Z$?+IweIhO=c7BA>U!Cbwe22?i`jo{=P$T^-vkr2ZOUFl*0m$48FDj^(+GUFImJ}dpOfM!PgD}~YtT_)j7fDu;~>R5}BO22u45_E%e z8#3vjXYlwAPB2?v<>Kzq^X4Va?4sB9{U9yE@QMXs#sT`V+{eqDV_lRev+cB8I0pg1 z?Tf3o?`fkxMg56TswOl40NWX_BuWI)Z8dc@e`!Mbo2VMK9pkAXUc~Ulo0cK!NCIy( z^jWM^F2-X^UB9rH$=OKz%WH~kG+x!T1VaO>IM~L%R5b~!0{f0siT0N(hsOPxL}ub~ zS6xC3zK292fjYhJrVLpTlc76^Y@AK$0_ryo;#aqy2|ixnv$elY|j(SlXM1eeI)daq4BmgKv!xW z(-HI{lq>%LCKNWWO*l6S_`wXxP4}2tbt+S@b%$519iVBw^@O>G`5CCntvv*6tOCrq zKy$c0bVRItT52>B4T?<=oZC|uI!YTg^(5&;mZgBjG{XjMryao@Rx zA#({E%JKm;LfnB6IfEPz00I({))4b*mkH(!F!Bahl9u7VV4qaSkd}cB0Rv>31uXF& zc+DwdSh*H6^0b&sQo)XyqO~x9q!&VIHcaeH)wrIxtGh*WLTFP9 zWH61Tj!f<85rC!CLrG|N{S82I|$L5WPg@r=?wkGViOYY6kLABWNz`BtR@p00Td39 z4rlax*o1ijgl{To?=COA1WOjad+7+}aCVF#n%Y{5FjnFXR0PQ~^yxo*Oik$!8dD15 z3o;*3ZKI<{b@wwFz(XL{9NC7fz#aL2JA%5hd4}| zgV4Yn5sZ&+^DUPPN$fhtOlFj`OpHrr+t>+@3X&GR%)}j5$Ru1>Lb#N%F-im@>|s%* zn6y$ZTSU{)K}EKRPgsGp%xUvo%x%z^4?`{~dUmO)>00Vo*zYuD)LMj4)p0&R!r+1k zhq#J+!TX~3FcD#dF`JLevDvCNnUV9B17-@>_Ywa9aD)xdFQio$U_}u}T8o|Vkt!Tt zhH%O%g2K#)Kq)X}eO0F7(X$%GA%`>RL?wxwC*Zs`y!8A*9+a85%zSN}VAp&5M$MhhCr2f^T^MjSmkg%2 zu~B>hLd|tD_S0OfLLvjJ`K5t0Zsb?ftPRjy1RDTN`UnNxPZH>zy^J#=YCZuz+D+We zZ0Cn`6FaSXT1(udH&kZIRZ2@1SU zmOAt>?<|j~fG9e?@GX*hn7ZiuL(m@4bl5zBUc00WdQ=KET)ahr+-+0xz`0rFk_Ty} zw9e*T)S_Vqdce5;Kh5c>R%W)bC=aZq+EQ7aXux)13Y|+}_K3us+%_z~VWq#wiIU%k z%cS;9yMN5$cy03HU_JVXaT3)WipbD41l}!>Y3(&+h@$((yI~wGWlOE*MsnFYOhpJ&6rr}5!rGV)a+P4l z87TxS>da_B9DxNw#)QpVjgNRZT%{CiXzz$*#j|&qvE%%~ZfE7#hM_N|wgw_(AxWuO zeZh&R>jC9$7Oa_#pG%sk!%+)s+GGThWeWl>OSz{t#c`{oP$(NPjzqy#E0u`E)S(D6 z=G(v$grPlGEb>hrp#icX9JhigO{Fi_%3GQ-^*|fb8Egm}9<~zLvPQ_e2obH|N1!0N z;t*xyg6*OKu&8dPx2Z;0p19{A1ElDtX*4H>EXFK%jLj)w*BUB77NKBROE77g&eOt6 zXL(qaEPW%S^u|OB2(`Ks@{M)Yf1E z06AQ)R6OPwe3kJu%Yjy3JAoPlU`7oB;`+^Ej1LYHVNs@b5UAM3Q*##n{Q-w|*9`?S+!bz+V{`Qqrd}WrhNBe#wVIT5D;;NhjM!A)st~7BZX>;c zG6w`PsOW)a#fy34++E9bd_7*xQ(LvC?Y2igG9~6 zFwuH@v78s+7!Eu&mx^hdjp7b$?pn;@UxOHM;bqHzHOI|-PH#p9{{SuanDKG!n6hg{ zZJJjU{{VPZ_&^n?1?}~jTk$cGk?6T3)Ls`OWoFdOeIwiIW?g;`Tga!}Pe1_eDjS4N z?iPInbc&P$(K3$W;*-*>|LbiXjDt^LPKV9a)1HHpdsive~qQKyYYy+?m zma)~LVXNL)H&BZQxRr>*uHhafuFw=DM^;xqElVVKCKY4<021I_w=LFd!eG>ExY}$% zg2h3k&q*;@zSk^tx`?Vw4Ca=j1)$q|8NzWkPCp6%0CG&|w}^~`>DE3H1L{&c80yx> zE=Qxh#@i|0Rj#2EBtsiril|Gqh|85!?WoioJLtv**IB8Rm#B`;;f*QkAguz5)MsF; zbVS9_DZb>vs+3rPte~h*^BXXR5uJf*TN~F&TPr|QtZsrFpF9hTMF^$05yr}6sJE+& zmll_+5Flb!W_BWo5t5nqfsufODTF4d87MER6SKggsxUM<7zv>tT@$pzKvtYF$TXee zqv@zmr&t0msts_K0--uz7x#+XC`DQ`3VNJ+p(@3CMYb&gLMmu_nsQy(f{PemC0#5D zd)%^acI2c}#kf%lsoED(3cwbsBZ~rkCY90*+}sk+E#<7IGMXB=K!l5w+^loHL_;r; zCy`lZ{Ff?R0Kghz%7Cv~;TxBZq9CI@H7X&pOg*P}meW#8a?@M_g9OlE#o(^(3=XNQMVz>ZAT&?;$zRBW{dB@Fe0%=K0b5Mn4%{;cQTYMWltobfb&haHjC7q z;OlVf+-()>Od4jE+GIREVjIpQD;rZYJ82>!3duNp4XD&bK7kp9100UAiMxzuRyzo9 z)f7rF!Q4d=7x|#FixSVX8yR)@4=YNG>H z$;jy#^?)B#P<<;3?KY@95=h=JbG$psQf?xyv%DouZ5{THRZ;cZ?G=SUgG#|wuA-|@ zYca}Q)LdJ+xR~NbTO`bPXRKN*4Alu0cQqP_s1Zz|2{73!7@F4~b+Sxlv#4zz@VjHcsixu+OnNGG6- z$X4t_UP|D2OZ}&lI#V5oNx)*fykoJhnAT)|5RM5K20H%cK76eCSg|LPcn6Q;?KoBc z067n^kHur-GSEzEgp6o9D3_jIa%N%0VZfORsR|~4;q;;*# zV6gMHl)`YgTE!o<(l-);1GL*vZMwm;Zb26d3bH%EsvR6X%7dudT7d{aI*}PNe43fMM&DY~ z4``%rOvR^BH*qeNca&K1T>iaYg#g#27)w!@bo){#GqY$k;1A}E<%V1ipl?DtaHxmU1oYTDcY^(PN75i=v)^zc z8yL2u9l;uc+3sdla#wNE#K;Numb9ko6buxt)$bXRHy>J#@99e$?FN&yE!wVnO$#?2 zO}L;I=1&Y(!G*#r7$6$zVO*yh4Mwl+A3<$(pzSF(nxCNqye)lh;|#6<*o%*&ed~Fa zwDu-8O~2wfv2+H&M@FPl54>*#v9fA8Rn{oRvO?U*D^xp<#yYs{782A_-Bj4?Wu9cidOk+h<;t-LeSJX_WAO%Q_Ksc87nSvI&V0um=Q24l)BK<|q4f^8C zg^zXh37dy)crpj}BV!*P6PQ1!Jygk*sL`k166If{Sf`{z*i2dS41};EV9)c5GX^`Q zm<1gIVBVHtb)jOrgE47PK{YU{kc(FeIX)mOGLmYDt*U3Ss~rK{!T<&+QV;-Rl`}pz zDpux7qP0=k!MdIr19nVQKDCE4+H{Jya3UHznc}HZA#96|?gV;M9Ok34#dZj$3^?_Z z8$GhED4B}vn=E}kq>ZOhnMtiSCPv70E}5mRPU2gzXztt0Ogir$9$HaiBB%;?t;9OM zkYuwQ23Q{xd(X+z#*A#44*ekusrm_TNeCN4Y5*-wnSXdgOB+Qgpi5J{P~rOBtq{r?F+5W(L-+%?kg-UVq`F?(+EP+!DKL<#PHJU1{VQd zN~<*~o0v<$iwO|wls*>H%ph~y%TU9}!w7~SEe=)XB)}H=4qI}+CB-X73fgH|srQvA z@~xnqge)qf7`5t{k#|UnC?qSeSeXTwfS9QQSg2gth5Jm7^g2fo*lL+5SfMZ!*6y=| z;Mk!7rwypGC=#-hj6&p=F`4S)iIXG7u$n;EHNn)7Gvcf4_5QV5)lh;W8Jp;7Ds1JCdPLl~}?Hx%*ni8ta zR`t1lL?Ga!jU;v1_v!D|KFa32{i*(j&*bBJF5M@%8*ouvMnV=x_m$lG| zR6>-P+=fziF$kjHc*xY2z|AeB?8B^guz-<$W2m-9J+3x86h+NzMSlMPc<0awEC;lF zSXWvReF%&Jgd;wh`k19`RAzeK`%EkNIKzs|n$*`lQS-Ga0G@(4#?D+?nq}^=s=Xb+ z>NyY}OI3=TMm^1l^NecR`ho>8E^uXUV^(%!uT_#*Ew~chOjylIR3(6;*pL5 z-k!RIALc6|9m>=Vg>UwNVgvoEFNn?VDk~`)ZfwO06l@1bhA7^mUC^NxA?*_HX^0KL zn8!+jDd|%Xa)PycLG*wSC`EBs7NR^<01nV)aAL1W1D$LlHqie7BUF0%#9Vd(ovdvT zrI#B_L3Z9_DjO=N_?!-3PK`fl!s2CmF3a7f9IQ$ABv#ck>KM@f0Di(`6wc%O2)?2i zUG#mUrJRUpcN>X{V@sIM>OfC&ViVL+6A`g7may?p6`%`1Xqk%lm&LJ$3ypms zuSC+`q>IH;RVvKKIaI`aF&MdEHtr@S`MShZ(?THv#Y{w1%d)*CKBSh)G67LB4?-D_ zGFuJjgOkJ&SJeUaF4G>X9ZWXI-?XDl&{!y8a8~w=8qY|fjl-&zQQmJTN^Vq@4yZy^ z%`8cP?jZ}zlVV!$DD4Y&gc>3-I^jYlJi9c+S78*SZODwGh?-9#(uH%e48B`=EW+#p z!;ZBGuZGlb1}s+MBB>%VXjfwZ$8yPq&be!_gykf{jY}Qgj4EMz3j(I{no)xhjK+kq zVh;-7U_{c~h%h=?fNeAz26ku|)IgUQ<=9*b0bxC+LeYgGg65b@N=lxoW)LVwBCdX5 zh`7a7z!3Yx;~hf5njcV%asf3V4?H1Im4{UbYHa{x1lIL7s07|nm+)-z9QKqYnNr}m z3>@xPlzE9ffaOUEJdc|BY7=M{Qp%t}2|hsHFToIV!0!5nwq1Qm{FWzjRe`phTP#KvZV2JbMhQY=ghFd+2R#pLnc zIqqY$bI3si5PLxf=`8ZG@hi>lCvnXCc|jYAwX9&&VGal~v02^{K{I)6MC}m-K=xvl z(vajgG_LbrJyO!tZ!!&<@3deni)aelJxmI=`6mJn>L(19pbDHD4uW9CWmH0$K~;>~ zsi~hJrf67_%?OLsE^)g1MFIE1d~`N`@X) zh=cDc=F-8Q5aQq4hiPPnR0LJ@^3ehS+r(iM3lt!$)pI(y(Surh zhKyF(NR~D;+=+|2h>9oxCLwzC&Jn>!3dXyv#)P&kXq$G9>{OxC3KlBjzOkQeJCPZb z6Bl8$OC)V_hrA_r5g1*8-L7Kc!;c(#zG{fArCVv%w;~WNBc-t>{lsU+$*XnPMaN?z zvmd+y$YZ3%U?@=$nTJwlELd@3&I(YrEBw<)X!=xjxW(Gf%spRN zP9i0^gyV7nut(Z3O=JaA8Hoeh%wEkOA_ZhpyLPLo;;||M11Y{^2g*9a)O+0l6NbQY zIQ-}NRy$-RiL)ETT7;%AK{rBI9h7?*Aj6TtYSbdI>&Oj-R5;$Y6%xA4L>IaW@B-w zHXVqFdx?)b1CnOItTARKKWUt5C0etnNbK<-1nKkd8v?ed1lK; zuCpZ(sP7*bBJMj9Nsk>G!HpW~;-N7~n8Vj&6m)5^d$BQQvIqoE8ifX!mmc65pNPxo z!{`%?*GY&03h?)vDxov*z7a1!7+I$SiF_;wEB8zxiAU=&>mscM5jQ}a%Sbd01E+Xh3lkWUZfQ=i40Iz5VBB(T zj5n$)E%Y*>JdJV#kR4zKYCCcfR77k9_lsuWJ1CYlIDiehO zL7}{2_R@^?aswU4c9zs(aZ4Ruqt>}wJgvt`>VTRi1D?!a`*w|z5CD|Y#L^+Tw4*F? zrt|IaDs3)Tn&N>_avublQFOor-q+cR8?wLxs?+$bb#v^|^@- z=3-rxK)nQWGG5GPL%qf@m}3}uZvcV_ApJe_)$g(hTQ{HA~qr3f&Q{E%W4o{ zJtj3Y1^e7ZBC0wR&@2;15}{234)YSR3d}AH;hmijC;2l8BzmT+wxS_+3cIm1B5-^_ z+&iaVYlk*lvqPYV9$?JgiHP72flJjJ2c^yEDPkis>0w*)IPm4LG&m5|HsUEwByD@1 z@HnIqiw?JSrco+;8ZoirOo5fvucRXDY200i`ho9rCTIN7W3^2x7z1~_XX5a1*f?ZF z3>2EPKl~$~{{Xiz)X>0#87PA?EX#MQHc`1Z-hE7Ac1bm~V`9$n?C&*MBH?08xZ?|A z>`j<->E+(}4J1W^qQOvdxu6jN$3=-g(#Kv#{rNEzNv=jPj+p}}U7>u1`fqe2wX5zJ zi#_EvT>^T?!$^d(`DDmIgS zZdL2C5Ch)&Lj?^tedASBCLb}5JIsQG$2iI~$Qr>jI&^4wkHm3f;#+B%3*q6yq6x<{ z6Req={{S~57=lD~y2CY4W8vzZ?P$~r-e1a1M1VBL(QK+vLIqeZ31(^%gb%!R6;Ok`q2&t+n0V{Y^%}M08nnbY( zGN*n-uJ9s3sFN19l`W>DHq!_fEw_rB#W^g98Fmp#^uyu$p`y{7CENi?CI&4ns%eyE z!g=orGP&*L+nuzfn1WJ80xTgwF?0eU$Fi6o)Oy9&L`6lI+vk|EvA3}hou>@8S^ZNDSc{7t zhuqA$Y~IoFJq^TW*g`hdEWpdxctTXZrSOP(?D&z40mqa`JZ67V~g;(ohWc)N} z#P}Ol-HpM?ssPQcGm3>v}Q6Jj%DBNzk- z=GFfI#7zdvYwRi$1#(+D%~<3r+?eQ>jI!5oVr2n1rQiKreSf&`9+i-cxX1IaPw(v( zvVs!Gv8-Ijiq#Y@+s%Mm*LxXHYp|{0Q+}a+%)^k3uF4oGggxp8%qVtiA4%f3q*e4; zk#gvxa3@~g;$mVc5|^#0xrJCVs!;D={;0?CEL5OVgLD4?!WsVn`)TMuXi1rlJz)-y zd63r8{+%zVj(xw#j7hgaMy#~rIHxJXsm%3sf_^TYcpS5d!G1m*iT7HbvNfood%`=% z$l(!5W6%j!8)7Ct zg_@WCO-Ec{-=^zh84BqnR2~+G>Q7kVOJ>O&AR&czCT7i(Mlcx7d%7)MwN44iyi093 zY#XltU+NspM4dPWKcKS|9+JF(nt&J}h#PTp8Glzu7j^06KmBsRL9ONyfEV7y+{J`? zA!ah668Rkvw*Ys9VhkEKIBxk+s)f3kRiPL4gzpyDgetyZb3Uur5H@^C%EQJ^-69;Mk^b+fc1lNB^rR4j3t;0dSO{ogzlyd0h_E3lG-iYKqz&A3p2|QvHC#yVkof#w71?U zU8eURF6Ju@9pkdf9;g*%lg`D)*BA?gh~sky^9j5aLQt!Lkkryl-dohtEC@-sM#dBJ z#v|1M&!%Hc01CK#TLuOIO2;N`rvfJ;~bn{6#b07bu4LM%e3q|}yXfmIHoYBME) z9I0j!+ff?`9O+)r2q2!D?Er_6m|2Jg)MED1mac8H2)I=0Hvw8v z8M>M11$xFkObROC2IDb>pbJo37Z+6ag`-BFPF~^&J*HRahGsMOnTSkD)n+yRK^FE9 zsilVLrR@NPK$anzy4+5!W&kP)r@4SN+49pCEj8w9HaRJ99MbnOL$Fh0vGNnJ7cyzR z2B8O#=aV_CXiUy}CwiH1Fd0y-#VzYJAl61Zudg5_p=cLC2Kw^#kv%g100iTHsVRz- zs+n>rDbP%~jbuKkH6KpIbsdbziLfPphBd&M7&|hG+P&s(3pQ8bfL!@h27cmY%*Q5d zh1~ZrH{kp)(V85nh!%nhzj?2SMcbk4_J=NJvseBgTy>BG^ofw5My*>B>|n&qS8z7E zg}A?SLOu*QQy?n)y?aj?S1wa|R8{-S76OCh#@(lMYBN4F>kyL}I$RDZjN*Eu>K&?Q zC>iq+?xI&lc+0bhJ8BWTRYH5i$u!nV)AgJ=Ld>cJ#I8|2Rj~pbBJ!WGi@uo8(lLYs zLMU*>MUL@1o!}i1lLJ}NqzrZjk9rC4ip_W-J@WC%E)@mS>OJcOrGn|#@02Sk%5?WY9yArp*UlV zwG!qfmC36279lwmea_JkI%UYeK)c68tQhp)d$M3wzKzo6Fl^l!izsZRkA|nzYH(Sb zAO)-sNSr<(o*$))&BrF%}>+T3b@X0a-~>p=n3q9%YQuC7Oa)Eub8$;8!Ea2svD{C_=^o4{4?yP?+!1 zWNDDL;wV^&5JmQh?G$#N()Nt)KwMzJR01Fy#8#lRCL~!%LdS*oxKDU)5FtF7j>12* z$a_qU4|5V?S%G?}oH}-x>(P!m7PzB6#VRlJ35b#$35l44P%CW;S%jY}4g7{1l>`uS z`pP>-V=_0&E@U01Z8xT50_qSq5xU1^`D1usg^W8!WsZ@AaPg`V1a;axXw|f0Jy4Mf z^?`-dAXP#|X^W?Ih|Qv=F~VvQMm7Lc)C&oB0CFO@ggM37%N~v6uT`m%{#m8!R@DMM zv_@HsbrC??1#-o%WA}(UK+8!ol4!YW(-|c;;5xiBSNN#ih@~yb%UzGk)XZI1ngn% zU?OR1gOMg1>2QvSOvv35qhG0}kx)Q`>o}bGyfq+w`Uw6rE1kikza?t*+3qS~3;-@{ zP8?yX#K+vu6-i1{s*dBN!JiOKD1>ySsDM#hD-!H2Z*hjoVr8+H8a0X~g;&}&7r?=m z_FnPvFwCN|l+iJe;db}$8G%a2--Tg*YN38TGxL?C3yzysQ0&yMkfjmJQH z#zfTag@)QhIF5!^-+C~5NcTLwZ9N7eehbC3p>?5a71_#T6}R^KPs<&bsF;}Bi)PHmKMQ`Hk9m_WV3^Tc+!!!tW#Lc<@05-I0JO=G#!Tdr!sX+tP%fgWpymbdaGkDN z?+tomD-h5$P)VwUE%gwSS|tt9Or!D;Bi$k~nzv^D(NFU~`IyycGoQOmY0?f@^9sl; zP8f@2y86sW&ETS}Cl-}r2XolKGB6-m09wP8n=;Q#>srp;1W=?Xv)q_csu$ht!PIgjP!OzCT{*A}sNIglP95A7Y{*AY zMgIWI#lxLwZH0};L+=L_Yo^Uu)M^W1Lg$3n+(7tsupx)cAi~7p$O$97;d82t{4zPM z-908QWYxmv4Bxf(X_td@kys#66=W+!Qpf9euFgk-uV zj5MVdnP#BBKn?!@Y5DIhjP!wCQpU{x0KoBM?a%X^k9bLj`L=9<615n}+ z%5R2!`y*^);U!%NB0e_`j8uu4To{hTGR%2cC=_`PL^&vek6HOGePNWmz<|LTG%}{1 zBO85Xa2V^l!mMgoFlm*~Xh#I%3ZcnZnMMku$ifExQVg@a#(PX{F`a>n&=|rr9pLTC zp}nE!Q&5yArtTFxG-f8{vY`9aXzOCGUN2Vp;K zVVBhdixW-4#Ib~%5rDgzlr*ey-lnuF&{f5&FycxE6TKgEpu`S%rl4+eI`M1WTH368AT_9Y}%fm_ah$8U*Yj zXb>b_CZlR59HxXSmS9vMORymgybnMKi;io^K!G~J$W*u#LQE!91biFjZda1b-fiU- z<^XfJPQn@Q0`!4I3mYR$j}2SJ5fnv$awm}F0-Ku7(Nlg*BjhAURg9Nr7Z5ZHwZVHd z)F5FHOhE2L!iI%J9b#38w^2G7jc4)a(LaQ5%rk``mNSJ0fS3@_semS>p>q%yVtVWt z<9nGs4!S;Y$9VJ&HvV<*%mBGplP1%XnkDH@1?ow)`Zh_?h-AQ3=| z0pzo2rdbsB(KHu}vA20?O#q&oExG8WlP zcO*=hWmErs*mio7T~lH34zle5PpK<))h2W7fsH z%r|oZoI2ySN)v;?hS6sRs7j}*V8+#>a}z)TWg9aWR^E1AhA0PAK+!`DA|meQVy>_l zO9R>k+?cP@2y0;&!eGZ{6AN^PsK$l*#s(VSm5IaxbfU1FNjvC42oze((mhcPqBS3Q z`GuT_H~wQXVO_O}eEHrs8UHz*TGvMqGGtV$ge)H>k}RQxoAh*llqE6->vWZu4%m z6wF*g5J)*&U}u8bHHW7n#Px}}Gtg!J0mhHC!;1qKUsZ{@O>1D)2}drDtNWpHX`{AG zZA5myqGD79^3ka2odO+0CqM^NIA6nfI?q`+rxtyZF0vQ7gAe}zQlsB1kv5w1k!NAr zI8$wijZyg~KY8C=XNG;7ufK zhoOOz)vtcg04zZ-zan9V0$~+TAGSzqspiel)PLUt)v>V-Ff6zB7XUSEKeWa~UC*dP zWI0eFIERIFvoDBss}B2!a%V4e7pxOf^@TbLG2ESQ#%b6X%zB<@P*b({GXi=LYObbh z=#hjmffcb>+*_M;BeX^wpI!WW{BV+eKt2xCbV2?gdjG3%xwo|M_q>7M?6u; z>v+e1tibr+#m0faqozG-#H>_^`0`UBL+u~jfpM`qmS$lwGU&^QGJ7`j@NOu4uYr$r zhl=8SP8%*a8*O?_YzbL|BM+p?EtM{ZQP@Ux)NZ>&LS;CUFGfRWZlVj)U$tre@|tdb z(#I;{nT>8}OT^hPWi`&QaeraX^0c!8KEZ;KV#k=dpg{Z1zF9Km!;x=uIn8!qmW7g zT9g6^A_p z7+dh1B!1XMnPAUPlhbog2a;Nd8DZ3USd@8O9LyugRK|@BL3F|?`C_p3MU+f1`A8GE zl(O5E7&%kGxbAq{!Eop$W3Z`|H4thOp5RQBBAMyhY+zz;5KYA-%DRUwh|JmmnFmo2HfmjiD=yN~q0#{`7CPa^=DJ38AVLW( zC~1T#0MAt!P6Si}TkjAX5af8G3Y$%#fQS@Jht0P;X+RD@N|($7%ET~^Rp#0lOk*~R zq6&dvSosYJk>FL{0aPHUZ*EE@n;f=;o=3Ey9f{Kj`QS4UZOq0XJ1FByy3JnV`$9msWWhG8;-SjYLezx znO7=aZ4b0Gy%jySs;OjkR zY`KoFc*vHf=0Ms=p%P+p48nGpRNBmL48Xg(%sOdkL_EQ?JJP#X)x%ZEo1yy3>e zV8n$?z&#;mFem{u@>Yjx77RH1Tu0!v-4Y{d&>N)6TT4PkXpE}}g%+c9j@|CyQ$`bJ zpfn=)lr9!Bja(}o;48d9_ciP`n^fC)i`Fav)lKSAg+6ru022p$25{@pJ3;)oPxmuF zWI;HOr}&BCTOu>JzVKuxAP6sVJ43&!H-uNU&eR0Ps7jJp^%EXv2wO+A#+#g;Bi_Qc zhf{4vBHe;X=|(6}m$zyV;~t!p2I?VVbzL3HMR7@$cRFaym=%0bE3+&_?b`Ksh*&Ul zN7zJ4rq!#oV6IY#x+ZKE_Z>uJ#4_r0Th+zJ*4F5I6EZ$scx=?knNCh2?47q3W+6zR z0-sH#f>emB!n>O%wJ%AOV!YeA$^QTqD$moGpuqnCgK_KMNR5k7)*EU%_Y%!r*R%{b z7TwsH;<}67H<@Du4zr;oLaSm|qmau_^vu+Nb{jTQMB%Pse2zp#K0M z_di*eBeUdkOYTX8F+$cHRD5h|sGY%&i9-&Jxv7tEMUfEnYJ$nt2k(VNgK@h`fD4+c zi~)cqE`n!@ELju}$7~jKI*2pxB-nqt}@tjC{DA z)s~a3nw}cbBI3(|-`3h!-ZnfwIuNKDi#KEK8BMbdC!js$`bi28aSkNZHXZ4D%;kV~ zR#qLyNvTU^qxYByBD(hxvEpV%J9ZH`yscT63!Z_xAMY~bf8n!RD1Cy~=3~K(oIut0 z>LI#j3QWt9hCEIS>9b}&Cpz|J*v=~o4_g#Hm|B_mZd?8@fIvv1_-zdQ6N*~F#y%fq zeZ)EU&z#F9l~N&;&5dYYO893*(n2F^fxlVGR&|5>lrS_!hS$o_n(r$cOnqC z9qyN>SW^cR{{Y&F*O%uX?Fncyx`B-oLh1DL1kv03Tnf|)&gsG=%s$xtz)-YIJ$!In#>GYC7w$aC>O1Vii~)Lmcp7?q_byi}^Bz?JiVOx0L=S;yXjiN(Ay=iDG+R!_C2FXpPSAi@2pAlK5wVt# zs4!W$jtnG~NXhfUUWZAHW7vA4cZ+9CZDtk(nW-p2jVVU)-3^H2B{14G1W~kHV}7P3 z5@6N5{J%^&9t6m@6aW@d*?|cnGm|v7^7opbd02~0qh#q7N2+*g0*K7p!`6CgSh!Nm zCg!q9m6nG|=?!v@^4MNB$qb(Ef{GCdeEA+EC`uA>=^!s6zKu?Ahr(@sya&H0>-+GUZE^Eq(>^0fZd~n6xs49EgO&R|tj}KqQ9Q4m14 zQSu$8Oq-Yhfq4ii@;5=5OT&aSgFkIHxzFIoX9u+_b}qD7DO3 zw?(+jcEukm?6o+JTaqShsk_Hr!$!`YvjXLrQ=v68blkv3wiIPG&L0>h=*|^ipqQ0) zAQ5xSIN#Jn;lqNCAfcqrlJ-`OkNKfyvSpAi1;MFW1@#$=Dp+6)t*+vizVXJu$Ijcv zQbE{7FY`nVt5wW?9+`x-#aAjPeNnEp?KS@ZG&MlN?pEV=Gsa&G&kQmNrL`CWg%BKY zl3IF+CLv-jEp?XijR~PPjPF7h^q5yIz+o#!5c1BenuSUeQ`9L#mXm%>P+uS*sD*(u zLwY7nL8#O#@<%PaRm5oT4tu_W70AFt)WTzEFRN&zb($Jju{4gG!`5nD;3SB>W`nq~ z6+t4S6+6vs)&=EIa#7cpi@XDCfp-wY(rwD%1CZ_@yNY?2UPq9wmn{DP(2QJ`*=827 z1)rovYHOI){{ZQhiLukC=q53QgzG&Z@_fy=PUa=)Q>ZDTM|pvAog|W?V{t|*r5(dW zW9V8|em0Y*CV>*X=Zm^~mELM*9a0OB-$Na&UP9;%5 ze=l@HQ?S z-d^uBaZKg)0egeXaVzk?0DtIdy`I8f408Ll51Cqxi?cCsTsh+N{{Zw?+{QP@@k3r` zvx6D`0Q`*NIIOP4wd5eNnJ}vAYbG)jEUX%345p8$_L@`!*G)vi$59)0F>O`Gqi&`s*d4^k%%;PAM`@U50RbQzKUm;;)}UVcjN;hX z2!Kr1b$W-|Gn!B)LM`Y(<8or~*Xe5i05G`OT5=~3M%exrW}NobREDD1uVU$7Djg2`xu#D7zUdeuzkUr zv4A^OiG}!Wd6dv5%qyIg?r1^$NhJKj%trh-61@-_x11(cYC;IR(J@gtN~86$G-2X2^wK3iZb|EKo$Q0=Z}f3QB%E`oIoXx z#Yh$Wr`{@M$)SBK809*DmveJk6i_xde(<@alt|=$8zpK4Sh34r0mtF@K+=rZnY7+s z6ZG?lId3`@B*o6Q=r7!LnKAmY`qY1z`iS;1@VQb=h{f@OdPI95!Pw12fkYU-8x)^$~@`{ z&Jq&WTX;-> zZk{#>ZmV-Y2IH=ZSm|PlDB0u-GuP$sWGV_Vv$!Z60o@c)!dcMT3vM5=J)0l<7Kug< zI)kfXqe|A*ZzHLA*e{(t!b8~KzWaHNvLXEgWTW12ZGJvptYgI3wu90@X*qwJd;jAF zM+M=Q-gP-kjZ(9%MGcIb4=?c1I|YjZnp@7w$s9HvuSNEi20+xL+b*^W8ObRIbWG1c z0i}_d?~OuHu&f1rr5fa7Ci@LJsAnUam zD(PEx4s@zBXSyUhy~ZUiaO&IYwU~mNu<*15cAK#@6p$?Lhi7sURFQFdr+lFPwNvGK zMqe?@bTW0E$^?4dzuhyf{Ci(P_SOt0U}UwSe+GNO@`Ty!4aBOi7(OJcU$shlX9mY- zrmSd@ixpaxKG?u<4ygu);hj+-Z67aY5-H$Zhhvo9C!devy=#;zqjC2o%Iv_4!W%#v z!QyjTota@Na4tN1KfrPOU3`V+h~*&CKR}MCOj$w=mVQs4(7^~+Zq`>&`hFEDhEE4e zpUWP56drWe!syfyQ++;0_Ve#T&wlfAy`xzrv$heg(1{}Q_R z{Q?bxR|2_5r1%8`9}RciYODH<3|4!{E^)0jb7K2FP5^9@a~&dc3cY(ODOv|gssN0{ zqFE!{nY+ZZc{=+81>{|9mTZ%3qu}|1>oeY$S(xQCFCKd5%3J#!o7D)tqlynr4I*^` zcLYmKBP3(&F4asAS0p;vd9cNl|ATsCSO?^O-wXv|>L-exhzaf%hY z%8%##das|N^RmS;Kapu-r-Ox}b4cGaXlh61mpMjS&+9eSjf0y&JN%VHQ~!xA=8kn$ zzHfW#so$%MSh*BZr~THBKNSmohRek>zbO3Rdr)d7%zov6fE~|0-YAjO!P7sY3%NXT zZCNC-2Nu{@Dx__|))Q)Jz^|yGIOb-exahW zAyC=xDuR-s0;>wDsb6o&bnFv|Zl4L7nI{EZeywGI@5#4nQ2l?*`NaJHQ0S~VjM0GK zOr?K7$_+;EhbBnf#mrATXF~lZNpUXjb_%k(ilNL)deQwE*vI#jA1{og9$53thd?y| zGIDONhaa;RL6V;(l`a!s#fZTzk<0zlo6S?uEylo^ixO2&Wgt7=lzu!hmUsoll@ndP zI5?f>ZTv(192j_7C&;wAG=I@H0C5x(ql*LQvOS}*)5=ca+VdMu;j>DMi`3BbBr^?r zy2ai(Ra}4UE>_CGM`yQBzh;KBjaJ(6xKSN|SSVa*j-=BG+gOFtjIqd{uR(z{ufEWb zY)$+nzBG$6Ch)ywec78)fK}WsIr%%^)J?^!LQ=%KyC;VjeK`CKLtS;129$3c$f1|3 zLq;QWOryAtkw>~J-d9j6*>|7Ynfy$Tm_vSCY)yG?{z&5SKT-FOnsU9?Y$=j0AeO(f zH%HiZ zdoysaO$%$ixnFRon{ME;+N#1YUp6zg)NB}bC_Cv1B13-C>hB08m_610b)TN}@*gfD zK7creBurH@Y&$e}F1R?UdTC|rv8T8z={zDCmOPiio!7NLU`5y6^lBXWGDs^@^VKS| zW}OG!liX%;twyKH&lf2XXc~b|WzNWs8ZsRE=xj%YvdkJx9Bnner=xatrDD7L6$xU%f zY6bIfOU&)Qd9Cp_=B1vn&9zW%J8#gOG?o?_1LxGY`N}b}E0gvVfDNO8pMB;xm@AZI z_)sItVOyeXk=%l#kwad!8rQKU0k{Yy);fqyi_&SX+F!@#)J>)V);_0DN;EEP-A5}7 zXo(l}RE!!qDMoyuX^EeUu?Srq{fain zBB`ZGT{bt<4xTU+&vSSan;g8!b^m*$7&|&m!iiTH926MIeHFDivtD@ zq7qV^9Jh!HLbd5z^P37<*TUhNRdfiwL}@cMU>6Oi*^+f%`jD6e1H^cfp#b31(}cVC zd_0W$w{}O=;!#2={%M}0(2PA^;cTdXhVX1TS@&6c288*-k^$O!> z*5nHZ3T*Z%x`wxicoem`$j_n`_{r4#m&Dfy3iYqofAXRJ}a&(Sm|EJLeO1fwVw>Xks$yvYP^vg}3ER;&M3i0nS{*lRqmLe`Q~X~}hLXLd8BdwDH%C2}9%oH-h7N{Tf=3L%Vx9adhL0vvso*z} zRej#~Dz313!iT0uPcaf66Ebcc7QnfF-Cw?Gkg($m&797nzLicbWF^qe8|)a?x( z@uNz+;+>rz%ix`z+p~bF!(dO<&M%-k5k?1RrQgLFsU+OjitE7T?~V$>!EbQ-mBI-m1{IQE6q>Hm--ziU_8)$83#^-Zqo*b^&XP?0|S!}bUH0OD}<4+ZJ- zIpdJ|bv;k=ZvwpKBpRX)Ihg$Xc=xUr-(B&{o&N!zOU{Y>5Ag3=qT!2#2fu#0GCbxi z8C1Ahv)%5e*-O$;q4h6jd6PaUtS*@3tCH<9H<2_&|J~v9(&vL8bb4&>$9APTN-kTn zjj&<;#QBc!krAC6tJ6JxwY&(a48e{QHU&vG(|@6=Uj-Of{QN}fNaikUBncTEz-8E2 z5*LF)xN?$ft$tM1%*|HFxL6ann`&6Y@}?(Bn{gFk2T(2)@e6dDHKbmpIEHx3_-6^X z>Q{sAhL5+~a392-^GSFD;Dkj&;GpOygTq}b7#bBM)_@UHoRzZNLHgR8*@ zGGY#QFJ<;nk6Wfjn ziF9=txjJ7MuBPsB9KR(T6!vV2=16x4NiRF=k!SePK#8v67Cd-sVsfwXdQ);na*$N1 z4@)4oq<6gK22r{kC=&0fhE`*a(TpfTOQ@&`)VoV3sp-2XKY9&fh_n!gSi6X_njJEX zIM|Y}!|28W*{bMZ=Y_%Qt#(r3O2nv4`dp17*)pbl@m<;1VYO*PW-p65I;&yAIU{Xy zj0NTohd{D9NytqX%N2$M0le9ENmjXy8z(T{)9dxI7z;Ol?<^!-RIN%(jw-}EO?a+< z!4L{X#Xik)EX9{A^M&e33M47o@hQY@A&#yvUq1b_Ejuu_ zR{0~f_PiH%Dv&4s85tE)BeIY1Ysh&bllfCEx;VH-N{W>v_#5eo$DK+ALe|CjICf>Z z!G>0p4+xr`LMez^9|L#%Zyg&|hUfzIQisy84`t_c@!qslVbDXNU6{kC)!D(sqk?b- z2iymIX7LGq8cxZ^`igm@QedrkuZ?P;9ja3HJk#Kr)~5THB+S-J~J8P#7|useu`ME zXdmx0GW|E&!L(}1?LO!G!&ABIoq?(cOT*D>cIqI2_jCh*(|p9#oRHVY6Rml(qD)fg zzIhDKB)zpi&`&*frZ>;X_B*^?BtkC_?mlVyaixx&$6;yu`@B{B)>*yiJ}~`o=Zyh} zaKfV|Q24TuepNXUOsRXGgpe=e{575m7{;7u)~ zV^R`n@cvGhv3%&vhcwhbp`Ss>4vg&g(2xj=BPy^uM}53em%DK z3HV|}96F=PCn-~9SE1XI_LV;nSmqN_9O z=KnZ`kx*V1r*VH!=F`@+S` zVb>8uGuuj5ZkI}wQnboX++w}Xd-C~-&h z-t@J*Z4S%hldZhX5uC(%Q|eI!(Mx;ke}HmV@qk+i!GTY$pd9IIaOTDZdrf(|Zh4js zDrr0IxwnKjudY*58TN%!vBhuYw&#!8^RN$prbl}FzNp^T*L?8)HWSNV+O#WWL>g*m zZAaEHdR&v`-CxBWQ_Z>Fj;)6i`5z4CPvWZS5rN#H!^ zl&?3N=7Mt5G)EoR*0A(v^pzO|~{}sbsQo+$My#XVVi{ z$J`A`U8RR`O!!Fz(FOC;8w>fipq}R=75?EY4e^Y1uq12OCIs0e`6f$;{wmsIP~e4o zhyvHp{w*HUSJrGc7bN~J)#l-Xa$cCvn$Q93=Oq3Hvyg6Mgq$v>kJtC1n_r*91s=mS zKzuDcgt#YUZ&w`V{maZ?B7tdBr40>VNLQ#-ylI5zwjx^vi5N5rx9SHfDt*W1Ltj4g z<=N!(c~I}8x`5S&>y41mvhrE`c`#qcO`kg)d@OE(6?W?}Rr^_e_wzgD)e}T^SWwBA z=atis?Wg)6(t1cW1>cn8srR`zi%B4DOK^G(4OksY>D~*W%8Oij3ixL&$_;<<7*C6| zI~>55H=nHM9IT#9E(5TA#{38 z`pm3=e2%;Cev>4?S4$YQEt5+y@QKMrva(k-%cKDws(mU6xv~zwm)nH~llf<2ib6St z8?lew;pGc92EA3V5eB^QxOLsm4=n>`KUDte8^>_PxblqN-GiYDc6@Q8@0h&;%fq@Z z8ux{Y;v*oSLN`wscFn@QiMrj_v*|O+DbPst%l8KB#ReCnh7AJ;2Qpht5(uSZFqii^ z5`X}(zlCqL^u`Da+xEa68as!#;#^BW1^-_L`e+O;%n2<(uk>8~kz@z*5g*e(TE{FM z5p=@dU`WVGL$v!9nFpw*thYi0;j)?NNE<$7@ykf14I@-4@%Olm1-YsTPzp*uVRmNC zH#ftQ0zrInBUL4SzdRcVC>8bs^WKEAuPp|y-JC}H?C#1ks|+ z`6#DQ3w!dM1;Y<{++m$MmubL~{Hzi=DO@eSB)PTS$>5T}8vVx|O3r-{uFY0+FLxzS zroN7Mr;M-3)1BG@`)Ph99Tu*-bDL|nx++SSkB`Yw8Te^myOqyS2wclJWT^xT3ZU3m z8CiQxy~$xiXN5f>g`JHLX+oG%AC9_hGj0z;=?Hy3Dk!G+(v;Dm9BEF5GTP3!$r|4? zL(A|h3#EdE-2Me$mh^(GMkn)jkHtJyFK;#;T6TL5(!aOhX0Q9i#my4gIahTKAVN`Z z@!$OOC>zdVHEuq|e>FfeT*U)p&6K`edPyFJ>qHgxgV={_7zc*a zo=JQ8Al}1CK2E)4G4zMNW7eiNz>+6!>%4)l7rb7JAVs#aCVd87h8=rQJXd*{ByEbUYAY$c!9l!JboZJ6v6-B6{ce1 z?f>p^J!UQXw4M6Hn+jY0Z-1l$Ez0vQ5Lp_vaE@!X_ng9669m-zJ%_@vAUR*!KKfS+D9PBEWi z7q3j1)kl(ZK2?Z~B#X9FIu*XTnzPKJW*FUhLIoO-iy>a(TdaD39>BDmMW)%(<>E}t zcl^r`urq{XaJi(=#|pVZ<}8Y-qRIOrz{@d!yR$&GZX0)HJT7*a!}DPCPW*v@6+BZidLN9o_iYT6G3Mx?H0VKCUW#Q{ z+W-Rr36x=-QJPIyddWC;uaaS%p5sm;QxO1@rAG%Z=bUy#b48~Pm3VaeubDzBzP9?I(hr8p1jCVrL`nQh{j`@#&_i&>hox7E+WKFw9A zcqAYCC;(lj_RIavbNW<>gxMn)RfLv*|Dnlcf=4}vpC5-W-AtgVwP20qI4f0|3PJMF z8~{ra8934&n9WL5I%n>Wrd*I?`2_BpjVK-DL%Z_l^O)tt8C=wj=t3Hkig{As- z?%^S}I&Js!%x`d!{?6_RL6AR64Kz=@Tf&xE&l~DR-XOWX_mpSm#bm?QCyYC6u_MIN zSsj6{FzXI8iMTMf6lOdyZ!;z_lbJ#Prf8ntJO%g2$(x|!^}1fr;%WNRn3)|K9Oghf zvp2+hEjk^1-QJqN(3Ldd-B`OT?!2hx#WQa>Q{>BgtsvTEW zCqg%}yBNqBOO<0vU$ItIs5nGUl9$JrPNAJ`OL1wLEl0^^(9ZI2rU^PMJL9T`_h*)j zKij;q1ltPmA3!UI_TyDKlzul)9+}OXhJlxdbOIVh~3JO!`_nsC4+!Lnle zL96HO?U>(&)(xKClf2`3a5~tpJEg^;^wAd6%g$eDo771!>Ww2V6THoPQ*ZMJyrrYV zH6-tlY-RU27cNzfmj6=nxDtLg$IVG%zlQBhG;ylj0?wACh}(Je#|mbs(Mk3U&Ghz$ zt?7tni2fbY3lz|-I$E~GJ~!guJNH`Jczq1Lsql1+@a|sK*r11*Cf%i)dfkmm54y?G z5pG7aim|MXxsBAm)QL&+Q{}1uJkCC(NO=6Zc#D0LGf?UgkOv}tu@AHkDgalx1|V9R??$G8K@+(oZy7se9cz8-CFu3LzoI!C zlIQ+r#NP%WQtKO_Yj6wQ`f)>hGWeo86BB4;a%h?j%K3^Rx@3tLM zae3caMNGctS!T4M7UC={Ln^WC^wiFzF9o+py6yxKl+#gOJnfspEnrI50;_qrZ(#3a9Bqo=Gal7TxNP2 z=I)LNRAowPrkbGmgjIuor+dy`!aEd0+05qNzG9oIa~`Do0_Z=`HY)rUbNi_=8?|Nr zR#+n(t_)#=M1t?%IS1$wKhlI?Co0O>NWp9tb}{UoD8~#q#YP~okY2~W*&E8a^zdcw za3qZoaY&LAp>H1|Q_W|y!m8IYh!|CKBKOXSv-V+|2+1NdmwI(1lp0%Oa&0GV3|)mg zlo$Q}9gkDd9@lrrmTBEIce|{DLl)zjkvAbC$*~r#8tl5vN(r@N#XEIk zO)CmFjW&V1oeBfG%qUJvn#^Oj8GilbTpEAQ_MmGuN$|6bra|NZ%3AOM#(;5Gv~=dd zHAMK+E(mzTMTEKr@@pLgMzO5S8MDyQJjsTAjJsv#_3R*!zqrCC43UQ&A0 zx;I(Wrp+|fTvGc{ccu1Dk{O4i17C=ED1RFt!08Ly%>p(D8aUGhc8D*g!bLZ~Oof-= zMs4!Tb0n(lx3ygZ8)#rmr6Hp%n`fwYq>He@Xc5+$hZ|JmV*A{<9nvQaWqSN+nNqZ=V1M|>=Y;43&t%zT!Iv%HlGU` zRz{-gSRWNx7JN?2RkU&Mv>l(!wu4f#rt`&>mnb*3EC~?*5ZqR zKk{p+-pdNyvGKj!+<#{v9+tLvi=^!(5yYh6o}iMtI@i|&D34NSyL&%0SiU`rn3AeWQT=DX(7ko=H^30x&W)LyN z3lQC-Zr*ubQwz|7+~~684j4JT6IMG+U``1!E*uXnc&puAwq#>e6H*=5w*$+twmcJw z4RAG+9;rxz8pbv$z0|!4_ih-_`=Fdb>$8^gv(!A#E+BN_3l+*Y+a~2Qqfs=;7SIkhq`3xO-2R@+LZufG%FNme@e}FXi z3!erzpeeXs>Iq2`*Gg^v>d3lg>;|l5UxH(8T~S&rH6 z*8Jhs44zKZ+&KNoKS_Fv=Er2U;~uucmZ>j17eI_dcKxr+D@661B|es|U)#Hrg;?|T ze+IKx;=kV2pt>@!qdsXK(IscGi!qxrla2(1;}_cv$c-;mF`d~S$Pz!m2Uwn=&z7+UeWCK1r#4BB-!6NLQ{ zBLCVkY)Ng&lIdOA;<6MC*DcNVQu;ydnZKvHz$^rh*oRQs>e5R>VRX5A;I&Ah+%LfG z03QIsQdew^tJmHo@NbU?%F3UL%P+>2oxl2p`AN}T!`;{ORv@OGFiEYhGq%Xvd3^K> zJuh{bF;?oIuLkDK^vJDLce?7V5x%gwoRUNbIIjq$3IXM)les|^m-ue&!$yxu`2yoV z2=g(%F^kIk1*%mYCU)O7_@aOC$*o}x?C(Cy2Y21E))A>{U*&Ym$ZrU$UXQZW+nS`Q z;*T>#IB`$;HVwviGN-1_H#p(e;2Crhr(AThv;vJh=#=v+P6QJ!jA;>$ux_+zg(y!y zc=Z@jY#2`CpHt?`-V`Rh^n7}CIA;?Q1hX=S)H{4^maatF7=s29TJqq@3M?+=1%>4O zo1T_Qgakp%y-_?EKT})nTOq!wwj`*EGZm;}&fq#8u|lKoLFJw}`~s(3jIGq+SQ=_s zR({MC22a(3ALROWN*xt0hJ$^rE%U{Iz<_Kg1V>oME`dezp}%^9X?gj*Ue%E+F?2u~ z4g-9B9F|@n^Qv>gP?BnIpN}%FAO~29dsEtaQt4`OUx%6?#PAL_I>`WGh5TxRRoWPj zzL*XT_ccbyduKK}r`C8oF~o{frYBAEyTDM+XFL|V7}7BTU6igIEcgTS!q@71I__u? zNUNonr51LbH(4xzl^6mt*^KD~phFKb5(E!D;7hSn6V%U?IcxMTD4!Upp2%Dz>pNIm z;^c42kp%o$VuQ8Uo{jmQQt1QqTUK0-<_~7e&@!5gbkWSlU{(v&tl9(L`ctSm$Qwt1 zbKF?<<0{elL_w;t$n=DpYo9jUS^x!$L>DgCAn`5a2Z>qBnMc2kdxuLcI;U9h)`izK;3S@0+!|(Tz1%&!9w2d7~S1*%dZ?FC+FFB4i zGwW-kN!TZi`Y%{7PFp>TYN$>k*0*En818E;@0~AC(oDxDUuuYaQ#`>a3;hc6QD>3c zk8MqM@mkR;R(^(q2Mt9E6bwfL-nqY35^;DJn;ck)nQ;g^iW56F@g3dY;0cH$=^v0g zKD&$X2I+cp-gqYVO7F#Sn>uM+2u%;+EGd9MaS z#gO3@tTDPO|5zi?&8 zhzoh(cIYkqzm4!GFVtNx6fQ z5~kL+noT&@wBg$#G@u=joZ8s@F-&2i~>EJ=FulGp%C((te$va4(k32&=SPq*ja~|l!^S*Q&F?%1 zDNXuL9tDk?ek?V5sjgN%gL{hwSlH3M@yH29alFuD7_O?S$jra?>vTX5@m*{I=2=C9o+e%2`5~FLL zU*y-h$0jQVZYzm-V&o(6nMjjL5<6E;hS~&bs6|pkqL$iVR#U%pxNLSi;mhsk7fH5Y z6Ctr)8=(@x%xfWT(IuJHRPqBhc0x9^tWjxQdw~wi*n&z)l_0aPFaY<{%u%%I$^2i5 zHo5Yxph_68&@>-45~>!l;%)czF6YOqcy;h`*|_~N1zNc%7U|?ymrd;=)*)aO<2^IF zj;TK8!ZwO+!nck|tjXR7oUFC4p(7f};{gJWs&;aNl(5#4Sv~GlGs=?Z zEqO6w*5K+JTYj{>6O)9GP7rXQxFV2Nl@dH{k(eombT7%ACkj@AIB~?fz2cD89YK7= zTKU^7eN^>)a%6HBaf>_IW07L;h#qO_Hp?zYbf8@F!IB|PpQqOV>)y`vTRF+q0jV&YFDX4p@J1ZvkgevXx2j*m9jPCF%}Gp zJ@$lIWnf;c&VsGx{@XfhF~j|IIpUD%=l0;MfUyJ%^#AQJE#DfgH`U?FA0gobKViW4 zO)zZFf^M8}7Jg`U$rwDAZH`DBo36LyNcwj4LH@+9Joml2zxF}%jtq~c3FN_%;zJ4wNA@>Bhkn9X$|TlJkD z;4M9Fwd{nb=Ww#~^^lJqDKa~*G2y@5?$yJK_Bz;a2kH5TMV6nQzQkCotcc2ZfEN4Y#n z2rK# ztzRnsHT|!I%Cp&oheu0~gno{9!q+;e__*J3JT)l?A9tbUK{eX0J{DUaHz%% zlgRo^qx!7=WzLeEnkuu#y7NPMH^`u1E9)DFE2uTZ{9gAW*AL2F;ks{$qdEQex({_a zcz&}~|1mmgW^cJGO#oy6Tb)-)`#|#gW3%W?36w@xJj8v+~EC50ICYHM!lK8oZEK!&>iz#OUpTg!{`F*@$C$@ zs_v&5(za&pU8-lrIe*A@+)-%V{(%xBSIIsR&mF_1?brYA_mYpX(RCHA= zLf^pOM*ySY`svfX(i0D-Bzspn&C@Rw9gngS$<{(=4##Rc)VBt#lg}F9r90DOMpC?S zc{SV16M5+Tlgo}&|HDKVme^V7guWawHWx`Iq-*+Q}e$R>Jp8IETBO z-dsu5j_b@sj{g9L9%Oq`3x})u#i+iW?M`ht;TbZBE?3az@Fej9cgIQJS+s4;Z3o@+ z|Cm1f414esTl3p{ctfHWZ@RD>D$Uu*r}q}kqao)W(52dfu;f3!p;HthT>y6CY!~Ec z+%!oppI0ygm`;LALZ+?AbUV^-c9daqW2wAN-7iXu8fN@Tqj6)gV-Spo?sl>3_Q;TY%^!K}Wdg zXW~oO>pt;Yle;f<*~%*1EmEpr_grU$$eL_^c;lmx((fgi%x#cG`D8q_JdtOkB4PF> znxm~k{pr)kRT8C5zNnaNq;<5VoI?jsfG?*DuV`T}-pnfRrZYXo<`x?jFjpJjfdj%eJUdINfG{wqmF(;Y5rnXu* z>A2~#WLkZZpEp+&kePZ`h3_|m!!7&#X`ftbBydI+RF$&3p+g_R*Z+{` z$L^AyG6d1ZF-03uKU9+cD)KJ<@RZ8eVY0`pW*#oiQ0RXuDIgsAO4UUcsyxT z4ZvK&E4<5QNlpI)VEw4@x|RrrMV%v~8rM6K&)j!3-OE0V5z9TOs09rFlpeOHW&8^a$E=t*~Ay$w!h7RnBMEXoc6Dwo&;%Xd^#ERfY|$pf>=l z12*b&piRq1ejpKDbOU9US1gjD$=ork!!9CF{%vh2Q-7K@MAWX4j;X}i1lv1ziE=h* z*UmKbZ~xB)2t-?M#uakH?pdQh?S<<*`s?80+oO zc6mt@6N2$1KQfQ$0c>FJ>V4?XY~%H3v<@Dg{~V8{CN(4>@xMz>ba8j)h{4hg-<4Dt z(h4$o3Tc4YWY^AhSv8yq6hu8<+LEy7r2&wwQJL4ynm>fjeWe0L+R*<4Fpr;R5?ymu zd*P3Zh>( zZMl2+wLzEp!`2~b7k}=&{_j`pKIMCPO49!TEw3%;>k`(R-9~sx}ovqRgd@ogW4> zD`&^7p;0cLoKf@A844P0ElQ!5474E~4Z|cHdXhS>{Du(KA-j`#9Sce#_U(LSl(#iAHvTNN?|XP|qjt~qeQpH4 zmvBGEg~Bv1j6e&aREXPZSFgjLZJ;`p&^6#nH{|Xz@k?V&1f7u?$uhs($&NvTX09LA z9OZre-hzE4K4^yCSZP3@(${T9ZX9G6n<+i73WdnHxl7NT?{!KCaXYw-w^&>I_H9NL z0kNP0#hiR80blJ$LrOoNV{axm^hiERuAB^Ou&@_zby@cKL6g)tRj@laUnx#lGQ$`8}~na(TN;4i6BU2V(E~X^ZKa@&s;AUE0t|ikQhcjBMiT z05Dc1Kjjjxj(4o9Md}UF;hxra_jv)}N=YrUi?yWAs&r&_Ri-$Mqo#O?C^w}ahUVau zX%)J_y2PUpC&E`J>1~MzhnbUpyj|B~W^-DQxA<0WF?5L*x12ipCJEZd*o&yL#)@y~ zeG&GQGXOny;Iv=Vrde!$ghO-qEM>7hfHom{SZD=4#Q2rEp;9}QdVgcpVyk@BHPAop zjMf$8pucf!5^iq;h|V>aW)+KS{4ik71yt>X#d?kuahaW>jP_`ypK#qTO1IQ$;^en} z(PcDwnNd+}8E!wzTVHDFzEqEjIt`Ll)a;bGc zM31t?5W+B4RlkV*s{seJ^8RW5D>G_8n&|mg)^V$$ZC|vusljV`=_Jk+NAZnb(D`yJ z|GLL@qihFxAu)5|90A>9a8m){$DSb|jmf@`R>*#}H@=r1x1L5lN9 zq4E0)LVTDpt7hs9F!yA{`bQBb>Zt@jFZ(O!)C$1@80mk22`aepq<$~#%J}_W<>Jr2 z!}CY05t$(EOzzesPi=AD*ADA`zxiX@!}o7!dL4eC=Izs?rep4@l7-rPpKg09W{|4~ zup@#6eFc-BF+H4o92$LPCU7HTzmZ~xsQWS0(q~C(BaG>aqVZOMoBJ!rrpjtYLwICt zz*KOaZz;CTp>f7Vg>k^A>l;F8Lk$0ZwGq?(_)Owd_m82Z1;a;<)*1#8JAYb>mo*W7 zNWtMmKHk-f|9*ias@`*2ggPHhW_)i*2Dp5n%&7UK{QycZp@6?Zzx+k7y4Qt*z-~+0 zBR$%^KE13l6jRU(EnLzGst zy<&%Me`oL^DmFlWf$e!m+!VwZ?_h64bD>LL_<-^iTqGcXxQ69S+Gg0_G^)8&MDA9O zY)L`Nuh{D+j45M%8A%D_G?r|AtE2NHyfTFpbW#mRcGh{w$FITP)OMt`P=yP%c_wYF?1-J0m;g6lTB*x$t(H6WsMRi zh2r{@m896>b}^_OtKKd9>YGeflG?E51>)}tjj@k+ z58Q95MD+G2P2X{_&C~$gDfHu6HEc@dXh7{Ou?pB(ePQ%@=-8*9;~w@*#Mux!6X1|# z_`39AE%mTc)Rb2$d{Z#dA>X@e1_5LsK<5%}rk{G1J1${k8&Bm9Qd9)95i(qLY@^ z$bv^2nEEK!&4c_Zfyso>HF-~^ZY+DFr!HOz7s0tioT)^bF&rMkYNO$~Q5nUiBAF4v z#)R8f%Xhr~i3(w?c4F?etdh<;UplO(;oy4;emey%iKMTA1Jkv}+kPKm1^xLKcjtHY zx0yJTI2jPNqP>FeeDL$9AJyFZ~#9d9zh;}vDh9=N5;iK8#QzUD~`^2KtL_{+>|F*~}x0CKA-mJD*<-&3y;Iqmv$oSh$LB*X*Zz z_CKxD`)4Ewo|YZ+IvZ+^T6g)*cG=5PTpFeC>neZh(!Y}SgfH#twVrSW4gP1joCb1i zU})+fXlja~wKUHBZ&2{y#fu);PQJl(HhEbl-B-mgbd!fT9c@QHT7NfPydJ%VC#L|r^yWyOE ziYy@^Pz&v4ARX}KL^Vr7XqYl&nFfE^IUlPtpbP@3`*B5y7t#{oSFVrs+v}N8tZf@A z$Z|>C7a47C$nDu!UN`Tm3~LZK&HL5yiT1q7KM;CoLYyPkFd?!e{T1UH_^EN5GHlt65y%10Z2UX9Qf(WZg>^V(DL$x zd7hzGTCh?tfO0J92OFzd?po?P2=NUOEM0f6I==HRXg=v}t2#4T$Lsdg*r1Vo5!Yw? z!zwz9aU27$oSu+>#|b!uIA%olbvazT?_aEZ#-0c7fu^B1Ghk1{Z?lp|w1zz?Pw%9q ztt0}HZR64^Z@GU%{1Z}&(j=D%xk$0y5)tSS`s15{F*G%NRCV!3Kk>X(J|cK!_kRFC zT*tPkn&*-<*v0ox@w+?;D6bQZ?y9*(WhA$t*hr^O-s&CRMXUK&@%zu8gj;qx2gcu8 zuvzeZ$o{?nBoYKzw(~v{7(H!IGB>%kAE>R|TmQSJ%6nHVsz^a*ambRu<2wFh>Gq(i zal%WA=?MG0`K(o(z<^Dg@u`&Om51?S5PZH^HAtOB2r_7A>Y%o!q4-#5j>z$jxdVM7 zB0u>>F=fwJ+hwx%$!|&)EtX-L)?)WCze73{q)ciE)Yh1){Wh@I1E*61i;Zg6UcH>{ zNf1TsqGQeUeQc$el}Cff(pRz4BN_>;$%~3t7Y4slIXqT7b~m^-XIOka;njeNI+3e- zG+8^Y2LD1NE?tv5r3r>2@iS*{{ij3P-l8zFGNO+?AF13#^6+psq$0_K>K*nFbu+cW zv#*Ta1$V?%2~-id186&~rRq6CRrXmWqPqlw6rh1>G1L02|7TU?BP7DsCcWt^Roww$ zeFIVd3Seo2eWB;&;BtRZ333etx-8GFSlhrUPT0xvzL!umypHujGYuXzEOIB_!Z$%q zX^LxqSs@Utl-9XvQFva9QysMcc&pO8F)$UrO@%p_^!kaShUvkE`!5w^1iT~5^Z0w@ zp};oB^2YL3gBLzbi+6hIl%A)Eo~5qpt$r8IcU!bJE8=7VRx#*xg>`VbMM+eUE8Psb zlEiz`O&Fw|94m4>p4Tif<)~3Cz9R%&sZZy7M9s}991we4|B(!BEB$$*D= z7vQ@skYo? z_)_EXTZ=jm!>AN|hR*eESJJgla6Jd*nWZzEZdsZ{ukD6hti%I@Ivuy$w|H@ChxG~9n^o>l zmOS9TSC9oyE0R^2X9@m~0gH?Nx7O$K$Gk78q>iy_=D_C$O~?)-h=(jzSWTldo#mCfq5j~pi}*!U857v) zz&m)Ao$q$5yYn;UIo}2HPS?_l1$Z%W28NUBWR7RC8D!h;B&6m^Uz?Grmeh?edN)ND`Tvp$uqX!=~N91LT& z)zCgv^6Z9EaD&W#De z1E1&Ht<0&3ZI#L#pr>OZg3cmVG=Gg=K{J*bP7WuJ8mnsXo(`a?b-rpRymCfVH+jfpEl`0w^+YqaKCA zeu(Dy3F*hP=lD%Cph?k1I-@dvCQ61~3>Bi}KhI}?se3)6(}b!3sA<88R5xi7V@aR7 z=ex5@vZc)DfmsO@ezqU+lIT!XFSNLd&7J3iEnjra48me+1(VHyJuU9~(9!wa;ZVq% zDJqVrmc(Y(0|C{A*w4~T-Lw7!!ZJW@kXJ*eY`Gm6gk2&us7H?$JNaa0J3=DAuv<4z zw5*4RW}dezF>!dD2cAM1)b}Y+az;4&86b7N3-U0^v^79W3j6YvD9Jn)uED_OOr#}CcUIWRQsw9!<7m(moX8!;SJg=seWT4YlMw+Kl@j2ZE6p^mm}5t7(3_^X{b5iY5K3v`7^EoqTj0gNmkdBCBGVZf0yHI@_M7;_6#WZZ}0v)pB`scOnyq65tIC$}#4watt#{ZS&q6 z{{yg&hhNWeb$w9$Dwiz)tD~|)Pwdm=Iq?U~UH=i2xY!>O`;YYQ-Q;}=KmX+*0U*%Y z=KG(P1-<1Kl|Z>Ywn6P=}_!V9L&Eu{tViPOZhWu;%$4p(EinFp?jt$!y~zr?pmJ2n;Fl7eVAgQY%06fF0WMD zRg<~PtD76x#gseWUdU(XiO~aU@7F_PtF-^Vy~fkzKI!*XR+UFU3!yZ<*(L>_pY$s@ zqQeP=RI2(v7r#V2PAq(GYOq&WdO>Y03AFd7R~ATX#l+L214*Fg`Y|g0M5)$zDV(mLeJkpTYvfd9Sltj)ww>; z3r@Lny4{5u8#Fr1@{N4ymt?qHjOaMR^Z%QR@eEJ6XJNAf%1xiN^OHOE;?us(#Ly4Q zXB9+;Y1;8AC?0X^yV4=cT8Z^tnqKSIwNiE7TWAD0t&cDCosR3Dv78(NJB*0+P3yRjB>c%TZ$fB6F zwJg_yyN#QYEhnL<#_esbChArQAoNNf8c>In%GLa-#W7OL#pC#9J;r6t^BG%y-HXT8^imsX zRu!5BEusaYAW-p4IjxW+Iff`yZcEbdy^l!xnv%1}Pyuj(WP%I-WQ-#$6#G6R>#L_k z33puk&Fw7ZRMK59K~C$-;Kj|II@*|+27hbJp2Qb5@g6&;3P#sipI~M&C;Kr?laqI* z&h0czmhqtGC%4QwQs+(NBL#*f3v-<^_d|J;t;w3Mt5~$?n^~s{usvh&hHH&OwHSdj zvo2AE+jLkAi?129ng>b$_)A_ON^7}d!ax638rj&75pX5 z{9(>m^{-7*@$2UYoMh7|ZRdD!ZaCT!t_d6|j2>Sgn#@wFe~PjhHfhOci~9>^k^qk@ za{+liO(eF3Y7)PnA3#gN@o_hf1=2>T9Mdi0RrH%t;_Z{ceM#FGqHPt|Bmwrp3g^7! zg*BD9ZEw=hu<;|5OiK(sj8m{jEEBD48otFCixIA(6Tp=h(bNY84UPvej5bRb9dW3* zAmfmX(i=D9Y9=xAiFUX8H%mOC#l4tW?s8JR^gH_OC?@*P-#OWY-L5Fnlw#sLMf(Mj z{~VN7mLy#Oh1AP;S&fXl@HvC}#jp$W>*B*HOoSjJFO*f!vtAjbWykR(2ka=DMIxtp zJC9yf79OOAGr;!jGi=}O=T<)Opr)!jEuRr>XLQffHdHB*Lx>gpcEy^U_bIU|vgl3i zZ3r){9mbKL?ouAGUi+SF+uPBO{DgU95rggFNf+j@S^Pyo>L5kk6>s$Mf66*1et@aG zI@6Pe$0M`)#u7Np8JbFagRWCDJ1<}&Y>NHPQE;(k!F)Z3m67QamrE0`)dtnbHxECa zCo6IJY9MiRkB;87)yytIReda+oCR`>$zlJABquT?#9kJ9kUuAXweWmS4SlEi zw!r!Mx#s7D()r+BDpC3?)5&Ubk30OQpG#1v+M%}7#lp5Dd+hMbcl4Ge43#^#3->M6->$9bpJcw73#j2%DzAi4b z`E~_5=s29Ay080W@s@;m{`iaZ%u7^d=XH`NX6&{Ywc`@WrjT%?B41*rD`NEvKvhVSdD^e<9y=DD;khh9T z$GK-~*VX##FH%cxDd*}o{WTH!FUEi5#k&-Kj~l09FW(LIRP1|Gk&4xSucUs4*8UIB zy4m$x?c{(QKD7X&?nWONmaLQrujYNfAq&y6(Yn@M`tZ0+D)Fx4P3F8#pxgPijC!Y5 zlAXrw6$8x8_GLiXxlHJMEJdV1#mA1mK#dnbXd3+m?}Csl?NcbI-rQM`&^G5&oO!kb*>-%8rX*2c$)t~GK#OHdB7{!f@ z90IM>MXlypi6#@&lI&Yn8)3m9cE?`9_L1X#t|gD@#7G5L|5e6c!eGhS9@m^$Bc~Wy zu`vAvf&FmmsnG^mu%XQDaxRZkhH{tZEN52(iYZKtKid**)?yxr7NC@T6w2>CR-Op! z1A@D^kvxJgN;9MNEFJU)xIw{m3fC2Z-1ojKL|l2Hh#-GZe&t%9+zdg}4SQ!U(NEF-PoRB*)#j1FtB49eaBwoNK*$A}t08R_Ow%%ogbevMeU`_pt;Z(SDM2y872%+9JB-~aI!+;A_qa`}CzFjfZ*`#ogOxgM109OFIHNq8WT zd@Dgct>_2ciWxU3aQguzcvZ7Ef2ujwJd$W3#2mM57jZiMmR6`m3hX!&t zikRB_bH1Bb%^r@-dIkiw#A^qHw3_+buo=%%85F~d(NL--(92u$gKa}c?O^_0g+!n7O?DO$LHne`Zg_*Pfoo%uBKf%Ai zlymX5&8=~Jq+(F3wS8x;h3Z5=(Kvx3pWxtnK&`H0n<%>Xdl>1bZ3}BwWKI@O0sq+V zHF;{q-CM~cOL!V;#2SvPU2WrfPOv=~;ZXIiRGrPr?o8`3dOQ;?^m7U2s?&8#636~i z--t7x{y}qK_I2@xUovl^?K*vV8C^$wcbGPfaugj_-Qun^ zQEFP1Dw$lzgFa2>ds-GFc&y2l!Bd`bHDk(Nqzn-yOJzT&ai)3kBR6{b(=YtunpJcO z$no^)p;m6H1g9hemC4XUdtR~3@O*g-d*6fIzW`|uvo8v|@!IyWRS#$2Y=lmg<|%{1_EoUAB9GUKMfkYB`bBqW zdEpOcl+pF})UD{css4EFgD(ZvkGXh@Wh>wwZ#FhY_%DecR+l0i|5f@tgh@xr>3>Ln z6K`s)VrbPTTAaVe1GR~@SmTjYI+gk0G~9ZdRvjXEOFsVy?H8y zwPJWAaMXisObLY~%JsCWdc_%(7e=gzh-T%@D^3&s2hc7tW}=yBUYqNHj6quqRXOd< zfnhQZ{`ctUcHO&a43Iwx(~GMx&HW=3+B(zkCpaeEqgJ5?uZ2H|eIX?wZHoahYB&OS zyBBH(U_DYVT$Fjn!?%d%zxdX>x6o*U|S=a?U7fO2M0<7&F1YfmyANF5H2)NY7wi32 zP=w7Ic6ZilQEU5?bj8!_HBVz>Q=PnCn1Ew=$Kv2jN&-q@VZnX=sjZ}ICp^E@L&&4j zaPek5B0;RzUJCd|dg12d;0OO8h2}s;r?OPF`$>NUD5K)(G<&g4?<}qK9470whngt- z<#=-^V>$rTno4C6z=jQ4pi6 zk3GYig_u7*pLh`nIJXd5I6~Yu9*w zM0iuNnVT|?)m*O4;z3T#r_!uZm#%ZWj&)J{EE-V>oF)@L3BSWwoTVM=*Q1zQ+U6jl zuM)~3f?Xb1<|~P*_+@hhD`E!8J&M$HJ+7pWFWB7L1?{qiYM>#M)$L)Kq3T>^G0qzF z9pqF9;)NUpUVLZq)#SB!NBy6{GCv25{nh5Qdhb{dX7n*Se+LI!@A(C!R`bWt6=6@Rob> zg(F;zIoVbY2Qy{duC|wQr;k1G0njsp;O(4Z4gN9l9IgFLu8-S6UhZ_vU%L|I0vs)2 zG3f><`Dgk91nay>%l>rcqTa}_jiQ{Nk;BRGb^*Jyf-{{NbCdcaNSwzoaiu3FxkR|Ntp1Xa!;9a>g|MtoDG2buQ$nx*bL-uo1T zEV*`}ifA`!JEyh4J8qb&FrvL}t1`!>?f%q)9&}dhNA9;xzs=%-Ib(CtxjnJPyC>h- zP^RoZDHQbd$;?RPgIF{>*f7?$cC}+<#C!o9J_!54!a9FJ*pnNg@_)JXZ18_IfLwp7 zb`%_^|GLa|w3sTcfn9kF>;sPSzrKis7tQVIHBh~fo%Dks0Lyvue||%4*-$km>|6eBCNLP0ypNs-t?%DKT$M37OzAO+|IP%i~BX7 z?r%{g2CPKc63dl*UDQDwLWbzNX8Zn}I2#L*c`Q+HZ>e8${Ti;8p?&$4an+puze;JX zzUH^FI1AJ2oXT>y=IPE=S)Lspo%omE#C#|ww{m47D};1uO&muf3_^4mXo@LsYg!f!bdx!`^(^D&!*A-s~ zlN%T+U#l5y{%YIC0@>Dq+Nh22{-kd{$A8uCZmoc?BuDC-WEB??xy2=W6t1W>d zt_Tcyy26B1lzU7G@oH5*dTS4%qd^xum+)sv;g638at||DW7U$+mb6DacJcj@3u<1% zAQSU*Zob?Rcf2F+WlXZET~#=Gb1Y7xLQNDo%6f}i^)pwYkY4sXXevtv8tV03nfFBp zsd=@wmbzi=W$pX%`^>ORAWwKsMfCYZrtu|>N{Kw>oT^^0P~cWwF0QuRtV{lVQ-$EO z{hFAm0en_sT40Wzf<^dJhXH_i>ve2u&uFA-&PGu91zHZZNG&bl3-;;kgmYTyWTOfc z#uj#WnFq<@|JK`lIuV-wy^=#V)$_UjyBf0n)+>vjpEm32DR?MW1ikE)2`s244~{KF z921S5_5?|05O{B(BDSX9R*DY9`S#~@LqT?WIVh$=GUWkH-gkwW+O<#5A}@lvAa*MJ(R8(>8Pp>A{a_ES*dUL z1p0qV{E1c{V~$rX+=r9Olx=7UFEag#w)p~$8B|b<$DX4aol_d%kJG->)N5(9N4pDQf-ONTM`k-{1!WX%{mZW6r-6%_jR{J zyY%keg80Qy7Nt5|Ha!C^0nnA!l(LtnfFPNjLZ~ugD2u?W#BV_8q1cb06UKl+Ry)>; zcPSH81TGu$^|i=};6);omBXi2nLhQ@D9FB6sb$15WlSsSgu^#EK!@$gn2Q1^`Sy&) z4bo8VT&6NB{^6F&m(A#vvUXU&nDH!0Cw*kx_U~*fsiDHNzd;CBsKM)$%L7^MKEu&1 zuix-uY;-S)r_!T>g0DGT0Bz)v?&X8CEz3H_&RW+TmiW*FDdaNtxCt99uci8RJ6F-y z-xbLo1^s2RsM zSNZ-^y6s5VvH3<_)FBo%ZMr!Bi+2;J_<=gpo8)}5kUYNRQBMsA8jBgaY)$aVPw^p~7j_`KJqCp^j<;2u8SH5~1wfIU z)lQi=6pHQ7i-8*c0@UUwT`MD=Cg9L}V$tyos+o4Y;FST*{|`r3y1`ED~xp70Z>p8ak=Lbg?71h+OpM%c=lbNQ_u znRelFHlAG<9W~{v$$k;O%(|z&4tS0lvGF=-msw2_N6@^(yaYhK(>Ss%=pPn!VAfX2 zUbr#~JuYD+?rgf=w^rC_&!9`1OlW0|)V@2(QtO)jW}Yi?H7v`Q4NQFI5Z%*rq4&(M z(|INnZ?UoWlh^)Je)7G)4xAk1e6K|#a(xC*zEaTDM;pce19ahrkRkz#_X3!W98(KE zZ(s~(NOPDL)k-CBM;z6sus*g%vR!L9L@DRz8?|P>Z}ef57tE@Dl=-mt7HW!^!!v$R z)p7UZf8d}z$Jy^T*P-9WeMQo0@0B>DB?^b}oo%+XT;j+NL1R*$+SflTtbh883fcP4 zFk&Nti581+P!gBee2a84m}hADeATValB`iGIlGqbh41;kd>4Pci+HS+L9j~v@Zr@^ zE=PM$q7BO9BGiladT|eJfmet9DRpTSOB*oW_8QEhF3~YEsowSXsNk159UT^%FzPvf zfTW2BNe9g+agQ4qM22xw1{=7gS8FiR{$63fHN}3&l&1F~fP9D^)oR(N!yFwzQaOxK zFPaVEn|O<=gEg$=`QuEWO$qFlOWG-DSK!A#AG|3Y+nwfOcJp~k4`6||UTDjmh&7L;>G~H57*Q67Dty=iWxMiwDi5^t@Z;lu4;%lw3Ss+o^casZQ%e-P<->hkU(Pv-vW$AWzhl zm!)HcNQh5ZSXvVha3ri-RlzV-w83ot zXh0mJ0Arv&vwm1ihp4`Y`>Z9q3=dP&#P9(t;*imZ2wM@Kp8a@|pJg2)k=F^43(!NE zxah*7UB1Xoq4#K)j-bLi;_LTGE6?$Z`D--pzpSm?@C?KRo8jU5SYodb#-nG0{13zW ze%|BSjqL-h*-6MkD$nSxU#a7tSf__cTB_hJ>zvk>t3iR<33%+JRP0Nb(=dzVsGv@2 z6?3t_Q+)d1&QiyCej)2;f8Y1591&ZRS(dvr8z03!R4mA2z~bfOa@}Pd^_u`Y4~0-t zRyMh@Vq~R7t&brp5smby&=7!{wyS@!HnG0a^s~i8j{GOxK?F`H;M_;+$zcCLez@_y*lqg+fQL&LvzMi{q zIcPTwsEHN1mjwZtJgh!q`GSnA>4DlC$c}XV&=m)Mq|FnjVL1ut{4 z*mw8|SKm1l<@=T9Xp)#fGips7sP}x;)VF*enS3Bc<2K?s*s*LUH=YlSGYGB$3Z;3X zw-PJ;|J9W}wHFJry9J)NjQqavtVO z*|%WPYS2;|yus___q#w^JhQ@gCJa`_LoiLnAxcjdXmzIA=Jah$KsT-;JV2>jSGhLe zVkjFh$Va#;EM!@3X!#|rmdm#}g|yxh?$w&vghahefS#${fZP@QL_ba)m8aVWOx?Yo zk}J{#_cF(YtU2n{4 z1?udzEbnbcVo%h$hi_wk$LSNs>)Ij}#Alq1801?&erVF&#rpD5-VLmWZUB_P$1J`t zvFbAtD6Tqu1PcLg^_U&UBtuip_~zWhu72}jxUwM_2fxdz?J6jt476&`_WyiuZ0BQ! zwrbYeEA>ryPZPSTrs)AVlIrnA(AW{*v#mSDTjNE)1DzRbW>w?QIlniHY=mraEx-mU z^010m*<4!pLu;kt1;elW%B6mo)0> zs^vn|q+o{pvR`*rsB1$TzMnbR8c=u?BL@K*Nh>|SXg;D&?v?NBV6>;w$-#|~$@=CE zFg3|$sL1vbuBpwHEyfy_Kq3kq3~j8$6A2H3YiKmC(a2(+DnXjwtv|MPT>{cr!KY0Qg-_d^>HHsLvOB-UM5I57qRw zU`^bh2Q8xpmt;HOF<^e1&{BnNb{VAabuWw(9np#(9Xtlo%_t%vFDu)iAm{>Hu9lir z6&<3R3sf%$Hn!pGB(tW3fPqDE+r>C963k4}$eqg{-}Q5_wA}6#`9a3W1!@I1_pcZ# zP+}sez$NZ&Tulx6YDFUrxd|OHPmK6bR$nLKs>PHRQPcU^(S)6@237^7qb+8P`7NiU z-+F2?oF^ZhDPX0G_%QS=PmCJs_8>&nS0teC$xJ4@FNjLm6>gnyVT8If)1{kqP!fFo zLuuYHyMHQsLrLAG>Bewyv3UTb?R^Z7D{~N)kd7Apa5BnUdz($YNIWJ;E7@(>FgM7< zr%P?2!qe;BrZ=(YNleEy>9it1)9#y+5_eU#;nhe+`mu?`_oDq>$z#E8;+t_A9#gzw zZ8m1`1Ka`Tjae;k*ykNqnO(jgjJJ|WnZ;$<7M#s;TLYUxzh$zbYG>wufRC^ldvZC;ZKvI}(6`fL%4*pM z4e}y))I_ZaN|Kn}3N`PR51(p2MW=@S{`2u+L#@hqqCY8=#d<4P+3KnI*4xfQ%*OJd zb4a%D#k*jZyM0&q)IOimCKhrx2sf5gbr$%mA3-@(Dp^sM3 z)2G9`XBBsB+~%A@Ts}7S@u~}4fc#7rXWp-vjlH1^RX427e#dfdB>S&p1KRHsI>T>D zGkQgo4c7NY9Wjn8jCFM;mYUq*1q6+prEXaC^q6+-euuRkxm7j;6sUTn&6Lz5(^UK} zqb>*9PTV64Y99ahd#=;H*~$EHSpq11E$LHH9k9;F`eE&k zWIuD&f#^Yqb&ip_o`UTI+`%OMo3yWNZ_1^8H$z&vAzN-oR_A5eI>Z^~1a;9K8OY$I zx_;6>4gLe5PQ1;0q~U8rBYw{oU8C?gAeT7C{po#yvYeMeppCTpJ$MrSIo(v!-BaCU zj-@=z_`^-FIE(zHqL-{qW21Sw2(H3b`vr~!!YB-C}wTG_tC`@NpQ#o8Uf3f3H zUr<~ydxs03qmZ0YilazapoL;x{idh77My-@(W(0yNq~!mUAjmhNg6C!-W7hnd^W zgss}o`i$9`kl22)+^%)}+g)PJu)Ok5_{Xb+iT71}Bb$FzdrGKsyoo}Gpx^m*8zqRQ z-&fX4OvX2^us-`Qi!1lKUFZ07?ddxyX`{B`{nkbj1-=06ZUUf6!y+xej8WH!w?`Oo^D5nM6=B$ zK|a5X4bXU^kz?WSl9{u{)2SMt(cG*CSX;0MfHeV$B&7cuO+Jdb{km(Qi^v09IbM-h^g{-%QdMzIx zvbi_nQY>xhU1@3C{#Z}m^9)r#0KrwO)L?#k?ls4!Wn~mO? z4#>DKEL97opW>YTf`P}m<5TgscEB++sFeW|@$iIZ^Ab0Ra2-c}X1BDEz2lfi2(+|8 zqAM9{jMnPl*MKriVn7}tA%>E>{S}~UU~+P+bA|M}JV5eBjICp`M3PX=0{fBdWYd2( zjOwvRz^OYCFn#Z_kW#V94jn>6$8byq0?yP**K?)gv|HXiGCOW_=SPHE*`>h-pscoe zxM?cGeA|py5!F7KUiWzoT8h(?Q?abhVY>M=rTacgZ?z6YZi&T8ggLuhr5AXbE+d{k zU*0GnL{ERwed8Bfuy!FSYVjkG)I=kB-dxhC`fuZwgxKvE14bWKL#^M*(s%Mx+*}Cz zQTov5sUDhDDvckkJ?YG&qgd`1l@giT?~1m|g3EoI1$z`uXl-^6XCX`xzF%;9TS{kgwI*ZwX_%wLw|KZfgw3G0O_dQb`CzPUg^Rf(+8MMX<6Nq#^lmQE|B$bDyeBKBNVls; zw#+jg-AfZ*nR7U}R;cXJDZG#PA3%j_fc(kSL?0<`le@KjrMWoW@_CWo1Tk-~g?(O; zdPU^8?>eUGDW1PV2W?6HboWWz$XFE#nmkea6XGQu1xm*blqOS%tDrEYBY(vEm6T0S zFenu#m8;7sU15yV+ZJu5f05%YI$Ncd-=gI6!Wr1z=L5ZumyIqeDMW7HC1#Yo%xX)p zp+OSzmZ%D`^hCvPjm}vg?Jhx2vSVJ$9xO<+iT&_t5PB0XBuHAViBxk=)aW*_{N#Gy zN9>v9i+c%7U%ZfCP1{@oGl~|1}IH!fv#~8h^KGTsZPL{W)wdUnmkqWsbc^ z6hw0LaLztfzRUwYbeG@6JoLwQb4 z-0>p!hP~19=I8s|xnyN!Rq85YNL+$a};Kh|Y)mLM^8GWtQ6&E*EJa6Q) zvp=U;L3CAwrd=IB*nWf;thsF$)+IRFu9Wret*XRq*VfpIL|`xIfzO=$UppGLrd}c& zNIF0#x_9VNbHz3KF(Y);{Az{1Wmh2Hu?$Dg-9X!P6Bo9jJ6PjvZ|Y>I3o;}NJA>|< zA==hh;HCIg_xXzD*$zp{?72p8n78Sxl!|qdizHx*N4ov2*g=BUt0!PXk*(0i&Fte7 z7`SQLBxn21=d#V6G6+(uct(3&yV<5Q#Zs)Dg+{%T;Fqh>yZz_Rd&Ll_H^F*ZIh!*7 zYr&I$4TP8!Fy3^I;k&Cay&qR$r!WWOd6xHq9vdO*Rp~cmNtqvkHSg3ga~4dG@0m>} zU^60?t;rF=vb*KFlbYh>h5(!4TAABTebIW-YQ2oshcII|!%@Ljw6EXfB5E#g$}9nv z&IL~p=kx$0(nV~se#ihwiR~<@*B_SZxc9|axkEj2$_>pHv<)a1fBx9Rd4X4&z3KR4 z%<6&39>(=LX{fPd(L%ODiPlf}Z#Qjsk`2EW` z=@I=0^{A8SKAT>*JR$08QKD5?Lix`8x&u(N7+_klVq~im=mOjA6>#+|U>sA7UYaP> zaF83ne*79@8T6)F?i4f#%xbYgc8dqejf(S^>-(}tFpX+dtUMydsM zL@lv&?0eHNIEqegXPqe)66zUv(uWAEN??`#ao*Gdw5Q&au$34Dx~(Ggr_+CCAzVW85CLg5DR= zj}NjYoBoNwk9EzoaNJ;f^Fo*L-3lsMspZx{_l?x`;?eT;%vX=@;loDOZQZ^Bf{2+H zPKeN^(NSO5d)$^{uY^dq7!*}J`O41kz>AkCYlVrt|7BOHbiI||=P4ex-;J`cg7@tFQKYLoJ%aX~p#T@izC}a;oK?H4oq)Z!# z&Ff^OsHUrvbp~_>UT@On_cw2M=E~gd3D!$st<98|IrCD8I4%5B%RQDN+x4=M?rDSP zyWxgyno%3ZM9{==&MqYyQs3e?Y~XrbmrGakN5qS?ym@1zV=> zVRKhXwiDv|Laa5`GD=NmZ%2<3CKZ*&24{Z#yTsZG_3j2_XhF8b^T973dzM0JHkBK) z>U+cK-Xw7gjZ_4^++$4w;u94DfXK=e*1HE z)3TTsTdBAp@hl%Pyb;Qb@HRk^c#~3peCw!Pt*XQ?o049$cnKOTec9NB^8_5(2EE6ErNfrB2svz zD4+mQMpt1e^oYo?NXOsz+piUS7YAJ4S>lfym0{a|pmWCb)PJhwbxTo1gDCUOq9G{x zq2U!#9#-MPMghL1^u<#}pU}w--+8f7LaxfIr+S{7{2o)d8ST~07;xDy1D>ZuBBQDp zE4$x#H(!|wH^A9XY1y9#+g)!a$C1akrCq-v#rI7bu*5xY@ASv=cS{V^J>of|nx`}6 ziqhQ3-&bl&9a38HC|WiojUu%d3Bk^fEU6b$i|hBdUyJk8GW@h*>0lOBl*2n{(GukF zV%r@oG~<|wr#VS$EX-ow1t%UAY%TOwcm;reyvm1tI@u+j*p5LQpJxq_4ZWizvb4rH z5hyp%dSY3|;_53&zPZFG7OgQbCZW;6p6#H|vQzs9B}=5Iz_>&E#G1(HvYd8$Mt@P@ zEm1>H9FUjEkot5N|)0yH(NERQ1<$Ud?+IZ}L z#_@2zr;*DyA|Sk{(wqpYQrwSKo5rfHKACD_n0RCZ3b0UtzpE%-J3{^r=+8eT&K zy4`eKvNhrC6s3BQTC2BRAZF<5;q&fu<$dxQO*6TC(#??>;~>Igoz9x#1fCm`J6AJx z>w>yCU|Nz90WWodtEI)kW~R?nUj2#wZ!XO1YI}&ww#B_CORy&<4ViOnJmchh%paIMZ^yL*Qxy6l_-n$iEj$_k1GO`19Am+BG0Y zbfkih6cy-eKVs)>g=E|#D{zmy5yf=_BHNifDyc>zkA5Nzd}~ap*-L!z=}Vcy{hy_p zx=B#JfQgj%olAtKu7R*QYZ?Yai$Xl>%LG_ffz}}jP#HqoA;Hsi=j=P|MTPx;?deh1 zrCrr6JYo@PbD{q)O6HFJrk~H?qh8m9$b0lIreP?_SZJKc#bpx}Rb-tyxUy^Q<1J;^ z$=04a7W^aEs{@nevO?D(dBN-V5zQEQ2dxobPQePv2@yE*O@*ZM0T-RHztT4OHV@y6 zq)bL!+PO07t;HK^hq_^Vsu1DH3 zb8uO*fOH34M4wMi-WhL963Q59*;}6J<+g*a5PR*StNI`N;)>$IOS9@?@9%@9a|~!_ zxfdIZE@x`5Z4uaw^JL;xx&Ad7_LUB{h>fk6C9zt{D&0THf8%q}yN!(f`qfMgO++u4 zS8;8L<>lyAj74G7ieu;3wkitg^7FWO`IDXXDu0`2DB4A_z^o21XRUDTdZyrtG2V@Q zw}gqa{J4-D2flXQerz+8CJ-J_p|SSkjo;dAyfA-0a6Bq&)9zBZ6~4MBqR6uS zf=~;Qj`954?pAxR9!~wgapr94b<81Yf7Ie3YOYEcz5si-&1~t#D|IpDsd)?5p|oT&1dGQ{ znyI$&m%UWGc`~@{(ZefJ%X9x)W3p;ncWwx>CiDJ`6a4^JN|g{_{UN71fft6mNI#VB zd(0Rn<^lmbD2uAi0nHP?*LI3q7bj(ylZ~wMqKl%+QV_#fO?R2xd4F|H&g?wh>E1go zpXk)3vwgfYRK2Ht@rl@xv59PgN>Ra&2Qn4u?yVSXo{W*(v>M$#FmFvyrP-Ksy3L+WPu*)NJye@YMk^EEo+D%{VOh-C0@&Gf`!WbRof5P}ckB%rn7Q1QI_F z=iGr8=#ak{+-)h`S8bz}P@B2e01lF)y{O`7C807|X%4pO(}J1Rs#$&M{Ic?E zjg?+Lw&G1Ls!Ed^ME9iZX9Ygf$nc8b$(U;;gq*Hqjy9JIy<O?aS5ClQ*Eh*F8k=-sg2h@WBp`^e0AgIrU1semSkV!sfIa+WD4V% z(3+=v5GwP3X-viz$UJBzcvdEB{rL6C%t>ZHp25|M>*~Xx2TdCcOVDeEm`g|4T~4&? ztkU7Mue?is;(+}VWe;#dkaheNAa|S&Q;W`DD+-BLV5hUCgFZgoVp(VgibqL^0 zd18s-TH*XnPn=P%F@J+fZ{$A;PyB3eT=k zzGns{3}&_``wqb1)>=#*ynLf4!aJ5yfwtcFsjG^HJ#gK2Zz*en47sfMV}0v2L*N+U zP-5Fo`&%Nnh){un!W^!-h$i3$dw$=IoqffW3(Ai+Rh2#LVQ6IO6`PZ1zY9Xcz_rwe zP|?+09xS*--g}BDdp3}p>>8P}?BRf&)Zm!q@IcAWzW+eK(bGp?1E$8|9rT$0@kOaE z)hGUwc=ZuAWS}jVTo*`upEM5ow87*hv~R<6`F5Ybd^yNi*$cyF3(D*&6A}ZA{T~3i zKt{j2MLJ@L8_`?GN@nRbaX6HBG58(_77P_^H--1eY|I5ZK&R3nGk!x*4f4#7fN>lj z<|yi-X+Z9U9s!obB`yKNz}c15RZkO%Q37Ygp!I;e4)ru}ATN237*=nZGh_~aSg6Np z1`K!^z2NYjhUAz|n(qcIT1N45y*FqEw*zTi1Ui}z;k6CeM_i?kLk>$2A#G6Q#p&LJ zKg1|7<>HjDNuf?Qg$9N1C0IZ1&r>?O6r zeP$MDQH1dlF>`XB;dPZzct!y=tr#li^Ffxp4JjS8qRwmEM!r9yIC3L{yW8Lk*vbeIwXuu)jSi=?Nc z23%DN=Grhx-dXM$@@PWb1z}f(p{tt5Eh6E9rt;e5^o1p@ z!eJ02}KCq)vvs2mHV^A_YOw18_L`-`v%|u$%TzGWUZ8r;(P^0O+;1BDA zGSHauVI#a!+U}|hi0a)0Rewg*W8|bU)wLKr3YyrC(G^OLrZ*1dz2>rYMs)|YM#L1r z9(v(W2#ol{N^Rw)(Uh8u1lDR=%VH*iVHr1?jl!>RnlscO6;QDTQV6AHrqZy+#%%VO zc!$@pY2t2>CZ)|48KKAufi$rbRkYH=rnMC`oV zZp>?;32Tb#SiPR&cocjq74IBw2-Pko5}~oK*Qdm5PUpBu09mhFuQvM6Fy`QS^?~O$Hlv`nRdyAoPa1P z=zjBvWc=((r|5ZNMxsD(poEW3Hffl)_~=GEkkMRIrH`q(jDQhBfdLG`H~InuDx$H> z#DCLJXLg5AqfPxp;=Qof_lchY#gtfKMxaCr6j0iryAXRAB96vwzbYFMb8X_e*wGP& z<)E^w_l$9oj)9y)WCfgQF?z6p$U8&_RRMFL2I@7M?Evj&D50cTn-5CYdyWk#N*`F- zNYq4DDdJ=sbR^Cfhv7&^50V1FIb(hLO#!F|AGjNZmrjKWz03on1NMS5Y);YB0OAd4 zX3`p1q?2X^iv>3P~4z#0320&&@E?OxUrm zT@z|k<3+2#7$M`GdVQ-K|*xvIu6^gN`W)nUIyvkM_ znH&zfOgOkg<jGuQSneRqdclhlA&s9Zg&R-E zOkhzROgR}5WhllaV=TjA7=RF2CJ~5F3lSzO;nOt-RU0fAcrU3vVt6Dp9xw|PIB!tg z!Wf%}76&Z>&hEm*rX`lD66|L1g$8NPAXE%y*E-9{OF#%wG*q%lGpr`{K)DRFQ4uV4 zpOJBEal8wR!gmsq%(R+P;ANvL2GA*{ns5^X+#@Jh6BR)La3blsc<4&S$dnSnhfxL_ zDLr0Ir(SjB*Tc%grh1^QFou>z$~t1K*05@n_1Xn%n-M#h7FZM| zJf($r7P8;>^pt>N)mJ6ss?l>%x~Orb&u35KtiQe`oQ<1`)@ z)>8-z+|ibd8)=>!sW6R{|QgAM_w<}j)TVRm8;9aRSL&MjTUT#KdG?*e5i zrj|Lys0#)#uMV_lTkg~7wHF1I%Wu-KohD1Bn0gMFo_Rrx@eff|!jb=>VW=WMr0 zeIl1NLOU&lKYER0S5JC?&|t0fn2sTdv5Fllv{1WQ0$)I9Zbzz7j1R7+mEI`dv=;+j z;yrpl<`TW@-UUD|<@6_-j;~cP-3+U6m}_Z}k3j-3qmi`{Hkj1ep+me} zgy?(wMk`3#NfU}Xt&I+lt6Mj1;_gU_Yp{apdUt}<6VfVFOFgQ3n|`np(&87h609>s zp-?K_MWX4}I}IMf1~*!W+NL$&gQkVhD}J}!!IA7`1evA=9IREteJ&h)PAp4XzUEc^ z%=K~r_qlye(7UcQ>P-O<+Tz^f>V4yDsD~h2t))Ae_*PtF5)8Q7zH)9JA2Kex4bg`~ z31M5_!Y>L}81-f9=iBKo8zqt|qhKC|TlXU85u6olyL$*hyWV7f!mw9XQW*WY)6AJ( z(QF988LMHjhfxyT!u%3&zomg_PoL()m(}}=w zDp!b7tuSUf_-yN5(>mlv&`2G`)szO8m=9qTuc*vQmDQ%oq6n{;hMG$)Qot7CwgvZ^ zaRn27J;VSw?qN8zlLO%}FA}V0i9mD`l7{odT8GDE9U|)qD2kVm3V#3`1FA?X2D z5bLRV>Qlonb10EKOopJc2UrmlcQDXcSl_fI=t@bb>46X^hr?%1P^_Rn(i^Es3bZ<=rLhTlKutnZN|kjEvLO!_R`B9@>}jFK1DIP0hZ|c$ggSJK zk;bU2h!vW*xa*V!=wo9=Ee^d=*b_W;rZrQ-ZH<8&A_N9-_^@ks^~Gf^+G}lHqBjIp zdepVaeMD_+%qnZhG?=(>g?iTmm{-=Zo4)XoO(+2l;u8pjrqPs9lx_vbs77YgdP+M@ zV@xXrMP$jMaT_^Qf++px#~QRiBKHQJKQQrjB%BnWzFHLghO+Epb#yHnH0}ajM#}Cqt?AQ zP-X{S(?})tXy_vxDC#9U45MZeoE0!O0&;X& zgCJJMMW~gX7zze&J!h8Ohw&(0aL?i5d@2R%Ac~_gIedshZ)A2541-UP`F^fU}Xv#Y%D&ZC&AzLg1GP%}EFMP?^q z4n8S{y;cE)o#181^;pLei*v^r6pm0GGBynFp4w$2zWeTaiTBw{JFi;061Vs8eR429_W57l#_N9mw>gXSxMeW5(6t@AckfWdXVlfCviR zTm^v}A9z1}%DvTuBYh^}{e~9mkU(a{D*?30RO&SQLyH?7^nu(!R1`-YjZBQ5tyK#y zymyU`#>92&mtWon6ktIEOMW@?t8|DP!~# zGxen(Q$M_II~l|wJ|<-=+LontFb#nd4m;PC7yHfy*s(8^pP@4o3&(>;u^>&kcM-al z{{V^Z*D+)&GGi1vS(x}x!xEZfW*1{=1R#N+M!!h04}F9IsdiWm5O*@k4G9*eUN?3< zrkXdkOWw>Ofg70UgoOpW3z^?8r?RFKje>eX`GhJ>9n2uMhE~4U3ZciW*#l6hU(#%t z8FvIt0*3eAS=tRlS5EU8#o%zbv}4-Yw`P^ZV?NFx8J&Oi9(@cjV8C;K=H#_cpzdOS z5Q~wv$Os~1UNP4bl7Q`T*!n@1^jhqD)Wo=aE+a5}ZP;#C>v2gt*+~`+ScQnTn!g9c-?uZT`A~UnbEK@ThpxTE#lvDJJr#3%3BhJx z7Xt*$2g(Ho5P(>X;mmwYmbh1`fwQ)eN;VU?6N<>%hAf|YoNo)m2M?DTgEO)m98)W! zsaqp)a0hLJR3w8OOn~g|GL5`On)mNLp-VBC#!C>BKO)TZkY{)3AZArqxp9Q{m7L@3 zCyT@)%^1;Vp}y1eTgn<#b^AjPc*t!Xl+HJYpzJcF{5y)lM5Y24QG)4IjUYmjw1CGJ)$g4om$Xop<760yR@X~)Qyl*Sfm zr(p;dVPgn|pw&hIEJCgp20&#Rma?S@a++-b5Hz7I!obE4P=*qc;AP%vx`aHT33wX} zsl4e9fMqnao69yOEkIV`z367>v}nv^F zH|M;(b4c1>J-O`&g}Rw{eDz9%@)LRx-5ym02OjVd0UL6&DS6&$qlkaJ@m|c*Dk(Eb z+m`Tkmu4g7riE^y2H;Z@D%$OH!8LZKX-~XFTLz2_Xhsi5WNxz`4(h5cUNYwzQWkAh z(koVD23+b}U}K>;>egjBEDBIy%#?b=hlgd3j@o6aH1*G4kPPZ!VX>e)^{K4BJys6( zXZ|9+q10tBD*|R-3{dJijNmdAUjE%P-W%j4+tOx`7z3xO9o91|f8HZ85oK`5(WrFpCXWFC-_1Ax7G+c#Nri=Z0B* zjMTb;B*r3=Wj!ZQ-FbDD)2!8Gjo}d%jhj6Iglu933T85D;-2Q7Oij84Qs$sJAf zih$@4Z?sk#SwRsvRBU+3qQ$qH-+9_Ng6iyu2JF!dfmH`%6-BY3?qaaDAdjKsAZWOb znty*v%xlzLcF3RLZUtW3~4N99Z>~WAs`0hZ27&1{6Kpb37$2#AeBv zhrdYNSrpBW80e}h<^<`8vG=HpzJMiiRyIYRMjJLvUPEzks5G;P%-*n~xm8$Q^YEbUxHbk3#mS=dg!vmSTZK@9iHeGL6)AuG20}ASuvV$!}Fx$8c5s`xP;{h!>7wG&;ez- z_m7F~#>b(B)UGG2tGE%%640van!fcXt1?T`hBC%B>m1aBxY%_>!&=DhxP9*DA?-N-FeLbd@FtOfPr~%w^ zAnz!cTW&`#T?!*6T6l_~1RgBVq{hj_2ywvtLz&|7K>HX2OAYp)ntX$j=PVjNF=Kej zO^TPvyBK?klOE{ovx~v8ePVEV#*Q-t{6CDZ12&($&Zq`A4hOW%n2w}vQ#P<1ky9vO z&tl^@3?NLp-=K=hYCG4oW#R&<^qEMwz}gIJKtYcU7-)rqAsTwXqN=I~LZTE!UhvMf zD#vhq-ijZJlhn|ZG|_7Df53s8*7 zrfAFogd)acU8aFh-NN@Yu>up9QHt#}O>MkWu!@;T5Wc7zj%oSF$+s&U_U29sffxue z;eql{gyf+%s0bneY)fM;_nw*&w9$lsuqIilLmCXsUGCYeY~Ec8s$Ab`LYpaxt3K)cIwU=vf^8Y&Rg%Sh$us0K@D6ah8wHsy0l z&rQn`*JwfIP!UiuxECmwG>Q_&^6nDy%%!PKw7sQ~D-_ny1fHp-XLAm^f}pCJIS&t( z(#)s`xC;?KFx(A@$5kO(RirI>^Tv$9oH6d8QYK~J(WqF_h0mRiPn&o`x zR3ms=6SN_=hR8Fxg2^-2%7NuZ1JYAZR0N20)VrRuHkS;xl)Q;NsuQ%MQp^HwXvXUX zuT-_J(&u42%UYXIlzgMFkd-`%g-ixfu2f}j19GEA3fd#^#e2;lsq$?%GkICzZYloq zn#AtV6Jwsyn;xJxf!v|*JPszHei&xLY}VpAT}qMsPfEfEhD6jfN;(=dxhiN0yAuEc zVjy2p6yo%YVGAMj^_f+|sPx9nago$b*-q@SQ4|0yo#15*C1E>3ZGE~yNjgo(Ex8fI zB}!TwD{uBOabPW=>g;B=4cwjP=bqvf!hol4gS_Fmfvv9_j_Vu^W|>DqA_fHHQaT!n z71sV)O|Y#etaV*Fi3ekIK1`*t_+|Xg&Z|dorp(Eo6=C^PwEXOz`i!9&IBhER zW{kC}6q`Q5}ewkw`ap7g%t> zINU_v2|0>mQyk)CGVhUqfaRHUJNCVH&A9RWgi0od)Cv3y8>bDf94_z zQBZRbKshNl$Oy4i8I!67{_|>bm+f;NEt+J`EeWrp%#X2pniTiBj~Zzh&7Shw$ZI~+ zD)mAI#Kr(LexN{zT<#(i4n+gV<3hy1TTn9cGa<1X9wx+q3*S)dGlaEv48oevY259r zea+O+!NdK*?k1z4T8{13gktUkQr~%eFyYmE?$gyg4k0p?R|;&Y=tTS_3g*PPgF0$I zK`;?%ku?1b@hb)cN?MtO8VlfZ#B~RmvprKl`^#|N=2r`iYq0P1(~ z5Pxz{UZFIl$H?bGl1$8uEo+bsyj(exD8@Q&J;XpUGChYHw&^_=81GSx1F3*Ty{6{l z7O*`cSca-$@EJ0p)%>m?Y+D|XG2FnTV>Dz}J>}u?dfW?6Vj%@u;*bPYI@Mzo)!L=L zLw(^vse8*izynLl(xskz%g$6lF_a>Ri0kWFxhQ5`L@2t9rikPW_J(A}ZCHuL@bop< zm>!1`lkko{nJ7Gbm604WtbA%vtyI*e+xtQot3i_tQMrH$5qdNtfa+$30lLjCb9S>r z6PT!jQkVkRfUK`bmWPmhwq+@rF^Q@7fMcNrKt%K!ok^FTj0!0wf?g^yGsenGbd{8a zo*k1tY|s;`P!&8};@}7Yj9YG#N?f%I4mF`Wm|<33Fpw@3SbR?m9n3h|&v{s!&-`1< z%w;#20W9*aULOl{#ZcEP1xhywQqqu_r3@uaa`kDA*O9X|W}1MMf@{c3THBWQ%ETn^ zEyvPY!gAcyfIz8SfLn#KfU%aPWU&i~VGxB9$08+(Qp^BPR0DZ@tj#M9sM%(nrk+>I z)QCnoYrGuD$tVf=m&n`_S?U!Hw?X_+FT;Y);V;*d#e~YBAZ=FG#4uy1|czD>XYYkFJo+oKjgc7YmC( zqSH|=rZNzOZ57gZYTd-FjGc*x1`>N1nK+grFmDPnWfR56ziF!}Rfvgg)@u-(SV5>^ z<-a1zRLuzmLLP4^Pc7h;E12YOX|w=KFxLGgucwf^mNuHAs!M)UWxp$jv;!F(=J1g% zWf@{r9Jc3B!Cbe1Z7Y|gO*_I&-ie#TRnFQN%4O~**U!^8mPZSaGW=2T5U>mK49c`qZTld(hIaNJ;K;d6LR`x~Um_ei}MY|i&nDJT7OOmhqdqJY;RqbXg8!pu{hj0xoY)oqTftHoAFc+uA zeyNZE6HrsIF)@OObqlay)NF1maVS%$peC)&3l=91&w1JHg#ZL7z~FT$dfkDeIJ9pU z5|&SxI?gPrK3wLQbh(iduVdK2{**wudslc)PhGB_rn*b-aB05qoJT8cqha+hH3nf( z>6}#wqwWk`oHFIQ%!a?WXrID{uT@+Mw_us5q*@M5gqYP~U{yf5UC6T!V+OGIy-j*l zaXL#Kfm#!Y!+P;Oe(JFoCQVMQYC86raO7fyg<}pB3Z~oM9qqgGP4faq7$(s!Gj5R3_$Bsh03-c zNWbRV1Ki32p%TXSKJ)2u?`$XUVghKZFWf+2Jgdyi1vPT06-g!|wxMu6f=zu4;riG4 zXt$&dzJ_p)+MflU)@B7ZxKJLqT!9^8b<}1AzYi1U(rVYBnT}F$sK$-fJH6z}T!^P& z#Y`=Tt1w{;f{fb_mT5`(N6~g7s@u``9?&}yrjxb8HW9ZwQ0`3Zv?a3xWRV{RBaA36 z+f?EM>&lD)<$X^kCWJT&yA>r)tq^6!VNHQo85?sHWf^hou0Q9I5~9@`xzpNZ&{$(_ zC!wxSgEG3BBXJY)E(ti?Lfu6;o*xvz3JlgDOdufLh}2^?1DPvQ8f%(~EChTmG9wVn zF!9(9EVXVamK;BX{ws&NI!k6#26xcpg&k|G#lxUP##DPvL^2io8NF3@z4%)DVt z7?GW?U?v38IPNV&{=_pL3|R7TDDBynX1X|@{?YMJ$fa+k^4zeRpcse%3WrD>_muO* zU80=B4qd&W;gI4dQpS96G5boeBH`gdZONCzIl2HDkph~Eps|D#P_l0eJPHVw z4CeM6~?eN7gMiRz;~D>B@%mtaE5!l6`w=AIxz)hijOToDcGh1=~l8j3N( za*Kh=iAxXhieYSbG;nNTIhm#9p0nklE>ZGn;NvkO`bKSxs;CnH0$R;jc8n}dD|1_y zmbC@JdqSCEDkr0PN_5Q%VQi2DfCviMl+xZ<+6BdZ`BJpi2*hDLMD*MS$%1KHf!5_g zPz5sD4Kjtzp(Y!T219NRuo`Uv^=e*nN3h=)dM{kr8b2OBtXF2 z(As6B5EiN5k<~90A~ezjtT2*b5m_ozN)c$yMs}1V0SH4FCBj&d9oUG^Yn0HMLn1UF z)!CXdh;&-Q?KNZCP$11Yf$cmTELJvr#mR~mnl58&2>hrM^4#6Tbk_*TxPghlwxW8^ zABol>&P|G_xK)$9E0mbdx{RfoUgo@)(i@?T!!S%o(Bf}!l%duPkLxu6%%vaI2k`?QeXqQHOnesB zh8&&rv~iTCV{ALm8xalKWWmLhuSt*N1(`6ml07D05K)g_lM^U@jw3r1$=jihKw;HP zY-Kg~nlq^PfpU>uWiyBG3bhDVJ8G9UmsZ*vAbZ;!66?Dd>R50SxG#m%bycAQCVI72b|L&WgD22i^G z)&ZU#N^};x5!lQOgW_ zHa}Y9N@1{xcG!ZO-9s2D3MmVAU?kd2W5q@~E2LA#<@VA~{6dFNgH$l+A$m|ch#^z2O5D8$A*K%(X_yR60(P`it_<&r+rhvIPP z&526g=^`Q^McF{0J47s79)W#*J!0=`W+iU32kay4VMesbe$5OSHQ@KK6)3p;6y zY{kcy`X#+62p&ILDrdb3z5gS-n8^ z6AN(zRwwkGsB||IPtMi!GZOT(e&*thpt{rj`Fj|>+Fw8=cWGWlyRGGP1enEb)G77` z`Bz#Hk+#sO-Pxe=Lblhw*BISK{$j>ZH9InqMy$iXhl$+(0D%b`tsiTKWXw*ihP{EP zn2UG&MBRY^7^H!Xe&#a~={kGdL|TJcUX|b8XmTt2$IX(E8a6O^r~sy8-@F%V4B~iT7Zy?!bW^yPa)LOn0|VK% zYNI~|&qlbO5s%r{W#F=snep*F9$uw-i1;|BbVoS4sRBDGR|`TbWo%9IqGJyfEBXD|wvlUd60CPJz zu?q0aJ2y#r(kRN5A#8xkMwaKuK(0V>P~gh$d&8jQ>|=N(5*%&^ytlIswe}Erhb#1$ za=EpX{)0G$G!o`zG*Im;sDrqQcO0_fYsT!Rar`e=E+Rb);-}&KXaqPU#dp`kWt>7A zWHHYW3jzR@k!Pak{vr~^rju}y0;KTNn09jkK9LF}4u*OlUBuUApipQS5yge(jrB}&}IVju|%r9y(I ztlag(v?N^8kg+7gtk-A_6UvMlO2D}FKrzdI5J1WRfpN=OwL%2BQ`5_7Vxg4`+f1dD zE*EPvYJeMs;aTY>7Rfyo$lN8Ra-@dgaSF7gl+cq`3p_djno?d_ODJ5_@D!+2!tHP- z&{c>kT(q7WO=~?<*UMeXFou?pjpvCGZ6<<1ff(E@g@krPS8(G5zgQnF%Jhj!2$cqy zOH?BbM##|P%n;0IwcN%^$cA`qtjBnA@S^>rW8&1WdE#RhcZw{$RYy4CeQwg;dUS|H z+m@p!&EN|xa-%K0o56F_%DGcONx7x0O|O+KSalidlrB(~Zd^Kfnt+K%kObTVowo5v zlx4uuo^Lnhw<>8{!UGBUMk|7&tZaFA67xg6(!8ozsA}Oc+TOMhWJ>8!VR08dmD&Yb z?m6wx^Ta>JIUe&=EryyF^ko)17+)b=U1m}9V>+Vb;LF`*6NpEkrq&KC0er)CgAO2Z zwTSIm2Vou1IM|7iRAdL$?H4*L4Vnd}Lu@8KAsJk6892tfq&q>C2e=V|x#D5JV+&!% z-NYqEL)B)!Az)Xvo+fSkKy!mA+zO$A^$F-x81M~q=9@nwWJ|fHjK}w$FRe&Sc*eJ9 zN#pTM*ck?zDx_AUGi$83;x|z=G4Bq&;WQKyVy_a3lYRYD)2T<#G2q15vh2a`2Xa(U zCTX+vm~@i!hkEr9`?+$E-E7l}#hIlp+iv2`KA2iqNgqktMGmSAtsAiZz zw@drXYzW398z^l-+|5K7<1&EvaM)Oi#1qs;QdI7S7WIbo!X>R8r5d~UnB6Ts3KPU>dFc@Ql$IG@S7>1qow!cZT^CK8vbLvFG{5Wh!cFvIfuqZ=}VW9_&@S8I2Z!xK#-w zYp8>z#bXh=5y&3$gcSpFF@fn1WsUn|{@I|>j@L>=CDhdOUDnK;~ ziY!_a(9~^KUi_;605G_*JAo~WA)zWFeC!3l!W8YRe$n`BOzJglbsvnxU2%ap^>COl zwRS5%5Y33IVAC4aGGz)+^2F}@OgPu2ktuyE2_&%saM);BW{H*Wbx4?n;w&5;j5u#6 zrTa(GY){6b8# z37?zxl)6-q&~dfEekX~u<2x=+tdolTI*J{5J3Pqv?DbuYsi8G{^omEQ8;sz#F{lVu z12X;{l$AP=^;m~&xF_HofBjrT3!dU(%}>B_sM9e*?~m40U3W7l3&mcRQid-X!lry@ zf94*>3_pqSp*m*a3x9n=ZeZ4+^b;Fzw=txHFk!=$8G_|@8=q*rMK&yflNY9;2du72 zNV~8qTJl2Lavi>tLKMO(`k3C(j(w)Y2ywJW0?ZiDtC2^f76QT=E?%=jB27fJQH&n( zn>c{oFepHv8h-NA*@H-xziBAKFPaHRC!rX;F>*^Kzh)Wc_5 zgL8*$$J0U#tmO|$n-i2ONsOkAhN{8%-kn&0sVYyk#*+g_>We ziK`$Ig?rBp47}#$ouf1DD->*wW{xNcLV9&Wps|{pd?`Ph{yWxN4qqXI0}@TyA^rKGDTkeZgD7joZe zOEom6lx|p>qN+uJ^oCPITBYRz1;ilH))4m&n8Zy6YHi@C0-1f~tr);+62O5o>cQ69{{sl?uMlGlJb?E;V&A z-3B8IxKRc_!;1d^FqQ-N5a;zxIEcD2mFVsuIBk2vu177o?<~z6wv~QB1^o<7UV)ozH2LgvwCt zWvRKpJ^6lkn0!}P>v0MlHE`tx9O;@9Ps}EK96-s8PacDeDzdV4y~I}@gF>TYb7B*g)&Y@Nt&Z^*ITy1=3dh9!I>pp4oeYtv%Ej(h7YK(D|uwm;I z@aKHGUrQ&*6hz{YS2-Ry`AlWUMX_le2|L6`HmXh8)evonE$Z28dBE`Mats0Toy$47 zgEq$)MFyr}olXoz(N9^E7Wpv~GGGp?j4J!p%np?34{L?afJk&>q+P*gdW-_*?vN)G#6&5-U%j%;O8ppR~o5nrCnDa2bFzoyYk zltlyRu{dDOlv%GxC%nA6kGy=DRg%~psth0orY+E^pPN=H79|^Xg9_=bP224q^66?I z&sjQX5%WQw#{+24fqP zTOA0Rj2${3{{S?rwzwvfRkd}B>tm!BtDcc_7w(vpS#cM_W(`z2!q^dmYO&URL50klvmpkAB8%vg&(ue4%FxubIBj5KwSCcK41QbuNN z%GTs}i=T?djy(kTH5(Ta*m14V+Bm&J1J+?IPDd!C{F%c(1B(|8psRXX`j4#Mp{f&2 zw;{HnbsXC%)Ia1$dZqCxEft@V8WeWl>ug*g_+UHE;nB4_@Xc6O%?&16NPHY&Jy6rs$jYjIhVYzC4Vl z=w}~-zce`ZaX4)Ljz54$pM&uh{{V*N7_zrixqN#e6zRh_VKJTnuGSq1A)&ZALF^)oqq&c{iHS)mdsqF}2I|wpyCA$TI zxP=7zV(TZW#7sI+RA<9utTeK+H)y9bI}7y898qr-H;P=GIVcI8EQQn~D^Uh}7j2P2Y)VoT1fyKiZ=dsco08J^X5+;Q7 zb)F_&P1Hhj8|e!z3E|_Kj?@1D3LzFm>SwFT>6>z)%Xk}zvo9f4omLbi2y!`Qfijq0 zQ)w^=o*h9wWJ@ODTd8nV7e*IGD;L7+yZ{&uS?ULos1*bn;cRyRS`hyL5gSybjgZR9 zz)rBsX;A5u)dq`}(1FZ>a>)Wv)@GqX6%)MJ2}x3(k1K^`6L6I<-I>2Iu)56*XNf6c zcY$%#Cy1J{RNUMMc?}V@T(K&|+A%QPQ;$iCC$DG@Dl>Z==u2)?&@h^LIwz)UQ#>}@ z#eRZqK*Lq#^-bldSeWo@h5B_7zlHUfMqNfAV$BwrVS6CJiBPe#1;M9DfaWFwe6(R< z%Wh*#zFW$knRtqrG+eZ?D`{_1uvwjJmFy)iI+w^5=j!Auebm{CC+lLfL3%zUPlN8%j5QA;pk zK&NIM;=dK44UXn;m~k)+OUq*}RNs;Dggi$PsYb)BKu{(jv9$9VQ&daY7=7#>c+Umj zSeVYm1jmUqBI!{WbQU6xyFq%CEIs)epg9|*YCgnF?kI65AK7=F8j|_4<-X+1+fo2N z@xTJCpZJ8GC7*bzK0rS4!4yaKjlFC-Tr2Z*63Kg@$Dxihg~Yu-=4%GfsUGo|jU-P< zwHNFmu~55x2P`~3&t%REig9}pzqH}VTV;w zP^ap)RFGvjkPX z);pPrab)p<)<5DMAez%~F2kgE+$kbf`ZS0{1CZ5I0`MayD^rYVVSVOqDea61#1n9P z)NDLJ%8qPK8;{`|jp67OT4eS!CU?q7*%(*&sZ3?H!YGc>c%BPgdel=05euGzE5C?F z-QvDSP})d4drbIPsZIWn^gN22Q$$0VGP~qwe*ud#7+I=RB6S3Sc`1q5asy+^mf$RT z5@-uBas#~I$=Jh(HG{MT^-WnW<}cy3Dvd%8Ck=tQ5a7<|Al+ff$7CMn5t3~$H1s)} zpC_hzgbkk`wa)}5{+1KN$~)XRIDo`m%~;nej-oPyFN4?KFeDFYZa^?5A*v}Z(6a*F zB8xEi#fL~)nU6>?iyaIFGLmMF6@!bIM-7q63xkTlUm2&lpNBNkwju+`m#h7!xy7bqp-YLCGgG8g$~!{tDpE~Lv>}bcT)?6bmoFS4 zH=mqp9}>*mLg0wn%EB51P)}K@E_wv1=($`w69X}ej~CWos#XPQY63%6(5_Z8^28YF zdd6%-nMz^s7E;ZcTX{C;w>v`e%ejm*%E>h0F`p|%#wrt*YGZJtkqHKVX}A?lK5A%EeNkDJ)Q$V1rnmj#Ui`fszFrwN2q_fl^$imb*Z!323O=j0WM? z>4!za&qf6iLe8}bxorUDZOeJLAPl~Avcw`Y7|zuK194jcVKoCNT(c>lsYY7ED9=!- zu#8ltz#$X|NzyRKVlcaeEV)43vj{U+tC5y21G#`1Z8xcAX@akprc|RhmniZjDo`R( zxleNNX`YiTRHFxn<)J+=HNvJ}Eu{(Hm<^zr_6+0NY_UO>66@mC; z0J9E2NQ|D705wpcr4e!1aj2Pt!#S%qSzWNTD2tZ^v!76ls+Jk) zZctcUL6(1Jn+t&>La2Rx{u*g?mg%JD6(!0 zb!O0iw9Ap~sZt|1+(#Tjh7>1-nwZ!yJ>xr9Nv{bbw5_`dZKtt=9w1&WOeo;p#>C{Y zxDGIfLa_`n?CZlxVLPlNco_|K@Vc=4$~cJ z2)Epc!a6y0V8l@jqT}7|M;V zf|5Pwyd9W`evKEfhuV9PBPd@5OR#Q&Vo*beQa!}R&1etarlEHcwlPNGm_nn|Y{&j5 z60Yr(QUkGhiSiY8EZu2h63UpL{6uTjVgTB9YwFR4GBzOl#6f5j6CAGbg8;yhdzqcH z>Ru-xRLB4xU4gpQH$;cHvH!{5z66kP3;oX)`N z0bA2EGx)jk=`GT_$3a?yP9zV@Tz}k|_?8k$z>dF3{8ghN$CL{z7#r2JL>{IQauVvn zqf|8-KWN?H5K0|tZvY$1ftH*D6BDx_`MQgY0o7khj6wXk)_o)s+T*rgPo%?s@qnXr zdPE2;Fg=LcFlDOM{LLBP!$xtS*!#!Gb{(jna~b$2&91U8;VYdoJ_-;0m+a*O#oL&R@c}(N*EW*xPj9K_c;(nwdOfK56xGOWI(i2doO$@aa4cx8g zify0*gdwUOGxH1&aJE^cpjR_fLUIc-*a=JowgM0WLNREScLM_$zMj+ag8M)Xj*yoM zvr3YB%X2iX%fV5LkYfY_9WW|$+nq~qAWjgNNolcSC9Q~RrR8`IT7??K^~Gbn2{*9_ z5Zwq%K&V6%%x0r;YJOSetBHd^l@6(?gd=X#&`cIbd01sU2OjVQ^zycp(MrQpep|~) zT&X6!uqdG@PToyMR?^ME0ZFkEjI%3g`LGelh+B99(VnSL5&(fQMYC`|)52{+2N1KE zaKOOAro<)@&v*|yJhz)vu~T>h)Ld$6U6=}KgTvOdqM4!w2IWdHgybs3^$upGhzJwW zQq4lJX}E3zE^RibZfz_>Qn_wH|qWEjyZczD<_vSYS7x|uj!w5(~PoJV+DA+vn8wv%g158?D&fc|ae zPr>r#RS!4@%0?qs)DsgA8=D#%0PPCBj-#QOQO>qHqwzTcQ=fW>9a9EvR%w*&QIi6$ zBm%a%l;k?z*6a`_HQPyPsp(V**XoF>q%kDdZKv=d!79O{aamPM8cu>0`Ar#@68!cA ze6Qi_AUUnh)A)BqF08No!=bLR70q-Jb#KyEz-`_qKz5kZ0KX5B|nBU=@4alH@; z-ZnHWD`|x>pB0EV7sf1yXu{QIL3`1T88tSm>^j1n8JwB03k{EC871vN2o3M<#KF|);Tf>t(m*`@) zA!pjA#6i`gSs)Uz*)A$64U*5W-Uol1exl>PLIA3ccz+QXu<2172A3mHgQ_rw>4Xse z;Xbz?v>6bqSo=yJ_3{~)$3j>-4yI{eO4;ltZDF)2Ut(Yi29P3!B!#Jg#p7K==pa@3 z9gomVj>qy@Xm=1lRR`}E8MReku!TvnycS?kcHH$bT?p0o5YK>eFvbUJ zF|lMhabU)BR+8GLY>0I}kF??VdnYMp_9n@KfEY50@1kEb{D?`0w*vfz`B67f0K2GN zPlA?x+h}wRU;_XfM{{6~u~AI{sQblGCZY|Epm9ZRWWwdusV)rE>DRqQ97>V6+B(+| zs2a8@ID6E{QO()ycQR@!G8R?tJI8d?dIQ!6ZFvFF+GAT}<)w(1v~0OT34`#=J|75y zvv+x)ipXC!Mrc;F8Y8?fgTl}1Ke$HCkH%DHMHORu<&O?riIgR}`dPaXF|jR&YHJG@ zh~a<-`A|l{dd_yI6GlSx-4iSmT+M!M%(WTO!)6`+Zm2xa*&O9aCDAg+u;y+9f zA+ypbQ=@WWP!$g6sfMmH_L_v+^#}8LM4w6)^=^v>`lF04PD1i+h;Z1iAuaRIEK?{{R?MI?P$JzLP)+l`QrV zkottZ`GO!bE)#g%tmAkyTFXoiNyVi6Bk>w+PN9r;Iv{*&;+d| zwh2;}?dZvawSL zf#o5DA%n%UEdCA2VUCTeIFURXiZJu=^TF5pyzlRa>NDiSprXG9=Io|>D=-fCKgUsx7guO-2! z$xuKKB5oR&4!XM#mlPp8cZChGnvA11mUfptT&`C=CIh&XWhW{#c}53bRAsL^K5JU? z^#)PqLvkFd=c0a9!#11p^zzzm=P-%ufs%Sk%QB|Z)h$EsC%>S81Ki!l{tW!@cb4``XN_=qU1Y^*53 z;Ztlx1O{!ug@X#A3glt+o~dd%kYPMlIQ%*q=wU8QIGsqlnQ?KNw0c@5SD-YLGGWM6 z*e9fXJX*JKV9tj=KbyFWsj0=sMHvCqq6Feqx+yntIF1z<8=)HpM_jw0=po7(OkWI9 z^$6Y@2kJUQmBBF+e(@E3%y;il_dK1VqyA(^O#(8o7a2)MHYI{3T-Jtqo0qSbrVda)F1>&xlNTLaPYlH} zgGCQUoI;ktsHL8bGpKiUZ76ENu?_7usuvh_23{~Ilh@i1HXB26TbpDG9f{K{P%*Na zTK?vvuwrtcD>`0te?*5J9VM1x3aW8vsf#t~a-P?`D`1U*>laZu6rZ$4Qr;j!1=B}e z*i0NY6$QgN1+77_eWN~6kqaR`Yu;O|Y*>bJ8^bdS@XLuXgO^t9ZmJ!6GU-Kb`fg!d zFO{>SGLJ#+{p0v&1*%Z%013hz6{uNuJG2!Q{&A{srqkA-`#_lvOi!#H#8j?%H)cBLDpWo`g@jyyX~v?u0M&5WBNC}S z;T5z4t3*BGo`gU(&x>6tR7*!U6S_m5Qj* z?@){+=qf<4%egW03T?FQ3J&dZ$yC&1FY*&nl|w0N?;j8h*qy^Q2=11+{{XX094mxy z#k+-^KOCQxrM32otF+@T_>+pgfQ{|9u$a&nOlqz6j91vo z?PuNtvE@TyW@HeOK~|mPnkf2zwaqtuW^&-6K%MV%9j=XiwwVX+{@_PYZWpjz{U@S@ zpK}(4_ljJC+w>BbOjKHJu2G^5A86Sz5Qt${ejU?Bq%?iVi{mN^t0b8E(5ir->|*2^ zGQAGu35{5cM4IkpMhaKAZ=@w?yZ~<%jl3j4~K&S00oo1 z&mFAdP{+CniE#|vW>bkfD5C8+Jls2sTr!tKsB2-6<6%ty0M0!xJyV6whaO_dmhBuJjLJBL#de4JqTt3jWH!W8A7KZ9_>cbp zi4)Npi6XD03U05-c;SW>Vg=Zbi)OZ4zO-i(!sZ>&ozi|2_@V^kczi_rIGhI)Z@_1K zC-yh3C*nL6p992C-HUkXT7d`Hh{2&E-g^#4#TeO|m#B<8MK~O{Q7bS%SiTT9F=Su> zqdYId@#32JLu0H$SzJUJm;qHZ;9@7_KPvK5iB%sr;R}hz$|GjsN>vq#m^?<_rI17o zh^rW=`yHWR=`f}wW4l3@hpOov!3Zg4jFt6`h3Fx7^@_MSd#0JOXv=YP=M3OnTqWDF5cn*>b(pxDT#IoL=?rvg z5rnBwRS`G149|ex7b`ga5`*O|vxVZ6ClZtJ&N)Ygl|eHm?Sbr0BZdS%GY#*tm6lfR z5TROv%7}W+4`LV07)r--^TMhWLYRq#jl<#X9o}fgP!)!Nfrus(W3;S>25@@`;;>$T zL19RUF$GaA%&YV7&hji@;lS@x^QggER$A0jD8QIV5WA8mMS&O)W};etQDZF#9H@d| zIcgO`(MT}0Ey4{6Sd1EH=1W>ICrPg@8KVH2%`7U1RHp`bj7%OO0(fXamzo_?gt5w{ z%_0)kA(bz4EvKSyb7)&G@MBr1!g0c{Mtb>r=c46W@}mQ1l#-!2At?!Jj1u7wEiA!h zWj)1eikPl?jH5j;yj2^(A!FpeWIm>6*SE)bH#8>2-@Pkfj5B7r4Cn;r)f>g zcwr-zG`VXw=RnU~-<@wP@}bJtl})DHgA1GUqdW52TA95~stpw=%jdMCEJ~DRiC$gi z)*%Zlz#ax}LqQ$+TXLbwnre(Xb&13U1!H-za>U$YRZOq)P=^4;i z^wj*yFx@X$Ux!de;6Mq!qGICsb#|>w12D^vw8+^Gy{;;`!<0|qUr5~=CSDaACX3R>KX8IYHwH!fI)#;0dv+*LAs;762lZY8wthLaEvW={f+q8ZaMY#uU zqa46us*jr;le)(WP-JZ_)Ib}4lG5hOUO#;KKU$pTa zuBJ-`2Ct}xC1Z9d^>+si!WJ)i8({#%238g)4pfR(X^|gZq7P`<@?31$LN8Meq6bTv zD5aV`rxBBfZ0LhR?re!l&3i!XqhWo_#Qy+>juQ(2Q*vO*Y|Prm)??x)8`)Uu92PnU z{KD)BCur{AyAo7VnUT=rebr#mNLpsl4wf^BVm6>U0AY0jt5At9!uv)h+gDh@dTl9U z=Bsim+G64HX+@evst7x&fQ^}=_IT-$SQaU&j3aehp7U+FD-hHyMF818n3<@GVE`nk zi05%JC6c3aadCjFW}^gvh!u8#1H2@d0~;__#LG2DmGS`JNJmzPRGXJHxd2=q!tTU; z94k7ZXRgt*gOf8px0(1%h4EP(>SS^1#g$Aragv_5t%G!#Sopbf7QOT@K>=Xv#AaWh zX+oywcy5B+I(LBcQ+$j%z|wc`$>@|KWg^|bu!?$7fq@1n-Jk}R7hhSZica=K1}mE; z!GSJ~%Rth&`h{ZWX8kpIgjH2JqVw}fwCm6@Pe{cX0uB@a9}w!aiZh7!N)phc}BMoM#P7mT(+eR}i!C?l^0} z>vJ+@)SIlxqKX(389m@;vph7OD!{mpysU8eg`sTKF9Zs;-gO3P7d0)-tjnFDN#Yw2 z1vdo}BQqFiN;2Qcw=e|XmaNMNb@qk0kXNLj2!p~i<|b`WVk}GqlL>eRHo5r*Rx5DT&wfW#(j|#zrkTGjrrfuKmeW|$ zVGUDBy~4YVi#L5_?1uqLkXyAO1a^b>`bhxVzxLj0osO#ec+pN1C?i35f>Z{j>z>0 z`!L?+eojr=V@@m8{lo>C6wvJ%F^o()p0TY#9XeDQb1%G6!~>V2brTDtC%;H>WM>C> z*;s0bf)^wv(U|UFf-|yNwl3hX` zItAIMn(**K?WS;yAXg6 zQ}np`vT7!R><6%mjVVAR3u99oFkJ%N&(1527y<7E%`ONr21d3af0V{6xc>g}IF1>g zhRazHTVi8IzK~E*2n0u-9ze`BZBd&m1@z-BVMl1GftAx;^gh$XLK7GTy0oJO?rLJi zi%NrYDd@$1(cO?_cOvZB>l+q~xY)Y5vDm{GV0XArK}KW7w%b(4kP@cE5ida_RNtt%V@YZUtT?T) zJj!-I91;;KBuIF%XX!T`4mNy}Nqp11p{bJ%Y#LRjL55GbhBY;(mRU2xEj5>6W zlNe^{+NPD=ZWG#}4bxN$lTpTQEm<*7Ll`(^C71Sr9YCZkev!%D41e1~Di2ws>?Tac zjjDSNrf3wYLzv}aj8G^*Aenq;6{i^JedXB<8sKz>$sCdR43VP?bu)7n1|lOnn>G**oK>K^cTDhKkKfP;Lm8Tw5e2jYj@3W%xJ zF#}JgR_?|YJB_8|`%U=~v4AOIGUYa4x&o?q1~43lCe(0bYwou)VQ&vt)o-B_fy-F9 z+zO|@p+5-Y!G0L3G~+mXY$saID}>^d<;2NQy&ILCZfSO*xrAgRyf4PvcAv!lFc5UQ zjevm0z=soSSYIe+?=<5w_;==c`oy;t9|~d4uyI@p5x(1rqlzujOxMLIUW*@!VM2sz zd`fMmlcl>DTj;To32nq7kl%QZ#Rhq&jCZYs@i>i|#3xGJLx_XeL#(iu!x}bWvZuTV z50STZ*n0184pcSj}BeVz`^7CVm>lX=6DM)6E|}P zM`g+;EZk{Mf@DXmaqu>m7397|bTv4>6|FL~%9NZ${5OwHE>twdoEE^~gEMg14yD=_ zXcra6XRgp_0tCka&u5c9TkI!wm$d#-2*wGUO3Wa3npmu?a1}Q+xuFPQHkADK=Tp

~ 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

(UT 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 literal 0 HcmV?d00001 diff --git a/images/pwa-192x192.png b/images/pwa-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..213c484f09195e5a767190d87f8ae657e695bb1c GIT binary patch literal 2783 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 literal 0 HcmV?d00001 diff --git a/img/butterfly-icon.png b/img/butterfly-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3992d7740488b06e1e1b2e268f3a6af72dc23110 GIT binary patch literal 275383 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 z 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%0DKg^36uq^-XBeg839qsa&^Ed6%fof>heHs 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%0A0(jhwyD;_b%)-E)}3Y7b1?VJ7k^0$Rr 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\VyKE(sbCH4xy^MF(yCFm!QFekL6|Fbx(pytL+ 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 TGK9|&00000NkvXXu0mjfIGrd$ literal 0 HcmV?d00001 diff --git a/img/error-page.png b/img/error-page.png new file mode 100644 index 0000000000000000000000000000000000000000..9d1de96575394474a91f6b05b7e935245be3869c GIT binary patch literal 35850 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 literal 0 HcmV?d00001 diff --git a/img/favicon.ico b/img/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..56d07f553d8146f3ab6e7105dd1c53ba51082363 GIT binary patch literal 15406 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

K7CuJ&%|?G?@*^}@_>b;isra+!+)w(A{tmG( z*|O{s6E}#Ct-Y2#6Stv{SjXd$UPDvHEt~~>3rEs!gKhVp5Gr4)^vDd$`1|!cZCz{C zVx4Id8|q5ENMk|Cl}3rbJmXE`nt~$cn9|P|{wMlu%vWOkZ|Y$;=~2KcAI& z#P-RB#x@hbbHguUwlao2N!O&G>Sn*!x&1)|tJb0VH+KzH&Vbu-j4L73G-w1o&eAtWEDvqf9 z#y+3eobmEDGBScl$=e#A82+D+fY?#4FSCyY3m8w5|CQT5GPPCmJ6#TLcqJDQDd_CYH)y{+FR z)^Y8Al(EEpjBmPm&G266c4xoFSTqsGi7$}8qWC}z+SCF4f;b6?S(@vz8I`4;xwx;fvQ zir!8$55iGbM*NI3 z#dk?AEcnO7pkemlv)FTAM1MKVxN&tnM%Q_p%{Nmv>Xo0uKe5d{v>nb(zkqA|J?NKN zP+srwABVSQm&$q@=TW^!I19vkMfTepGtsi*`=sF&%4TAAP39(iS-;WVzU;I1WmjLN zv%u{EC#o_((bz|LZ{?5%zp2eyHRaZ57z6#BV+|jpt+|@>uO{YnrhkhwA7yc#No=Lq z*ZlHrb1mi%6W3%OX@vG_GwhtH5#Q@czeweN4Bv=f za)S`(U4*w%6BK?+&C04_S#?jDACuVDv*9OWcps-h-p}7U>N&3^v3nAa|Mt&k&`p2h z+4ev5U*C-Hx9+*>actg=GZb1=qWmOdw`dTWgf^+ohDv6T$3}j{?l>hT*)bVyRSOca z!`}tF*k3thUO$R9%8x(uF3Qut>ORQYS|eJ^x=dRO`UXd|PiSFIK5Gq;xmj=T0Dbl# z{TAoq7@N1%twJAd(GX{IG`<|?cmH<2TiAIPTg*66Y?I_ZeUW4O{|nKw_nGT0;oOZK z!~DIYlQZ|^b24u0v*4FQdYip{gBTk5OlM7H-gIR2&+MD@z+SpT=Pp9c)w-8|5A35S zzd%ksE{Ir$q;GDyg>|IPnQR+*u zRpqN3TWhz{rbsV&yv|yDH~lZ^ftg-_g&)msY$l5mQ%FsS>&*9B(ot^I~MZ)jT+THTJ!Po7)`NIZjx+{ z!EZ2+?>~;ALF&>H$%4>_}@GUuPnd79_ZT(}ugR|9(5!i;&^ z*wgFKI*i2P9U=BwIlo@LZ7%D3)3i)a zjq^8@52Y1AVL$mmw+?Nzu z$L<4TJ*C6&MrcqvXtU&hXk4rh%Un{$mboZSdl?58Jg)Qcx$_?8?DaF;ueVW~wF35< zLjAwAAp4A3Lr`8M_^o}EuZZ2^_r&;3Z)pq-u~=2}X5C{$gYr*!XdN>56Z>pr!hF}y zyl%~RNKZ@TL}i8VHrP#EVDxWdnK?IJOMa5i=;{3AY%ILYJD{;PB{N*_w_f8<+6Jr*;p5Ud0 U+d9i{91r@(-#<9;H*?^B0n>H*u>b%7 literal 0 HcmV?d00001 diff --git a/img/friend_404.gif b/img/friend_404.gif new file mode 100644 index 0000000000000000000000000000000000000000..91dd56a289327b6d869daa157912ee1f94eeec67 GIT binary patch literal 65097 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 literal 0 HcmV?d00001 diff --git a/index.html b/index.html new file mode 100644 index 0000000..ef6323a --- /dev/null +++ b/index.html @@ -0,0 +1,626 @@ + Bi's Blog

FIELD NOTES2025—NOW

biss/log

记录代码跑通之前,也记录它为什么没跑通。

OpenCV · OpenGL · 自托管服务 · 没打算归类的日常

INDEX / LATEST

最近写下的

完整归档
GPT Image2 初试 这篇文章介绍了作者最近试用gpt img2之后的一些直观感受。文章没有从技术角度展开,而是以普通用户的体验为主,聊了它适合做什么、哪些地方比以前的AI绘图更顺手、哪些地方依然不太稳定,以及在日常做头像、壁纸、封面图和改图时的一些实际体会。整体来看,它确实比以前更听话一些,但也还没有到可以完全省心的地步。
OpenGL- Cohen-Sutherland 编码裁剪算法 这篇文章介绍了Cohen-Sutherland编码裁剪算法,这是一种在计算机图形学中常用的图像裁剪方法。裁剪的目的是从一个大场景中提取所需信息,例如在浏览地图时放大显示特定区域。Cohen-Sutherland算法通过空间划分和编码方案来判断线段与矩形窗口的位置关系,从而决定线段的哪部分在窗口内、哪部分在窗口外。算法的核心在于计算线段端点的区域编码,并根据编码值来确定线段的裁剪结果。文章还提供了具体的代码实现,包括初始化设置、窗口大小调整和主函数等,展示了如何在实际应用中使用该算法进行图像裁剪。
OpenGL-直线的扫描转换 这篇文章介绍了三种直线扫描转换算法:DDA算法、中点画线算法和Bresenham算法。 DDA算法通过计算直线起点和终点的坐标差值来确定步数和增量,依次绘制直线上的点。算法实现简单,适用于任意直线,但精度较低。 中点画线算法仅适用于斜率为0或1的直线,通过计算中点和斜率来确定直线上的像素点,效率较高。 Bresenham算法根据直线的斜率和误差项来确定像素点的位置,适用于任意直线,且精度高,但实现稍复杂。
OpenGL-基础程序 这篇文章详细介绍了OpenGL的基础程序,包括代码展示和代码解释两部分。代码展示部分呈现了一个简单的OpenGL程序,涵盖了初始化与窗口管理、状态设置与缓冲区操作、矩阵与坐标变换以及几何图形绘制等关键步骤。代码解释则将这些步骤按照功能类别进行了归纳,帮助读者更好地理解OpenGL的渲染流程。通过这个示例,读者可以初步掌握OpenGL的基本操作和概念。
opencv应用-算术运算 这篇文章介绍了如何使用OpenCV进行图像的加法运算。首先,通过包含OpenCV和iostream头文件,并使用std命名空间,开始编写代码。主函数中,读取两张图片,检查是否成功加载,并确保它们的尺寸相同。如果尺寸不同,将第二张图片调整为与第一张相同的大小。然后,调用add函数对两幅图片进行加法运算,并将结果存储在result矩阵中。最后,显示原始图片和加法运算的结果,并等待按键关闭窗口。代码已上传至自建的git仓库。
opencv应用-基础操作 这篇文章介绍了使用C++和OpenCV库进行图像处理的基础操作,包括图片的读取与展示、像素的读取与修改、图像的基本变换(缩放、旋转、平移、翻转)、以及图像通道的分离与合并。文章详细讲解了每个操作的代码实现,并展示了如何通过OpenCV库提供的函数来完成这些任务。这对于初学者来说是非常有用的,因为它帮助他们理解如何使用OpenCV进行图像处理。
自建bitwarden服务 这篇文章介绍了如何自建Bitwarden服务,以替代浏览器自带的密码管理器。Bitwarden是一款开源、端到端加密的密码管理器,支持多种操作系统和设备,具有安全存储、自动同步、一键填充、生成随机密码和检测弱密码等功能。文章详细描述了部署Bitwarden服务的步骤,包括安装Vaultwarden、配置Nginx反向代理以及设置域名和数据卷等。通过这些步骤,用户可以轻松搭建一个功能强大的密码管理服务器,提高个人信息安全。
自建renovate-bot 这篇文章介绍了如何自建Renovate Bot以自动更新依赖,并通过Docker Compose进行部署。首先,文章提供了Renovate Bot的Docker Compose文件配置,包括使用特定平台(gitea)、设置Git API地址、生成Token以及启用自动发现功能。接着,建议创建一个专门用于管理Renovate Bot的账户,并为其生成登录Token。最后,通过在系统的crontab中设置定时任务,可以自动化运行更新流程。
添加网站左上角菜单 这篇文章详细介绍了如何在柳神的网站上添加一个自定义的左上角菜单,包括菜单的结构、样式以及响应式设计。作者提供了具体的HTML和CSS代码示例,展示了如何实现一个包含多个链接和功能的导航栏,同时确保在不同屏幕尺寸下的适配性。此外,还解释了一些关键的CSS属性和JavaScript交互效果,以实现平滑的菜单显示和隐藏。通过这些步骤,用户可以轻松地自定义和美化网站的顶部导航栏,提升用户体验。
Ctrl + 右键:浏览器原生菜单 +
\ No newline at end of file diff --git a/js/external-links.js b/js/external-links.js new file mode 100644 index 0000000..4c9ad82 --- /dev/null +++ b/js/external-links.js @@ -0,0 +1,45 @@ +(() => { + const redirectPath = '/go/'; + const urlParams = new URLSearchParams(window.location.search); + + if (window.location.pathname === redirectPath || window.location.pathname === '/go') return; + if (urlParams.get('noExternalRedirect') === '1') return; + + function getExternalUrl(anchor) { + const href = anchor.getAttribute('href'); + if (!href || href.startsWith('#')) return null; + + let targetUrl; + try { + targetUrl = new URL(href, window.location.href); + } catch { + return null; + } + + if (!['http:', 'https:'].includes(targetUrl.protocol)) return null; + if (targetUrl.origin === window.location.origin) return null; + + return targetUrl.href; + } + + document.addEventListener('click', (event) => { + const anchor = event.target.closest?.('a[href]'); + if (!anchor) return; + if (event.defaultPrevented || event.button !== 0 || event.metaKey || event.ctrlKey || event.shiftKey || event.altKey) return; + + const externalUrl = getExternalUrl(anchor); + if (!externalUrl) return; + + event.preventDefault(); + + const redirectUrl = `${redirectPath}?url=${encodeURIComponent(externalUrl)}&from=${encodeURIComponent(window.location.href)}`; + const target = anchor.getAttribute('target'); + + if (target && target !== '_self') { + window.open(redirectUrl, target, 'noopener,noreferrer'); + return; + } + + window.location.href = redirectUrl; + }); +})(); diff --git a/js/pwa.js b/js/pwa.js new file mode 100644 index 0000000..465f9cc --- /dev/null +++ b/js/pwa.js @@ -0,0 +1,104 @@ +(() => { + if (!('serviceWorker' in navigator)) return; + + const toast = document.querySelector('[data-pwa-toast]'); + const title = toast?.querySelector('[data-pwa-title]'); + const message = toast?.querySelector('[data-pwa-message]'); + const primary = toast?.querySelector('[data-pwa-primary]'); + const close = toast?.querySelector('[data-pwa-close]'); + let installPrompt = null; + let waitingWorker = null; + let toastMode = ''; + let refreshing = false; + + const showToast = (mode, heading, detail, actionLabel) => { + if (!toast || !title || !message || !primary) return; + toastMode = mode; + title.textContent = heading; + message.textContent = detail; + primary.textContent = actionLabel; + primary.hidden = !actionLabel; + toast.hidden = false; + }; + + const hideToast = () => { + if (toast) toast.hidden = true; + }; + + const installDismissedRecently = () => { + try { + const dismissedAt = Number(localStorage.getItem('pwa-install-dismissed-at')); + return dismissedAt > 0 && Date.now() - dismissedAt < 30 * 86400000; + } catch { + return false; + } + }; + + window.addEventListener('beforeinstallprompt', (event) => { + event.preventDefault(); + installPrompt = event; + if (!installDismissedRecently()) { + window.setTimeout(() => { + if (installPrompt) showToast('install', '安装 Bi\'s Blog', '添加到桌面,像应用一样打开并阅读缓存过的文章。', '立即安装'); + }, 2500); + } + }); + + window.addEventListener('appinstalled', () => { + installPrompt = null; + showToast('ready', '安装完成', '博客已经添加到你的设备。', '知道了'); + }); + + primary?.addEventListener('click', async () => { + if (toastMode === 'install' && installPrompt) { + await installPrompt.prompt(); + await installPrompt.userChoice; + installPrompt = null; + hideToast(); + return; + } + + if (toastMode === 'update' && waitingWorker) { + refreshing = true; + waitingWorker.postMessage({ type: 'SKIP_WAITING' }); + return; + } + + hideToast(); + }); + + close?.addEventListener('click', () => { + if (toastMode === 'install') { + try { localStorage.setItem('pwa-install-dismissed-at', String(Date.now())); } catch {} + } + hideToast(); + }); + + navigator.serviceWorker.addEventListener('controllerchange', () => { + if (refreshing) window.location.reload(); + }); + + navigator.serviceWorker.register('/sw.js', { scope: '/' }).then((registration) => { + if (registration.waiting && navigator.serviceWorker.controller) { + waitingWorker = registration.waiting; + showToast('update', '发现新版本', '刷新后即可使用博客的最新内容和功能。', '立即更新'); + } + + registration.addEventListener('updatefound', () => { + const worker = registration.installing; + worker?.addEventListener('statechange', () => { + if (worker.state === 'installed' && navigator.serviceWorker.controller) { + waitingWorker = worker; + showToast('update', '发现新版本', '刷新后即可使用博客的最新内容和功能。', '立即更新'); + } + }); + }); + }).catch((error) => { + console.warn('PWA registration failed:', error); + }); + + const params = new URLSearchParams(window.location.search); + if (params.get('action') === 'search') { + window.setTimeout(() => document.querySelector('.search-typesense-trigger')?.click(), 350); + } +})(); diff --git a/js/random.js b/js/random.js new file mode 100644 index 0000000..91d37b5 --- /dev/null +++ b/js/random.js @@ -0,0 +1,93 @@ +function randomPost(trigger) { + const source = trigger instanceof Element + ? trigger + : document.activeElement?.closest?.('.nav-random, [onclick*="randomPost"]'); + const overlay = document.createElement('div'); + const reduceMotion = window.matchMedia?.('(prefers-reduced-motion: reduce)').matches; + + overlay.className = 'random-post-transition'; + overlay.setAttribute('role', 'status'); + overlay.setAttribute('aria-live', 'polite'); + overlay.innerHTML = ` + +
+ + \u6b63\u5728\u62bd\u53d6\u4e00\u7bc7\u6587\u7ae0 +
+ `; + + source?.classList.add('is-randomizing'); + source?.setAttribute('aria-busy', 'true'); + document.body.appendChild(overlay); + requestAnimationFrame(() => overlay.classList.add('is-visible')); + + const finish = href => { + const delay = reduceMotion ? 80 : 1250; + window.setTimeout(() => { + location.href = href; + }, delay); + }; + + const startCardFlight = posts => { + if (reduceMotion) return; + + const flight = overlay.querySelector('.random-post-flight'); + if (!flight) return; + + const candidates = posts + .filter(post => post && typeof post.href === 'string' && post.href.startsWith('/posts/')) + .map(post => ({ + title: typeof post.title === 'string' && post.title.trim() ? post.title.trim() : '\u672a\u547d\u540d\u6587\u7ae0', + meta: typeof post.category === 'string' && post.category.trim() ? post.category.trim() : '\u968f\u673a\u6587\u7ae0', + })); + + const pool = candidates.length ? candidates : [{ title: '\u968f\u673a\u6587\u7ae0', meta: '\u6b63\u5728\u62bd\u53d6' }]; + const count = Math.min(9, Math.max(5, pool.length)); + + for (let index = 0; index < count; index += 1) { + const post = pool[Math.floor(Math.random() * pool.length)]; + const card = document.createElement('div'); + card.className = 'random-post-flying-card'; + card.style.setProperty('--flight-delay', `${index * 0.11}s`); + card.style.setProperty('--flight-y', `${-42 + Math.random() * 84}px`); + card.style.setProperty('--flight-rotate', `${-8 + Math.random() * 16}deg`); + const meta = document.createElement('small'); + const title = document.createElement('strong'); + meta.textContent = post.meta; + title.textContent = post.title; + card.append(meta, title); + flight.appendChild(card); + } + }; + + const reset = () => { + source?.classList.remove('is-randomizing'); + source?.removeAttribute('aria-busy'); + overlay.classList.remove('is-visible'); + window.setTimeout(() => overlay.remove(), reduceMotion ? 0 : 180); + }; + + fetch('/api/posts.json') + .then(res => { + if (!res.ok) throw new Error(`Failed to load posts: ${res.status}`); + return res.json(); + }) + .then(posts => { + const postLinks = posts + .map(post => post && post.href) + .filter(href => typeof href === 'string' && href.startsWith('/posts/')); + + if (postLinks.length === 0) { + console.warn('No posts available for random navigation.'); + reset(); + return; + } + + startCardFlight(posts); + finish(postLinks[Math.floor(Math.random() * postLinks.length)]); + }) + .catch(error => { + console.error('Random post navigation failed:', error); + reset(); + }); +} diff --git a/js/search/typesense-search.js b/js/search/typesense-search.js new file mode 100644 index 0000000..896d4ca --- /dev/null +++ b/js/search/typesense-search.js @@ -0,0 +1,528 @@ +(function () { + 'use strict'; + + // ============================================================================ + // 配置区域 - 请根据实际情况修改 + // ============================================================================ + const CONFIG = window.SITE_CONFIG?.search; + if (!CONFIG) { + console.warn('Typesense 搜索配置未加载'); + return; + } + + // ============================================================================ + // 状态管理 + // ============================================================================ + let searchInstance = null; + let isInitialized = false; + let isSearchOpen = false; + let initRetryCount = 0; + const MAX_INIT_RETRIES = CONFIG.ui.maxInitRetries || 30; // 最多重试30次 (3秒) + + // ============================================================================ + // 错误提示函数 + // ============================================================================ + function showErrorMessage() { + const hitsContainer = document.getElementById('hits'); + if (!hitsContainer) return; + + hitsContainer.innerHTML = + '
' + + '
' + + '
搜索服务加载失败
' + + '
' + + '

依赖库未能正确加载,请检查以下配置:

' + + '
    ' + + '
  1. 确认已在 _config.butterfly.yml 中正确引入依赖
  2. ' + + '
  3. 检查 JS 文件加载顺序(先 instantsearch.js,再 adapter)
  4. ' + + '
  5. 尝试更换 CDN 或使用本地文件
  6. ' + + '
  7. 打开浏览器控制台查看详细错误信息
  8. ' + + '
' + + '
' + + '
' + + '' + + '
' + + '
'; + } + + // ============================================================================ + // 1. 动态插入 HTML 结构 + // ============================================================================ + const searchHTML = ` + + + + `; + + document.body.insertAdjacentHTML('beforeend', searchHTML); + + const mask = document.getElementById('typesense-search-mask'); + const closeBtn = document.getElementById('close-typesense'); + const container = document.getElementById('typesense-search-container'); + + // ============================================================================ + // 搜索控制 + // ============================================================================ + function openSearch() { + if (isSearchOpen) return; + isSearchOpen = true; + mask.style.display = 'block'; + void mask.offsetWidth; + mask.classList.add('active'); + document.body.style.overflow = 'hidden'; + + if (!isInitialized) { + initTypesense(); + } + focusSearchInput(); + } + + function closeSearch() { + if (!isSearchOpen) return; + isSearchOpen = false; + mask.classList.remove('active'); + setTimeout(function() { + mask.style.display = 'none'; + document.body.style.overflow = ''; + }, CONFIG.ui.animationDuration || 300); + } + + function focusSearchInput(retryCount) { + retryCount = retryCount || 0; + const input = document.querySelector('.ais-SearchBox-input'); + if (input) { + input.focus(); + input.select(); + } else if (retryCount < (CONFIG.ui.maxRetries || 10)) { + setTimeout(function() { + focusSearchInput(retryCount + 1); + }, CONFIG.ui.retryDelay || 100); + } + } + + // ============================================================================ + // 事件监听 + // ============================================================================ + document.addEventListener('click', function(e) { + if (e.target.closest('.search-typesense-trigger')) { + e.preventDefault(); + openSearch(); + } + }); + + closeBtn.addEventListener('click', closeSearch); + mask.addEventListener('click', function(e) { + if (e.target === mask) closeSearch(); + }); + container.addEventListener('click', function(e) { + e.stopPropagation(); + }); + window.addEventListener('keydown', function(e) { + if (e.key === 'Escape' && isSearchOpen) { + closeSearch(); + } + if ((e.ctrlKey || e.metaKey) && e.key === 'k') { + e.preventDefault(); + openSearch(); + } + }); + + // ============================================================================ + // Typesense 初始化(带重试限制) + // ============================================================================ + function initTypesense() { + if (isInitialized || searchInstance) { + console.warn('Typesense 搜索已初始化'); + return; + } + + var instantsearchLoaded = typeof instantsearch !== 'undefined'; + var adapterLoaded = typeof TypesenseInstantSearchAdapter !== 'undefined' || + typeof window.TypesenseInstantSearchAdapter !== 'undefined'; + + console.log('📦 依赖库检查 (' + (initRetryCount + 1) + '/' + MAX_INIT_RETRIES + '):'); + console.log(' instantsearch.js:', instantsearchLoaded ? '✅ 已加载' : '❌ 未加载'); + console.log(' TypesenseAdapter:', adapterLoaded ? '✅ 已加载' : '❌ 未加载'); + + if (!instantsearchLoaded || !adapterLoaded) { + initRetryCount++; + + if (initRetryCount >= MAX_INIT_RETRIES) { + console.error(''); + console.error('❌ Typesense 依赖库加载失败!'); + console.error('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━'); + console.error(''); + console.error('🔧 请检查 _config.butterfly.yml 配置:'); + console.error(''); + console.error('inject:'); + console.error(' bottom: # ⚠️ 使用 bottom 而不是 head'); + console.error(' - '); + console.error(' - '); + console.error(' - '); + console.error(''); + console.error('💡 或在控制台手动检查:'); + console.error(' typeof instantsearch'); + console.error(' typeof TypesenseInstantSearchAdapter'); + console.error(''); + console.error('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━'); + + showErrorMessage(); + return; + } + + console.warn('⏳ 100ms 后重试...'); + setTimeout(initTypesense, 100); + return; + } + + initRetryCount = 0; + console.log('🚀 开始初始化 Typesense...'); + + try { + const typesenseAdapter = new TypesenseInstantSearchAdapter({ + server: { + apiKey: CONFIG.apiKey, + nodes: [{ + host: CONFIG.server.host, + port: CONFIG.server.port, + protocol: CONFIG.server.protocol + }], + cacheSearchResultsForSeconds: 120 + }, + additionalSearchParameters: CONFIG.searchParams + }); + + searchInstance = instantsearch({ + searchClient: typesenseAdapter.searchClient, + indexName: CONFIG.indexName, + routing: false + }); + + searchInstance.addWidgets([ + instantsearch.widgets.searchBox({ + container: '#searchbox', + placeholder: CONFIG.ui.placeholder || '输入关键词寻找故事...', + autofocus: true, + showReset: true, + showSubmit: false, + showLoadingIndicator: true + }), + instantsearch.widgets.stats({ + container: '#stats', + templates: { + text: function(data) { + if (!data.query) return ''; + return '找到 ' + data.nbHits + ' 条结果 (' + data.processingTimeMS + 'ms)'; + } + } + }), + instantsearch.widgets.hits({ + container: '#hits', + templates: { + empty: function(results) { + return '
' + + '
' + + '
找不到与 "' + results.query + '" 相关的内容
' + + '
试试其他关键词吧 (´·ω·`)
' + + '
'; + }, + item: function(hit) { + // 使用 _highlightResult 获取高亮文本 + var titleHighlight = hit._highlightResult && hit._highlightResult.title + ? hit._highlightResult.title.value + : (hit.title || ''); + + var contentHighlight = hit._highlightResult && hit._highlightResult.content + ? hit._highlightResult.content.value + : (hit.content || ''); + + // 截取内容长度 + if (contentHighlight.length > 200) { + contentHighlight = contentHighlight.substring(0, 200) + '...'; + } + + return '' + + '
' + titleHighlight + '
' + + '
' + contentHighlight + '
' + + '
'; + } + } + }), + instantsearch.widgets.pagination({ + container: '#pagination', + padding: 2, + showFirst: false, + showLast: false + }) + ]); + + searchInstance.start(); + isInitialized = true; + + console.log('✅ Typesense 初始化成功!'); + + searchInstance.on('render', function() { + if (isSearchOpen) { + const input = document.querySelector('.ais-SearchBox-input'); + if (input && document.activeElement !== input) { + input.focus(); + } + } + }); + + } catch (error) { + console.error('❌ 初始化失败:', error); + showErrorMessage(); + } + } + + // ============================================================================ + // 初始化 + // ============================================================================ + function init() { + console.log('🔍 Typesense 搜索已准备就绪'); + console.log('💡 快捷键: Ctrl/Cmd + K'); + } + + if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', init); + } else { + init(); + } + + // ============================================================================ + // 全局接口 + // ============================================================================ + window.TypesenseSearch = { + open: openSearch, + close: closeSearch, + isOpen: function() { return isSearchOpen; }, + getInstance: function() { return searchInstance; } + }; + +})(); diff --git a/js/shuoshuo.js b/js/shuoshuo.js new file mode 100644 index 0000000..252d7b4 --- /dev/null +++ b/js/shuoshuo.js @@ -0,0 +1,363 @@ +function renderTalks() { + const talkContainer = document.querySelector('#talk'); + if (!talkContainer) return; + const config = window.SITE_CONFIG?.talks || {}; + talkContainer.innerHTML = ''; + const generateIconSVG = () => { + return ``; + } + const waterfall = (a) => { + function b(a, b) { + var c = window.getComputedStyle(b); + return parseFloat(c["margin" + a]) || 0 + } + + function c(a) { + return a + "px" + } + + function d(a) { + return parseFloat(a.style.top) + } + + function e(a) { + return parseFloat(a.style.left) + } + + function f(a) { + return a.clientWidth + } + + function g(a) { + return a.clientHeight + } + + function h(a) { + return d(a) + g(a) + b("Bottom", a) + } + + function i(a) { + return e(a) + f(a) + b("Right", a) + } + + function j(a) { + a = a.sort(function (a, b) { + return h(a) === h(b) ? e(b) - e(a) : h(b) - h(a) + }) + } + + function k(b) { + f(a) != t && (b.target.removeEventListener(b.type, arguments.callee), waterfall(a)) + } + "string" == typeof a && (a = document.querySelector(a)); + var l = [].map.call(a.children, function (a) { + return a.style.position = "absolute", a + }); + a.style.position = "relative"; + var m = []; + l.length && (l[0].style.top = "0px", l[0].style.left = c(b("Left", l[0])), m.push(l[0])); + for (var n = 1; n < l.length; n++) { + var o = l[n - 1], + p = l[n], + q = i(o) + f(p) <= f(a); + if (!q) break; + p.style.top = o.style.top, p.style.left = c(i(o) + b("Left", p)), m.push(p) + } + for (; n < l.length; n++) { + j(m); + var p = l[n], + r = m.pop(); + p.style.top = c(h(r) + b("Top", p)), p.style.left = c(e(r)), m.push(p) + } + j(m); + var s = m[0]; + a.style.height = c(h(s) + b("Bottom", s)); + var t = f(a); + window.addEventListener ? window.addEventListener("resize", k) : document.body.onresize = k + }; + + const fetchAndRenderTalks = () => { + const url = config.apiUrl; + if (!url) return; + const cacheKey = config.cacheKey || 'talksCache'; + const cacheTimeKey = config.cacheTimeKey || 'talksCacheTime'; + const cacheDuration = config.cacheDurationMs || 30 * 60 * 1000; + const cachedData = localStorage.getItem(cacheKey); + const cachedTime = localStorage.getItem(cacheTimeKey); + const now = Date.now(); + + if (cachedData && cachedTime && (now - cachedTime < cacheDuration)) { + renderTalksList(JSON.parse(cachedData)); + } else { + fetch(url, { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ page: 1, pageSize: config.pageSize || 30 }) + }) + .then(res => res.json()) + .then(data => { + if (data.code === 1 && data.data && Array.isArray(data.data.items)) { + localStorage.setItem(cacheKey, JSON.stringify(data.data.items)); + localStorage.setItem(cacheTimeKey, now.toString()); + renderTalksList(data.data.items); + } + }) + .catch(err => console.error('Error fetching:', err)); + } + }; + + const renderTalksList = (list) => { + list.map(formatTalk).forEach(item => talkContainer.appendChild(generateTalkElement(item))); + waterfall('#talk'); + }; + + const withImageParams = (url) => { + if (!url) return ''; + try { + const parsedUrl = new URL(url, window.location.origin); + if (!parsedUrl.searchParams.has('fmt')) parsedUrl.searchParams.set('fmt', 'webp'); + if (!parsedUrl.searchParams.has('q')) parsedUrl.searchParams.set('q', '75'); + return parsedUrl.toString(); + } catch { + return url; + } + }; + + const getImageUrl = (image) => { + if (!image) return ''; + if (typeof image === 'string') return image; + return image.image_url || image.url || image.src || image.file?.url || ''; + }; + + const getTalkImages = (item) => { + if (Array.isArray(item.images) && item.images.length > 0) { + return item.images.map(getImageUrl).filter(Boolean); + } + + if (Array.isArray(item.echo_files) && item.echo_files.length > 0) { + return item.echo_files + .map((echoFile) => getImageUrl(echoFile.file || echoFile)) + .filter(Boolean); + } + + return []; + }; + + const formatTalk = (item) => { + const date = formatTime(item.created_at); + let content = item.content || ''; + content = content.replace(/\[(.*?)\]\((.*?)\)/g, `@$1`) + .replace(/- \[ \]/g, '⚪') + .replace(/- \[x\]/g, '⚫') + .replace(/\n/g, '
'); + content = `
${content}
`; + + // 图片 + const images = getTalkImages(item); + if (images.length > 0) { + const imgDiv = document.createElement('div'); + imgDiv.className = 'zone_imgbox'; + images.forEach(url => { + const imageUrl = withImageParams(url); + const link = document.createElement('a'); + link.href = imageUrl; + link.setAttribute('data-fancybox', 'gallery'); + link.className = 'fancybox'; + const imgTag = document.createElement('img'); + imgTag.src = imageUrl; + imgTag.loading = 'lazy'; + imgTag.alt = ''; + link.appendChild(imgTag); + imgDiv.appendChild(link); + }); + content += imgDiv.outerHTML; + } + + // 外链 / GitHub 项目 + // 外链 / GitHub 项目 + if (['WEBSITE', 'GITHUBPROJ'].includes(item.extension_type)) { + let siteUrl = '', title = ''; + let extensionBack = "https://pic.biss.click/image/1971bdc1-4349-4bb9-b683-20404f5da7d7.webp"; + + // 解析 extension 字段 + try { + const extObj = typeof item.extension === 'string' ? JSON.parse(item.extension) : item.extension; + siteUrl = extObj.site || extObj.url || item.extension; + title = extObj.title || siteUrl; + } catch { + siteUrl = item.extension; + title = siteUrl; + } + + // 特殊处理 GitHub 项目 + if (item.extension_type === 'GITHUBPROJ') { + extensionBack = "https://pic.biss.click/image/ed410d4e-d3f8-4b26-8840-50dd58f7dc4e.webp"; + + // 提取 GitHub 项目名 + const match = siteUrl.match(/^https?:\/\/github\.com\/[^/]+\/([^/?#]+)/i); + if (match) { + title = match[1]; // 获取仓库名 + } else { + // fallback:从最后一个路径段提取 + try { + const parts = new URL(siteUrl).pathname.split('/').filter(Boolean); + title = parts.pop() || siteUrl; + } catch { + // 如果 URL 无效则保留原始 + } + } + } + + // 输出 HTML 结构 + content += ` + `; + } + + + // 音乐 + if (item.extension_type === 'MUSIC' && item.extension) { + const link = item.extension; + let server = ''; + if (link.includes('music.163.com')) server = 'netease'; + else if (link.includes('y.qq.com')) server = 'tencent'; + const idMatch = link.match(/id=(\d+)/); + const id = idMatch ? idMatch[1] : ''; + if (server && id) { + content += ``; + } + } + + // 视频 + if (item.extension_type === 'VIDEO' && item.extension) { + const video = item.extension; + if (video.startsWith('BV')) { + const bilibiliUrl = `https://www.bilibili.com/blackboard/html5mobileplayer.html?bvid=${video}&as_wide=1&high_quality=1&danmaku=0`; + content += ` +
+ +
`; + } else { + const youtubeUrl = `https://www.youtube.com/embed/${video}`; + content += ` +
+ +
`; + } + } + + return { + content, + user: item.username || '匿名', + avatar: config.fallbackAvatar || window.SITE_CONFIG?.author?.avatar || '', + date, + location: '', + tags: Array.isArray(item.tags) && item.tags.length ? item.tags.map(t => t.name) : ['无标签'], + text: content.replace(/\[(.*?)\]\((.*?)\)/g, '[链接]') + }; + }; + + const generateTalkElement = (item) => { + const talkItem = document.createElement('div'); + talkItem.className = 'talk_item'; + + const talkMeta = document.createElement('div'); + talkMeta.className = 'talk_meta'; + const avatar = document.createElement('img'); + avatar.className = 'no-lightbox avatar'; + avatar.src = item.avatar; + + const info = document.createElement('div'); + info.className = 'info'; + const nick = document.createElement('span'); + nick.className = 'talk_nick'; + nick.innerHTML = `${item.user} ${generateIconSVG()}`; + const date = document.createElement('span'); + date.className = 'talk_date'; + date.textContent = item.date; + info.appendChild(nick); + info.appendChild(date); + talkMeta.appendChild(avatar); + talkMeta.appendChild(info); + + const talkContent = document.createElement('div'); + talkContent.className = 'talk_content'; + talkContent.innerHTML = item.content; + + const talkBottom = document.createElement('div'); + talkBottom.className = 'talk_bottom'; + const tags = document.createElement('div'); + const tag = document.createElement('span'); + tag.className = 'talk_tag'; + tag.textContent = `🏷️${item.tags}`; + //const loc = document.createElement('span'); + //loc.className = 'location_tag'; + //loc.textContent = `🌍${item.location}`; + tags.appendChild(tag); + //tags.appendChild(loc); + + const commentLink = document.createElement('a'); + commentLink.href = 'javascript:;'; + commentLink.onclick = () => goComment(item.text); + const icon = document.createElement('span'); + icon.className = 'icon'; + icon.innerHTML = ''; + commentLink.appendChild(icon); + + talkBottom.appendChild(tags); + talkBottom.appendChild(commentLink); + + talkItem.appendChild(talkMeta); + talkItem.appendChild(talkContent); + talkItem.appendChild(talkBottom); + + return talkItem; + }; + + const goComment = (e) => { + const match = e.match(/
([\s\S]*?)<\/div>/); + const textContent = match ? match[1] : ""; + const textarea = document.querySelector("#twikoo .el-textarea__inner"); + textarea.value = `> ${textContent}\n\n`; + textarea.focus(); + btf.snackbarShow("已为您引用该说说,不删除空格效果更佳"); + }; + + const formatTime = (time) => { + const timestamp = Number(time); + const d = Number.isFinite(timestamp) + ? new Date(timestamp < 100000000000 ? timestamp * 1000 : timestamp) + : new Date(time); + const pad = (n) => n.toString().padStart(2, '0'); + if (Number.isNaN(d.getTime())) return ''; + return `${d.getFullYear()}-${pad(d.getMonth()+1)}-${pad(d.getDate())} ${pad(d.getHours())}:${pad(d.getMinutes())}`; + }; + + fetchAndRenderTalks(); +} + +renderTalks(); + +// function whenDOMReady() { +// const talkContainer = document.querySelector('#talk'); +// talkContainer.innerHTML = ''; +// fetchAndRenderTalks(); +// } +// whenDOMReady(); +// document.addEventListener("pjax:complete", whenDOMReady); diff --git a/js/shuoshuoshouye.js b/js/shuoshuoshouye.js new file mode 100644 index 0000000..282d976 --- /dev/null +++ b/js/shuoshuoshouye.js @@ -0,0 +1,103 @@ +let talkTimer = null; + +const cacheKey = 'talksCache'; +const cacheTimeKey = 'talksCacheTime'; +const cacheDuration = 30 * 60 * 1000; // 缓存有效期 30分钟 + +function indexTalk() { + if (talkTimer) { + clearInterval(talkTimer); + talkTimer = null; + } + + if (!document.getElementById('bber-talk')) return; + const config = window.SITE_CONFIG?.talks || {}; + const talksCacheKey = config.cacheKey || cacheKey; + const talksCacheTimeKey = config.cacheTimeKey || cacheTimeKey; + const talksCacheDuration = config.cacheDurationMs || cacheDuration; + + function toText(ls) { + return ls.map(item => { + let c = item.content || ''; + + const hasImg = /\!\[.*?\]\(.*?\)/.test(c); + const hasLink = /\[.*?\]\(.*?\)/.test(c); + + c = c + .replace(/#(.*?)\s/g, '') + .replace(/\{.*?\}/g, '') + .replace(/\!\[.*?\]\(.*?\)/g, '') + .replace(/\[.*?\]\(.*?\)/g, ''); + + const icons = []; + + if (item.images?.length && !hasImg) icons.push('fa-solid fa-image'); + if (item.extension_type === 'VIDEO') icons.push('fa-solid fa-video'); + if (item.extension_type === 'MUSIC') icons.push('fa-solid fa-music'); + if (item.extension_type === 'WEBSITE' && !hasLink) icons.push('fa-solid fa-link'); + if (item.extension_type === 'GITHUBPROJ' && !hasLink) icons.push('fab fa-github'); + + if (icons.length) c += ' ' + icons.map(i => ``).join(' '); + return c; + }); + } + + // 渲染与轮播 + function talk(ls) { + let html = ''; + ls.forEach((item, i) => { + html += `
  • ${item}
  • `; + }); + + let box = document.querySelector("#bber-talk .talk-list"); + if (!box) return; + + box.innerHTML = html; + + talkTimer = setInterval(() => { + if (box.children.length > 0) { + box.appendChild(box.children[0]); + } + }, 3000); + } + + const cachedData = localStorage.getItem(talksCacheKey); + const cachedTime = localStorage.getItem(talksCacheTimeKey); + const currentTime = new Date().getTime(); + + // 判断缓存是否有效 + if (cachedData && cachedTime && (currentTime - cachedTime < talksCacheDuration)) { + const data = toText(JSON.parse(cachedData)); + talk(data.slice(0, config.homeLimit || 6)); // 使用缓存渲染数据 + } else { + if (!config.apiUrl) return; + + fetch(config.apiUrl, { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ page: 1, pageSize: config.pageSize || 30 }) + }) + .then(res => res.json()) + .then(data => { + // 适配新版结构:code=1 且 data.items 存在 + if (data.code === 1 && data.data && Array.isArray(data.data.items)) { + localStorage.setItem(talksCacheKey, JSON.stringify(data.data.items)); + localStorage.setItem(talksCacheTimeKey, currentTime.toString()); + + const formattedData = toText(data.data.items); + talk(formattedData.slice(0, config.homeLimit || 6)); + } else { + console.warn('Unexpected API response format:', data); + } + }) + .catch(error => console.error('Error fetching data:', error)); + } +} + +// pjax 支持 +function whenDOMReady() { + indexTalk(); +} + +whenDOMReady(); +document.addEventListener("pjax:complete", whenDOMReady); diff --git a/js/weather.js b/js/weather.js new file mode 100644 index 0000000..c2876c6 --- /dev/null +++ b/js/weather.js @@ -0,0 +1,204 @@ +// weather.js + +(function () { + + const WEATHER_ID = "aside-weather"; + const LOCATION_WAIT_MS = 3000; + const LOCATION_POLL_INTERVAL_MS = 100; + const WEATHER_KEY = "70201debab4245379e376d116b05f8a2"; + const WEATHER_HOST = "https://ny5vxmbbkd.re.qweatherapi.com"; + const WEATHER_LANG = "zh"; + + function debugLog(label, payload) { + console.log(`[weather.js] ${label}`, payload); + } + + function maskSecret(secret) { + if (!secret || secret.length < 10) return secret; + return `${secret.slice(0, 4)}***${secret.slice(-4)}`; + } + + function readExistingLocation() { + return window.ipLocation?.result?.location || null; + } + + function waitForExistingLocation(timeout = LOCATION_WAIT_MS) { + return new Promise((resolve, reject) => { + const existingLocation = readExistingLocation(); + if (existingLocation) { + resolve(existingLocation); + return; + } + + const startTime = Date.now(); + const timer = window.setInterval(() => { + const location = readExistingLocation(); + if (location) { + window.clearInterval(timer); + resolve(location); + return; + } + + if (Date.now() - startTime >= timeout) { + window.clearInterval(timer); + reject(new Error("等待 ipLocation 超时")); + } + }, LOCATION_POLL_INTERVAL_MS); + }); + } + + function requestLocationFallback() { + return new Promise((resolve, reject) => { + if (!window.$?.ajax) { + reject(new Error("jQuery 未加载,无法执行定位兜底请求")); + return; + } + + $.ajax({ + type: 'get', + url: 'https://apis.map.qq.com/ws/location/v1/ip', + data: { + key: '你的key', + output: 'jsonp', + callback: '?', + }, + dataType: 'jsonp', + success: function (res) { + debugLog("定位兜底返回", res); + if (res && res.status === 0 && res.result?.location) { + window.ipLocation = res; + resolve(res.result.location); + } else { + reject(new Error("定位失败")); + } + }, + error: function () { + reject(new Error("定位请求失败")); + } + }); + }); + } + + function getLocation() { + return waitForExistingLocation() + .then(location => { + debugLog("使用 txmap.js 定位", location); + return location; + }) + .catch(error => { + debugLog("等待 txmap.js 定位失败,转兜底请求", error); + return requestLocationFallback(); + }); + } + + + function getWeather(lng, lat) { + const location = `${lng.toFixed(2)},${lat.toFixed(2)}`; + const params = new URLSearchParams({ + location, + lang: WEATHER_LANG, + key: WEATHER_KEY + }); + const requestUrl = `${WEATHER_HOST}/v7/weather/now?${params.toString()}`; + + debugLog("天气请求参数", { + host: WEATHER_HOST, + location, + lang: WEATHER_LANG, + key: maskSecret(WEATHER_KEY) + }); + + return fetch(requestUrl, { + headers: { + Accept: "application/json" + } + }).then(async res => { + const responseText = await res.text(); + let data; + + try { + data = JSON.parse(responseText); + } catch (parseError) { + debugLog("天气接口返回非 JSON", { + status: res.status, + statusText: res.statusText, + body: responseText + }); + throw new Error(`天气接口返回非 JSON,HTTP ${res.status}`); + } + + debugLog("天气接口响应", { + status: res.status, + statusText: res.statusText, + body: data + }); + + if (!res.ok) { + const detail = data?.error?.detail || data?.msg || `HTTP ${res.status}`; + throw new Error(`天气接口请求失败:${detail}`); + } + + return data; + }); + } + + + function renderWeather(data) { + const el = document.getElementById(WEATHER_ID); + if (!el) return; + + if (data.code !== "200") { + debugLog("天气接口业务错误", data); + el.innerHTML = `天气获取失败:${data.code || "未知错误"}`; + return; + } + + const now = data.now; + + const emojiMap = { + "晴": "☀️", + "多云": "⛅", + "阴": "☁️", + "雨": "🌧️", + "雪": "❄️", + "雷": "⛈️" + }; + + const emoji = emojiMap[now.text] || "🌡️"; + const weatherSentence = `当前天气${now.text},气温${now.temp}℃,体感${now.feelsLike}℃,${now.windDir}${now.windScale}级,湿度${now.humidity}%,能见度${now.vis}km。`; + + el.innerHTML = ` +
    +
    +
    +
    + ${weatherSentence} +
    +
    + `; + } + + + function initWeather() { + const el = document.getElementById(WEATHER_ID); + if (!el) return; + + el.innerHTML = "🌥️ 获取天气中..."; + + getLocation() + .then(loc => getWeather(loc.lng, loc.lat)) + .then(renderWeather) + .catch(err => { + console.error("[weather.js] 天气加载失败", err); + el.innerHTML = `🌧️ 天气加载失败:${err.message || "未知错误"}`; + }); + } + + + // 🚀 初次加载 + window.addEventListener("load", initWeather); + + // 🔄 pjax + document.addEventListener("pjax:complete", initWeather); + +})(); diff --git a/link/index.html b/link/index.html new file mode 100644 index 0000000..df1a2e5 --- /dev/null +++ b/link/index.html @@ -0,0 +1,378 @@ + 友情链接 | Bi's Blog

    Bi's Blog

    友情链接

    把仍在发光的角落放在一起。

    友链申请

    +欢迎长期维护、内容原创、访问稳定的个人站点交换友链。你可以通过邮件发送站点名称、地址、头像和一句简介。 +

    • 站点名称:Bi's Blog
    • 站点地址:https://blog.biss.click/
    • 头像地址:https://blog.biss.click/images/Bi.ico
    • 站点简介:好奇心转化为代码的空间。
    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/manifest.webmanifest b/manifest.webmanifest new file mode 100644 index 0000000..40337ed --- /dev/null +++ b/manifest.webmanifest @@ -0,0 +1,46 @@ +{ + "id": "/", + "name": "Bi's Blog", + "short_name": "Bi's Blog", + "description": "好奇心转化为代码的空间。", + "lang": "zh-CN", + "start_url": "/", + "scope": "/", + "display": "standalone", + "display_override": ["window-controls-overlay", "standalone", "minimal-ui"], + "theme_color": "#0f766e", + "background_color": "#f7f5ef", + "categories": ["blog", "education", "technology"], + "icons": [ + { + "src": "/images/pwa-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "/images/pwa-512x512.png", + "sizes": "512x512", + "type": "image/png" + }, + { + "src": "/images/pwa-maskable-512x512.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "maskable" + } + ], + "shortcuts": [ + { + "name": "搜索文章", + "short_name": "搜索", + "url": "/?action=search", + "icons": [{ "src": "/images/pwa-192x192.png", "sizes": "192x192" }] + }, + { + "name": "随机文章", + "short_name": "随机文章", + "url": "/go/", + "icons": [{ "src": "/images/pwa-192x192.png", "sizes": "192x192" }] + } + ] +} diff --git a/offline.html b/offline.html new file mode 100644 index 0000000..0fac7f4 --- /dev/null +++ b/offline.html @@ -0,0 +1,29 @@ + + + + + + + 暂时离线 | Bi's Blog + + + +
    + +

    网络暂时走丢了

    +

    已经读过的文章仍可从浏览器历史或返回按钮打开。网络恢复后,再来继续探索吧。

    + + 返回首页 +
    + + diff --git a/page/2/index.html b/page/2/index.html new file mode 100644 index 0000000..4f837d0 --- /dev/null +++ b/page/2/index.html @@ -0,0 +1,626 @@ + 文章 - 第 2 页 | Bi's Blog

    写给日常、技术和正在发生的自己

    Bi's Blog

    第 2 页,继续翻看最近的记录。

    最新文章

    查看全部
    将博客仓库转移到gitea 这篇文章详细介绍了如何将博客仓库从现有的平台转移到Gitea。首先,确保已经成功安装了Gitea。接着,文章重点讲解了action文件的修改,包括检查分支、缓存项目、安装Node和Hexo、安装依赖、清理文件树、生成静态文件并压缩、部署到本地仓库以及Webhook的配置。这些步骤确保了博客能够顺利迁移到Gitea,并且保持了原有的功能和结构。需要注意的是,文章中的action文件包含了一些具体的指令和变量,如ref: master、cache-node-modules等,这些在实际操作时需要替换为具体的值。此外,文章还提到了Webhook的配置,这是一个可选但推荐的自定义事件触发器,用于在特定事件发生时自动触发部署流程。
    安装gitea 这篇文章详细介绍了如何在2C2G的服务器上安装Gitea,包括获取二进制文件、创建用户和工作目录、创建系统服务、创建数据库以及安装Runner等步骤。Gitea作为一个轻量级的自助Git服务,适合用于托管网站源码。文章还提供了关于如何配置反向代理和数据库的信息,以及如何使用Docker运行Gitea Runner以实现GitHub Actions功能。通过这些步骤,用户可以在自己的服务器上成功部署Gitea,并利用其进行版本控制和自动化工作流程。
    添加typesense搜索 这篇文章介绍了如何在博客中集成Typesense搜索引擎,包括安装Typesense、添加数据集以及同步数据的详细步骤。首先,通过命令行安装Typesense并配置相关参数,如API密钥和数据目录。接着,安装必要的npm包,并在Hexo博客中配置搜索功能,指定存储搜索数据的JSON文件路径。然后,编写了一个同步脚本,用于读取XML文件、解析数据、检查或创建集合以及导入数据到Typesense。最后,在博客底部添加了InstantSearch和Typesense的JavaScript库,并根据实际情况修改了配置。
    自定义字体 这篇文章讨论了如何自定义网站字体,以提升网站的美观性和用户体验。作者首先提到了在移动端和电脑上使用woff或woff2字体能够完美显示的重要性,并提到谷歌字体库可能已经可以直接在中国大陆访问,这使得自定义字体的需求可能不再那么迫切。接着,文章详细介绍了如何在网上寻找并下载喜欢的字体,包括字体格式的转换方法。然后,展示了如何在CSS文件中添加字体,包括如何声明字体族和指定字体文件的路径。最后,文章还提供了关于其他字体格式的参考,并指导如何在主题文件的font配置区域修改字体设置。
    在侧边栏添加日历和倒计时 实现了一个侧边栏日历与倒计时卡片,包含以下核心功能:日历展示:显示当前日期(公历与农历)、星期、生肖、干支年份。动态生成当月日历网格,高亮当天日期。倒计时模块:距离除夕倒计时:实时计算并显示剩余天数(示例中为2026年2月16日)。进度条:分别展示本年、本月、本周的已过去进度(百分比)及剩余天数。农历支持:调用 chinese-lunar.js 库将公历转换为农历,格式化显示为“干支年+生肖年+农历月+农历日”。
    和朋友们的故事 这篇文章讲述了作者与朋友们的故事,以及他通过挂号信和电子贺卡与朋友们保持联系的经历。作者描述了自己对这种传统通信方式的喜爱,尽管现在网络发达,但他仍然觉得挂号信具有独特的魅力。文章中提到了作者去年上半年开始给朋友们写信,下半年因忙碌而减少,年底时尝试使用AI工具创作电子贺卡。作者感慨大学时间的快速流逝,以及朋友们之间的疏远。尽管如此,作者认为这是必然的事情,并无悲伤之处,只是单纯的感慨。最后,作者表示下次有时间会在文章中更新更多内容。
    Adguard和Openclash共存 这篇文章介绍了如何在已经安装了 OpenWrt 系统并配置好 OpenClash 和 AdguardHome 的情况下,实现这两者的共存。首先简要说明了 AdguardHome 和 OpenClash 的原理,它们都是通过劫持 DNS 来达到特定目的。然后分别介绍了两种配置方式:一种是在 AdguardHome 中将上游 DNS 服务器设置为 127.0.0.1:7874,这种方式相对简单;另一种是将 OpenClash 中的 DNS 指向 AdguardHome,但可能存在拦截失败的情况。
    在Openwrt上安装AdguardHome 这篇文章介绍了在OpenWrt上安装AdguardHome的过程。首先,作者提到由于luci-app-adguardhome软件源的问题,选择了其他途径获取软件包并进行安装。接着,详细说明了安装步骤,包括下载、上传和运行安装命令。在配置部分,作者强调了更新核心版本的重要性,并提供了配置AdguardHome的具体步骤,如关闭路由器自带DNS/DHCP服务器,并建议设置AdguardHome的DHCP服务器。最后,作者提醒用户在完成配置后点击“保存并应用”,并通过AdGuardHome Web界面进行验证。
    在Openwrt中安装OpenClash 这篇文章详细介绍了在OpenWrt系统中安装OpenClash的过程。作者通过Web管理页面和终端命令两种方式进行了安装,并强调了推荐启用Smart内核。安装完成后,作者提到了配置步骤,包括下载内核和导入配置文件,最后表达了对于zashboard界面简洁美观的个人喜好。整篇文章内容连贯,条理清晰,为读者提供了完整的安装指南。
    搭建Owncloud并集成Onlyoffice 这篇文章详细介绍了如何搭建Owncloud网盘服务并集成Onlyoffice文档编辑器。首先,作者描述了搭建过程中的基本步骤,包括安装网盘和进行系统调优,其中强调了Redis缓存配置和Cron任务设置的重要性。接着,作者提到了在1panel应用商店安装Onlyoffice的过程,并说明了如何将其反向代理至个人域名。最后,文章指导用户在Owncloud中搜索并安装Onlyoffice插件,确保了整个集成过程的顺利完成。
    为博客添加CMS系统 这篇文章介绍了如何为Hexo博客添加一个基于Sveltia CMS的CMS系统。首先,作者通过npm安装了Sveltia CMS,并在博客源码目录下创建了必要的文件和目录结构。接着,作者详细说明了如何在config.yml文件中配置CMS,包括字段定义、页面和集合的设置。由于作者使用的是自己的服务器,无法使用官方的认证系统,因此他还讲解了如何配置GitHub OAuth应用,并在Cloudflare上设置环境变量以支持CI/CD流程。最后,作者指出完成这些步骤后,可以通过访问博客的admin后台来管理内容。
    为1Panel添加自己想要的应用 这篇文章详细介绍了如何为1Panel添加自定义应用的过程,包括预准备工作、创建文件和配置应用声明文件等步骤。首先,作者强调了Fork仓库和创建新分支的重要性。接着,文章逐步讲解了如何在应用目录下创建所需的文件和子目录,如halo、logo.png、data.yml、README.md等。特别详细地说明了应用声明文件data.yml的构成,包括基本信息、应用标签、类型等关键配置。此外,还解释了关于端口字段和type字段的具体使用方法,提供了实际安装时填写form表单的示例。整个过程不仅清晰易懂,而且为开发者提供了一套完整的操作指南,有助于他们更好地理解和实施应用添加到1Panel的过程。
    使用GitHub推送Hexo到服务器 这篇文章介绍了如何使用GitHub推送Hexo到服务器,包括建立GitHub仓库、上传文件、创建Action以及配置环境变量等步骤。首先,文章提供了在香港直连GitHub的方法,并指导如何在本地安装git、配置用户名和邮箱、创建SSH Key并在GitHub上上传公钥。接着,文章详细说明了如何在自己的hexo根目录下初始化git仓库,并使用PowerShell将文件推送到新建的私有仓库。此外,文章还创建了一个Action,用于自动化部署过程,包括检查分支、缓存项目、安装Node和Hexo、安装依赖、清理文件树、生成静态文件并压缩、部署到服务器等环节。最后,文章列出了需要配置的环境变量,如服务器IP、用户名、密钥密码、私钥和SSH登录端口,并强调了测试的重要性,以确保整个部署流程无报错。
    C# 基本语法 这篇文章通过Rectangle示例讲解C#面向对象基础,展示类与对象如何封装数据及行为,并输出面积15.75。随后介绍using引入命名空间、class声明类、注释、成员变量与函数、实例化流程及标识符规则。重点解析C#9顶级语句,无需Main方法即可在文件顶层直接写代码,编译器自动生成入口,适合脚本化开发,示例演示变量、方法、LINQ与异常处理,简化小型项目结构。
    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/page/3/index.html b/page/3/index.html new file mode 100644 index 0000000..c797bf2 --- /dev/null +++ b/page/3/index.html @@ -0,0 +1,626 @@ + 文章 - 第 3 页 | Bi's Blog

    写给日常、技术和正在发生的自己

    Bi's Blog

    第 3 页,继续翻看最近的记录。

    最新文章

    查看全部
    自定义页脚(新) 您提供的代码是一个自定义页脚的HTML和CSS代码 要在您的网站中使用这个自定义页脚,请按照以下步骤操作: 1. 首先,将提供的CSS代码复制到您网站的CSS文件中。如果您没有单独的CSS文件,可以在HTML文件的`<head>`部分添加`<style>`标签,并将CSS代码粘贴到其中。 2. 接下来,将提供的HTML代码复制到您网站的HTML文件中。将其放置在`<body>`标签内,最好在页面的底部。 3. 根据需要自定义页脚内容,例如更改版权信息、菜单链接、社交链接等。 4. 保存更改并在浏览器中查看您的网站,您应该能看到自定义页脚。
    自定义分类条 这篇文章介绍了如何在博客系统中自定义分类栏的设计和实现过程。首先,通过Pug模板语言创建了一个名为categoryBar.pug的文件,用于定义分类栏的结构和样式。接着,在Stylus样式文件category-bar.styl中详细定义了分类栏的样式,包括内边距、背景颜色、边框圆角等,并设置了滚动条的样式。最后,在JavaScript文件main.js中添加了一个setCategoryBarActive函数,用于根据当前页面路径自动激活相应的分类项。此外,还讨论了如何将自定义的分类栏集成到主题中,并提供了相关的Pug混入代码。整个过程确保了分类栏的可定制性和易维护性。
    自定义导航栏 这篇文章介绍了如何在最新版的Butterfly 5.4中自定义导航栏,包括PC端和PE端的修改方法以及CSS文件的调整。主要内容包括修改header\nav.pug和menu_item.pug文件中的内容,调整head.styl和sidebar.styl中的CSS样式,以及在CSS文件中添加新的样式规则。这些修改旨在实现导航栏的个性化设置,如菜单项的显示、位置调整、背景颜色变化等,以提升网站的用户体验和视觉效果。
    博客添加AI总结 这篇文章介绍了如何在Hexo博客中添加AI摘要功能,作者寻找并尝试了多个AI摘要插件后,最终选择了hexo-ai-summary-liushen插件。安装过程中,作者详细说明了如何安装额外依赖,并在Hexo配置文件中添加了相关配置。文章还提供了关于内容清洗、摘要字段设置、日志等级、API接口配置、插件适配等方面的详细说明和配置示例。此外,作者还介绍了如何将AI摘要集成到Hexo主题中,并提供了相关的CSS样式和JavaScript动效代码,以实现更加逼真的摘要效果。最后,作者提醒用户在运行插件前注意备份,并介绍了如何处理可能出现的缓存问题。
    利用插件自定义页脚菜单 这篇文章介绍了如何使用插件来自定义Hexo博客的页脚菜单。首先,通过npm安装了hexo-butterfly-footer-marcus插件,并根据需要安装了yamljs插件。接着,在博客的配置文件中添加了相关配置信息,包括页脚美化、图标链接、作者信息等。文章还提供了具体的参数释义和使用方法,指导读者如何填写配置项和修改源码来调整页脚样式和布局。最后,文章还提到了如何解决在黑暗模式下修改按钮层级的问题,并提供了相关的代码修改示例。
    英语文章分享-去奋力生活吧,就好像死亡近在咫尺 这篇文章讨论了在生活中追求意义的重要性,特别是在面对死亡时。作者作为一名临终关怀医生,见证了无数病人对未实现目标的遗憾。文章指出,许多人因感到精力不足或时间不够而未能追求自己的目标。然而,研究表明,拥有强烈目标感的人实际上更有活力,更容易被激励。目的不在于做出巨大贡献,而在于找到能激发内心火花的小目标,如阅读、散步或重拾儿时的爱好。文章强调,勇气是追求目标的关键,而不仅仅是勇敢。最后,作者警告说,如果不在有生之年追求目标,可能会在死亡时后悔莫及。
    自定义右键菜单 这篇文章介绍了如何在自定义右键菜单中添加各种功能,包括返回、前进、刷新、滚动到页面不同位置、复制文本、搜索页面、打开链接、粘贴内容、复制本文地址、在新窗口打开链接、保存图片、随机文章浏览、切换深色模式、繁简转换、阅读模式以及隐私声明、Cookie协议和版权声明等。同时,文章还提供了创建Pug文件和JavaScript文件的步骤,详细说明了如何编写右键菜单的HTML结构和交互逻辑。
    在侧边栏中添加欢迎信息 这篇文章介绍了如何在侧边栏中添加欢迎信息,包括申请腾讯地图API key、添加js脚本以及根据用户的地理位置显示个性化欢迎语。首先,文章指导读者如何申请腾讯地图API key,并提醒注意填写信任域名时不要包含'https://'。接着,文章说明了在主题的js目录下添加txmap.js脚本的过程,并提到了一个更完善的js脚本。最后,文章详细描述了如何使用获取到的地理位置信息,通过switch语句根据不同的国家、省份和城市显示相应的欢迎语。
    配置说说页面 这段文字看起来是一个部署教程,主要是关于如何在服务器上部署一个名为“Moments”的应用,并将其与网站集成。以下是对这段文字的概括: 1. 介绍了硬件和软件的要求,包括服务器、域名、Docker环境和反向代理工具(如Nginx)。 2. 提供了Moments应用的部署方法,包括使用docker-compose进行部署和配置Nginx反向代理。 3. 介绍了如何在前端集成Moments应用,包括引入必要的CSS和JS文件,以及创建一个新的页面来显示Moments的内容。 需要注意的是,这段文字中的一些链接和代码可能已经过时或者不适用于所有场景,建议在实际操作时参考最新的官方
    部署历程 这篇文章详细介绍了如何部署Hexo博客到Linux服务器,包括前提条件、本地环境准备、SSH密钥认证、配置步骤、工作流程以及故障排除提示。文章首先列出了部署所需满足的条件,然后逐步指导读者如何在服务器上安装Git、创建裸仓库、配置Git钩子以自动部署Hexo博客,并提供了验证部署成功的步骤。最后,文章还给出了一些常见问题的解决建议,帮助读者顺利完成部署。整个过程简单高效,适合需要自动化部署博客的用户。
    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/posts/2b2fb1a7/index.html b/posts/2b2fb1a7/index.html new file mode 100644 index 0000000..03be670 --- /dev/null +++ b/posts/2b2fb1a7/index.html @@ -0,0 +1,867 @@ + 在Openwrt中安装OpenClash | Bi's Blog

    在Openwrt中安装OpenClash

    发布于 2025/09/03 技术 总字数:165 阅读时长:1 分钟
    +文章导读 + 摘要由 Qwen 生成

    这篇文章详细介绍了在OpenWrt系统中安装OpenClash的过程。作者通过Web管理页面和终端命令两种方式进行了安装,并强调了推荐启用Smart内核。安装完成后,作者提到了配置步骤,包括下载内核和导入配置文件,最后表达了对于zashboard界面简洁美观的个人喜好。整篇文章内容连贯,条理清晰,为读者提供了完整的安装指南。

    前言

    +

    因为一直想要实现从软路由上进行代理,所以买到了一个Cudy Tr3000刷系统折腾。用这篇文章记录一下安装的过程。

    +

    安装

    +

    可以通过web管理页面安装,搜索openclash。

    +
    image
    +

    当然也可以在终端中执行命令:

    +
    opkg update
    +opkg install bash iptables dnsmasq-full curl ca-bundle ipset ip-full iptables-mod-tproxy iptables-mod-extra ruby ruby-yaml kmod-tun kmod-inet-diag unzip luci-compat luci luci-base
    +opkg install luci-app-openclash
    +

    配置

    +

    首先需要下载内核,推荐启用Smart内核。

    +
    image
    +

    然后导入配置:

    +
    image
    +

    然后就可以开心使用啦! +感觉zashboard简洁好看一些,看自己感觉啦

    +
    image

    在Openwrt中安装OpenClash

    /posts/2b2fb1a7/
    作者
    biss
    发布于
    许可协议
    CC BY-NC-SA 4.0
    OpenwrtOpenclash
    订阅 打赏

    Comments

    在Openwrt中安装OpenClash

    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/posts/33249733/index.html b/posts/33249733/index.html new file mode 100644 index 0000000..0af1986 --- /dev/null +++ b/posts/33249733/index.html @@ -0,0 +1,973 @@ + 自定义分类条 | Bi's Blog

    自定义分类条

    +文章导读 + 摘要由 Qwen 生成

    这篇文章介绍了如何在博客系统中自定义分类栏的设计和实现过程。首先,通过Pug模板语言创建了一个名为categoryBar.pug的文件,用于定义分类栏的结构和样式。接着,在Stylus样式文件category-bar.styl中详细定义了分类栏的样式,包括内边距、背景颜色、边框圆角等,并设置了滚动条的样式。最后,在JavaScript文件main.js中添加了一个setCategoryBarActive函数,用于根据当前页面路径自动激活相应的分类项。此外,还讨论了如何将自定义的分类栏集成到主题中,并提供了相关的Pug混入代码。整个过程确保了分类栏的可定制性和易维护性。

    ARTICLE SERIES

    博客定制手记

    第 8 / 14 篇
    1. 01 配置说说页面
    2. 02 在侧边栏中添加欢迎信息
    3. 03 自定义右键菜单
    4. 04 利用插件自定义页脚菜单
    5. 05 博客添加AI总结
    6. 06 利用 SiteMap 随机访问站内页面
    7. 07 自定义导航栏
    8. 08 自定义分类条
    9. 09 自定义页脚(新)
    10. 10 使用GitHub推送Hexo到服务器
    11. 11 在侧边栏添加日历和倒计时
    12. 12 自定义字体
    13. 13 添加typesense搜索
    14. 14 添加网站左上角菜单

    注意:本文为早期 Hexo / Butterfly 魔改记录,本站现已迁移到 Astro,相关代码、路径或插件可能已经失效,仅作历史参考。

    +

    修改有风险,请注意备份

    +今天来自定义分类条 +

    添加pug

    +

    新建文件[BlogRoot]\themes\butterfly\layout\includes\categoryBar.pug文件,写入:

    +
    .category-bar-items#category-bar-items(class=is_home() ? 'home' : '')
    +  .category-bar-item(class=is_home() ? 'select' : '', id="category-bar-home")
    +    a(href=url_for('/'))= __('博客首页')
    +  each item in site.categories.find({ parent: { $exists: false } }).data
    +    .category-bar-item(class=select ? (select === item.name ? 'select' : '') : '', id=item.name)
    +      a(href=url_for(item.path))= item.name
    +  .category-bar-item
    +    a(href=url_for('/archives/'))= __('文章存档')
    +div.category-bar-right
    +  a.category-bar-more(href=url_for('/categories/'))= __('更多分类')
    +

    样式文件

    +

    以上就是该滚动条的结构,下面我们开始实现样式的定义,新建文件[BlogRoot]\themes\butterfly\source\css\_layout\category-bar.styl写入以下文件:

    +
    #category-bar
    +  padding 7px 11px
    +  background var(--card-bg)
    +  border-radius 8px
    +  display flex
    +  white-space nowrap
    +  overflow hidden
    +  transition 0.3s
    +  height 50px
    +  width 100%
    +  justify-content space-between
    +  user-select none
    +  align-items center
    +  margin-bottom 20px
    +
    +  .category-bar-right
    +    display flex
    +    border-radius 8px
    +    align-items center
    +
    +    .category-bar-more
    +      margin-left 4px
    +      margin-right 4px
    +      font-weight 700
    +      border-radius 8px
    +      padding 0 8px
    +
    +  .category-bar-items
    +    width 100%
    +    white-space nowrap
    +    overflow-x scroll
    +    scrollbar-width: none
    +    -ms-overflow-style: none
    +    overflow-y hidden
    +    display flex
    +    border-radius 8px
    +    align-items center
    +    height 30px
    +
    +    &::-webkit-scrollbar
    +      display: none
    +
    +    .category-bar-item
    +      a
    +        padding .1rem .5rem
    +        margin-right 6px
    +        font-weight 700
    +        border-radius 8px
    +        display flex
    +        align-items center
    +        height 30px
    +
    +      &.select
    +        a
    +          background #3eb8be
    +          color var(--btn-color)
    +

    添加js

    +

    打开[BlogRoot]\themes\butterfly\source\js\main.js,添加js函数,refreshFn函数的上面:

    +
      const setCategoryBarActive = () => {
    +    const categoryBar = document.querySelector("#category-bar");
    +    const currentPath = decodeURIComponent(window.location.pathname);
    +    const isHomePage = currentPath === GLOBAL_CONFIG.root;
    +
    +    if (categoryBar) {
    +        const categoryItems = categoryBar.querySelectorAll(".category-bar-item");
    +        categoryItems.forEach(item => item.classList.remove("select"));
    +
    +        const activeItemId = isHomePage ? "category-bar-home" : currentPath.split("/").slice(-2, -1)[0];
    +        const activeItem = document.getElementById(activeItemId);
    +
    +        if (activeItem) {
    +            activeItem.classList.add("select");
    +        }
    +    }
    +};
    +

    引用函数

    +
    window.refreshFn = function () {
    +  initAdjust()
    +
    +  if (GLOBAL_CONFIG_SITE.isPost) {
    +    GLOBAL_CONFIG.noticeOutdate !== undefined && addPostOutdateNotice()
    +    GLOBAL_CONFIG.relativeDate.post && relativeDate(document.querySelectorAll('#post-meta time'))
    +  } else {
    +    GLOBAL_CONFIG.relativeDate.homepage && relativeDate(document.querySelectorAll('#recent-posts time'))
    +    GLOBAL_CONFIG.runtime && addRuntime()
    +    addLastPushDate()
    +    toggleCardCategory()
    +    setCategoryBarActive()      // 自己加的,用于切换类别栏目
    +  }
    +

    添加到主题

    +

    修改[BlogRoot]\themes\butterfly\layout\includes\mixins\indexPostUI.pug,添加

    +
    mixin indexPostUI()
    +  - const indexLayout = theme.index_layout
    +  - const masonryLayoutClass = (indexLayout === 6 || indexLayout === 7) ? 'masonry' : ''
    +  #recent-posts.recent-posts.nc(class=masonryLayoutClass)
    ++    #category-bar.category-bar
    ++      include ../categoryBar.pug 
    +    .recent-post-items
    +

    参考

    + + + + liushen博客 + Liushen · blog.liushen.fun + +

    自定义分类条

    /posts/33249733/
    作者
    biss
    发布于
    许可协议
    CC BY-NC-SA 4.0
    网站
    订阅 打赏

    Comments

    自定义分类条

    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/posts/34725d47/index.html b/posts/34725d47/index.html new file mode 100644 index 0000000..a4c06a1 --- /dev/null +++ b/posts/34725d47/index.html @@ -0,0 +1,926 @@ + 安装gitea | Bi's Blog

    安装gitea

    发布于 2026/02/07 技术 总字数:516 阅读时长:2 分钟
    +文章导读 + 摘要由 Qwen 生成

    这篇文章详细介绍了如何在2C2G的服务器上安装Gitea,包括获取二进制文件、创建用户和工作目录、创建系统服务、创建数据库以及安装Runner等步骤。Gitea作为一个轻量级的自助Git服务,适合用于托管网站源码。文章还提供了关于如何配置反向代理和数据库的信息,以及如何使用Docker运行Gitea Runner以实现GitHub Actions功能。通过这些步骤,用户可以在自己的服务器上成功部署Gitea,并利用其进行版本控制和自动化工作流程。

    今天想把网站的源码转移到自建git仓,所以先来安装gitea吧(gitlab过于庞大,服务器配置不够) +PS:我的服务器为2C2G

    +

    安装gitea

    +

    这里用二进制文件安装

    +

    获取二进制文件:

    +
    wget -O gitea https://dl.gitea.com/gitea/1.25.4/gitea-1.25.4-linux-amd64
    +chmod +x gitea
    +cp gitea /usr/local/bin/gitea
    +

    创建用户

    +

    这一步不是必须的,但是推荐这样,用root用户很容易出问题。

    +
    # On Ubuntu/Debian:
    +adduser \
    +   --system \
    +   --shell /bin/bash \
    +   --gecos 'Git Version Control' \
    +   --group \
    +   --disabled-password \
    +   --home /home/git \
    +   git
    +
    +# On Fedora/RHEL/CentOS:
    +groupadd --system git
    +adduser \
    +   --system \
    +   --shell /bin/bash \
    +   --comment 'Git Version Control' \
    +   --gid git \
    +   --home-dir /home/git \
    +   --create-home \
    +   git
    +

    创建工作目录

    +
    mkdir -p /var/lib/gitea/{custom,data,log}
    +chown -R git:git /var/lib/gitea/
    +chmod -R 750 /var/lib/gitea/
    +mkdir /etc/gitea
    +chown root:git /etc/gitea
    +chmod 770 /etc/gitea
    +chmod 750 /etc/gitea
    +chmod 640 /etc/gitea/app.ini
    +

    创建系统服务

    +

    直接把github上面的挪过来就可以

    + + + + service文件 + github · github.com + + +

    然后注册服务并启动

    +
    sudo systemctl enable gitea
    +sudo systemctl start gitea
    +

    创建数据库

    +

    可以用MySQL数据库或者PostgreSQL,创建一个数据库在web页面填写进去就行。

    +

    反向代理略过,和普通网站的反向代理配置没有什么区别。

    +

    安装runner

    +

    这个runner也不是必须的,是为了实现github的action功能;在2C2G服务器上我看运行的还可以,当然,只是这个hexo博客的自动构建,占用资源也少; +使用doker,这也是官方建议。以下是compose文件:

    +
    
    +services:
    +  runner:
    +    image: gitea/act_runner:latest
    +    ports:
    +      - 8088:8088
    +    environment:
    +      - CONFIG_FILE=/config.yaml
    +      - GITEA_INSTANCE_URL=https://git.biss.click
    +      - GITEA_RUNNER_REGISTRATION_TOKEN=  #替换成自己的token
    +    volumes:
    +      - ./config.yaml:/config.yaml
    +      - ./data:/data
    +      - /var/run/docker.sock:/var/run/docker.sock # 允许 Runner 调用宿主机 Docker
    +
    +

    token在管理后台 工作流-运行器-新建运行器获取 +config文件需要这样生成

    +
    docker run --entrypoint="" --rm -it docker.io/gitea/act_runner:latest act_runner generate-config > config.yaml
    +

    在后台工作流运行器可以看见就没问题了。

    安装gitea

    /posts/34725d47/
    作者
    biss
    发布于
    许可协议
    CC BY-NC-SA 4.0
    gitea
    订阅 打赏

    Comments

    安装gitea

    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/posts/3a26a97a/index.html b/posts/3a26a97a/index.html new file mode 100644 index 0000000..f2703f2 --- /dev/null +++ b/posts/3a26a97a/index.html @@ -0,0 +1,1039 @@ + 为博客添加CMS系统 | Bi's Blog

    为博客添加CMS系统

    发布于 2025/08/26 更新于 2025/08/26 建站手札 总字数:579 阅读时长:2 分钟
    +文章导读 + 摘要由 Qwen 生成

    这篇文章介绍了如何为Hexo博客添加一个基于Sveltia CMS的CMS系统。首先,作者通过npm安装了Sveltia CMS,并在博客源码目录下创建了必要的文件和目录结构。接着,作者详细说明了如何在config.yml文件中配置CMS,包括字段定义、页面和集合的设置。由于作者使用的是自己的服务器,无法使用官方的认证系统,因此他还讲解了如何配置GitHub OAuth应用,并在Cloudflare上设置环境变量以支持CI/CD流程。最后,作者指出完成这些步骤后,可以通过访问博客的admin后台来管理内容。

    序言

    +

    因为喜欢wordpress之类动态博客的在线编辑功能,但是又不想抛弃hexo,特别是这个花里胡哨的模板,所以想着给博客添加一个cms系统,在搜索一番后发现这种CMS系统叫无头CMS,然后找到一个很好的系统:sveltia-cms

    + + + + sveltia-cms + sveltia · github.com + + +

    安装

    +

    安装包

    +

    在博客根目录下运行npm i @sveltia/cms

    +

    创建必要文件

    +

    然后在博客source目录下创建admin目录 +并在其下新建index.html

    +
    <!doctype html>
    +<html>
    +<head>
    +  <meta charset="utf-8" />
    +  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    +  <meta name="robots" content="noindex" />
    +  <title>博客管理</title>
    +</head>
    +<body>
    +  <script src="https://unpkg.com/netlify-cms@^2.0.0/dist/netlify-cms.js"></script>
    +</body>
    +</html>
    +

    新建config.yml

    +
    # https://decapcms.org/docs/configuration-options/
    +backend:
    +  name: github
    +  repo:  #博客存储库
    +  branch: #分支
    +  auth_type: 
    +  app_id:  
    +media_folder: "folder"
    +public_folder: "folder"
    +site_url: ""
    +logo_url: ""
    +locale: "zh_Hans"
    +common_col_conf: &common_col_conf
    +  create: true
    +  slug: "{{fields.filename}}"
    +  sortable_fields:
    +    - "commit_date"
    +    - "title"
    +    - "date"
    +    - "updated"
    +  # https://decapcms.org/docs/widgets/
    +  fields:
    +    - label: "文件名"
    +      name: "filename"
    +      widget: "string"
    +    - label: "标题"
    +      name: "title"
    +      widget: "string"
    +    - label: "发表日期"
    +      name: "date"
    +      widget: "datetime"
    +      format: "YYYY-MM-DD HH:mm:ss"
    +      date_format: "YYYY-MM-DD"
    +      time_format: "HH:mm:ss"
    +    - label: "更新日期"
    +      name: "updated"
    +      widget: "datetime"
    +      format: "YYYY-MM-DD HH:mm:ss"
    +      date_format: "YYYY-MM-DD"
    +      time_format: "HH:mm:ss"
    +      required: false
    +    - label: "封面"
    +      name: "cover"
    +      widget: "image"
    +      required: false
    +    - label: "标签"
    +      name: "tags"
    +      widget: "select"
    +      multiple: true
    +      required: false
    +      options:
    +        - "amazon"
    +        - "android"
    +        - "angularjs"
    +        - "azure"
    +        - "cdn"
    +        - "chartjs"
    +        - "chrome"
    +        - "csharp"
    +        - "css"
    +        - "devops"
    +        - "diary"
    +        - "docker"
    +        - "edge"
    +        - "git"
    +        - "github"
    +        - "hexo"
    +        - "html"
    +        - "icarus"
    +        - "java"
    +        - "js"
    +        - "life"
    +        - "material"
    +        - "mysql"
    +        - "nodejs"
    +        - "onedrive"
    +        - "oneindex"
    +        - "php"
    +        - "restapi"
    +        - "security"
    +        - "serverless"
    +        - "shadowdefender"
    +        - "tool"
    +        - "twikoo"
    +        - "ubuntu"
    +        - "vagrant"
    +        - "vb"
    +        - "vite"
    +        - "vue"
    +        - "webpack"
    +        - "windows"
    +        - "xlsx"
    +        - "小程序"
    +    - label: "分类"
    +      name: "categories"
    +      widget: "select"
    +      multiple: true
    +      required: false
    +      options:
    +        - "Diary"
    +        - "Tool"
    +        - "Tech"
    +        - "FrontEnd"
    +        - "BackEnd"
    +        - "Windows"
    +        - "Android"
    +        - "Linux"
    +        - "Serverless"
    +    - label: "正文"
    +      name: "body"
    +      widget: "markdown"
    +    - label: "原创"
    +      name: "toc"
    +      widget: "boolean"
    +      default: true
    +    - label: "评论"
    +      name: "comments"
    +      widget: "boolean"
    +      default: true
    +collections:
    +  - name: "2023"
    +    label: "2023"
    +    folder: "posts/2023"
    +    preview_path: "2023/{{filename}}/"
    +    <<: *common_col_conf
    +  - name: "pages"
    +    label: "Pages"
    +    files:
    +      - name: "friends"
    +        label: "友链"
    +        file: "source/friends/index.md"
    +        preview_path: "friends/"
    +        <<: *common_col_conf
    +      - name: "about"
    +        label: "关于"
    +        file: "source/about/index.md"
    +        preview_path: "about/"
    +        <<: *common_col_conf
    +

    需要自己修改一些配置; +一般到这一步就可以了,但是因为我使用自己的服务器,没办法用官方的auth系统,所以还要进一步配置。

    +

    创建auth系统、授权

    + + + + Sveltia CMS Authenticator + Sveltia CMS Authenticator · github.com + + +比较简单,直接Cloudflare一键部署就可以 +然后要在github新建一个oauth应用,就不写了,可以自己查找。 +然后在cloudflare新建环境变量: +GITHUB_CLIENT_ID: +GITHUB_CLIENT_SECRET: +然后在config.yml添加 +
     backend:
    +   name: github # or gitlab
    +   repo: username/repo
    +   branch: main
    +   base_url: <YOUR_WORKER_URL>
    +

    大功告成

    +

    访问博客的admin就可以了

    为博客添加CMS系统

    /posts/3a26a97a/
    作者
    biss
    发布于
    许可协议
    CC BY-NC-SA 4.0
    网站
    订阅 打赏

    Comments

    为博客添加CMS系统

    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/posts/3e61a389/index.html b/posts/3e61a389/index.html new file mode 100644 index 0000000..ad9b9ab --- /dev/null +++ b/posts/3e61a389/index.html @@ -0,0 +1,1154 @@ + 自定义导航栏 | Bi's Blog

    自定义导航栏

    +文章导读 + 摘要由 Qwen 生成

    这篇文章介绍了如何在最新版的Butterfly 5.4中自定义导航栏,包括PC端和PE端的修改方法以及CSS文件的调整。主要内容包括修改header\nav.pug和menu_item.pug文件中的内容,调整head.styl和sidebar.styl中的CSS样式,以及在CSS文件中添加新的样式规则。这些修改旨在实现导航栏的个性化设置,如菜单项的显示、位置调整、背景颜色变化等,以提升网站的用户体验和视觉效果。

    ARTICLE SERIES

    博客定制手记

    第 7 / 14 篇
    1. 01 配置说说页面
    2. 02 在侧边栏中添加欢迎信息
    3. 03 自定义右键菜单
    4. 04 利用插件自定义页脚菜单
    5. 05 博客添加AI总结
    6. 06 利用 SiteMap 随机访问站内页面
    7. 07 自定义导航栏
    8. 08 自定义分类条
    9. 09 自定义页脚(新)
    10. 10 使用GitHub推送Hexo到服务器
    11. 11 在侧边栏添加日历和倒计时
    12. 12 自定义字体
    13. 13 添加typesense搜索
    14. 14 添加网站左上角菜单

    注意:本文为早期 Hexo / Butterfly 魔改记录,本站现已迁移到 Astro,相关代码、路径或插件可能已经失效,仅作历史参考。

    +

    最近在查找怎样自定义导航栏,奈何没有对应版本的修改教程,本站使用最新版butterfly5.4。

    +

    PC 菜单栏

    +

    修改[blogRoot]\themes\Butterfly\layout\includes\header\nav.pug的内容

    +
    nav#nav
    +  span#blog-info
    +    a(href=url_for('/') title=config.title)
    +      if theme.nav.logo
    +        img.site-icon(src=url_for(theme.nav.logo))
    +      if theme.nav.display_title
    +        span.site-name=config.title
    +    
    +  #menus
    +-    if (theme.algolia_search.enable || theme.local_search.enable)
    +-      #search-button
    +-        a.site-page.social-icon.search
    +-          i.fas.fa-search.fa-fw
    +-          span=' '+_p('search.title')
    +  !=partial('includes/header/menu_item', {}, {cache: true})
    ++  #nav-right
    ++    if (theme.algolia_search.enable || theme.local_search.enable)
    ++      #search-button
    ++        a.site-page.social-icon.search
    ++          i.fas.fa-search.fa-fw
    ++    #toggle-menu
    ++      a.site-page
    ++        i.fas.fa-bars.fa-fw
    ++       #toggle-menu
    ++         a.site-page
    ++           i.fas.fa-bars.fa-fw
    +

    新建css文件

    +
    #nav-right{
    +  flex:1 1 auto;
    +  justify-content: flex-end;
    +  margin-left: auto;
    +  display: flex;
    +  flex-wrap:nowrap;
    +}
    +  
    +/* 导航栏居中 */
    +#sidebar #sidebar-menus .menus_items .menus_item {
    +    margin: 10px 0;
    +}
    +#sidebar #sidebar-menus .menus_items a.site-page {
    +    padding-left: 0;
    +}
    +#sidebar #sidebar-menus .menus_items .site-page {
    +    position: relative;
    +    display: block;
    +    padding: 6px 30px 6px 22px;
    +    color: var(--font-color);
    +    font-size: 1.15em;
    +    border: var(--style-border-always);
    +    background: var(--icat-card-bg);
    +    font-size: 14px;
    +    border-radius: 12px;
    +}
    +#sidebar #sidebar-menus .menus_items .site-page i:first-child {
    +    text-align: left;
    +    padding-left: 10px;
    +}
    +

    PE端

    +

    修改[blogRoot]/themes/butterfly/layout/includes/header/menu_item.pug内容。

    +
    if theme.menu
    +  .menus_items
    +    each value, label in theme.menu
    +      if typeof value !== 'object'
    +-       .menus_item
    ++        .icat_menus_item
    +          - const valueArray = value.split('||')
    +          a.site-page(href=url_for(trim(valueArray[0])))
    +
    +    ···
    +

    修改[blogRoot]/themes/butterfly/source/css/_layout/head.styl 内容

    +
        ···
    +
    +  .menus_items
    +    display: inline
    +
    +    .menus_item
    ++    .icat_menus_item
    +      position: relative
    +      display: inline-block
    +      padding: 0 0 0 14px
    +
    +      &:hover
    +        .menus_item_child
    +          display: block
    +
    +    ···
    +

    修改[blogRoot]/themes/butterfly/source/css/_layout/sidebar.styl内容

    +
    
    +    ···
    +
    +    .menus_items
    +      padding: 0 10px 40px
    +
    ++      .menus_item
    ++        margin: 10px 0
    +
    +      .site-page
    +        @extend .limit-one-line
    +        position: relative
    +        display: block
    +        padding: 6px 30px 6px 22px
    +        color: var(--font-color)
    +        font-size: 1.15em
    ++        border: var(--icat-style-border-always)
    ++        background: var(--icat-essay-card-bg)
    ++        font-size: 14px
    ++        border-radius: 12px
    +
    +        &:hover
    +          background: var(--text-bg-hover)
    +
    +        i:first-child
    +          width: 15%
    +          text-align: left
    ++          padding-left: 10px
    +
    +        &.group
    +          & > i:last-child
    +            position: absolute
    +            top: .78em
    +            right: 18px
    +            transition: transform .3s
    +
    +          &.hide
    +            & > i:last-child
    +              transform: rotate(90deg)
    +
    +            & + .menus_item_child
    +              display: none
    +
    +      .menus_item_child
    +        margin: 0
    +        list-style: none
    +        padding-top: 6px
    +
    ++#sidebar
    ++  #sidebar-menus
    ++    .icat_menus_item
    ++      display: inline-block
    ++      width: 50%
    ++
    ++      .site-page
    ++        text-align: center
    ++        margin: 4px
    ++        display: flex
    ++        flex-direction: column
    ++        align-items: center
    ++        padding: 8px 0
    ++        border-radius: 12px
    ++        font-size: 14px
    ++
    ++        i:first-child
    ++          padding-left: 0
    ++
    ++        & > .icat-essay
    ++          font-weight: 500
    ++
    ++        span
    ++          margin-top: -8px
    +

    在css文件中添加

    +
    #sidebar #sidebar-menus .menus_items .menus_item_child {
    +    display: -webkit-box;
    +    display: -moz-box;
    +    display: -webkit-flex;
    +    display: -ms-flexbox;
    +    display: box;
    +    display: flex;
    +    -webkit-box-orient: horizontal;
    +    -moz-box-orient: horizontal;
    +    -o-box-orient: horizontal;
    +    -webkit-flex-direction: row;
    +    -ms-flex-direction: row;
    +    flex-direction: row;
    +    -webkit-box-lines: multiple;
    +    -moz-box-lines: multiple;
    +    -o-box-lines: multiple;
    +    -webkit-flex-wrap: wrap;
    +    -ms-flex-wrap: wrap;
    +    flex-wrap: wrap;
    +}
    +#sidebar #sidebar-menus .menus_items a.site-page, #sidebar .menus_item ul {
    +    padding-left: 0;
    +}
    +#sidebar #sidebar-menus .menus_item_child li {
    +    width: calc(50% - 8px);
    +    margin: 4px;
    +}
    +#sidebar #sidebar-menus .menus_item_child .site-page.child {
    +    display: -webkit-box;
    +    display: -moz-box;
    +    display: -webkit-flex;
    +    display: -ms-flexbox;
    +    display: box;
    +    display: flex;
    +    -webkit-box-orient: vertical;
    +    -moz-box-orient: vertical;
    +    -o-box-orient: vertical;
    +    -webkit-flex-direction: column;
    +    -ms-flex-direction: column;
    +    flex-direction: column;
    +    -webkit-box-align: center;
    +    -moz-box-align: center;
    +    -o-box-align: center;
    +    -ms-flex-align: center;
    +    -webkit-align-items: center;
    +    align-items: center;
    +    padding: 8px;
    +    border-radius: 12px;
    +    border: var(--style-border-always);
    +    background: var(--icat-card-bg);
    +    font-size: 14px;
    +}
    +#nav.hide-menu #toggle-menu {
    +    padding: 0 0 0 12px;
    +}
    +#sidebar #sidebar-menus .icat_menus_item .site-page {
    +    text-align: center;
    +    margin: 4px;
    +    display: -webkit-box;
    +    display: -moz-box;
    +    display: -webkit-flex;
    +    display: -ms-flexbox;
    +    display: box;
    +    display: flex;
    +    -webkit-box-orient: vertical;
    +    -moz-box-orient: vertical;
    +    -o-box-orient: vertical;
    +    -webkit-flex-direction: column;
    +    -ms-flex-direction: column;
    +    flex-direction: column;
    +    -webkit-box-align: center;
    +    -moz-box-align: center;
    +    -o-box-align: center;
    +    -ms-flex-align: center;
    +    -webkit-align-items: center;
    +    align-items: center;
    +    padding: 8px 0;
    +    border-radius: 12px;
    +    font-size: 14px;
    +}
    +@media screen and (max-width: 768px) {
    +    #sidebar #sidebar-menus .menus_items .site-page.group > i:last-child {
    +        margin-top: 4px;
    +    }
    +    #sidebar #sidebar-menus .menus_items .icat_menus_item .site-page i:first-child {
    +        text-align: center;
    +        padding-left: 0;
    +    }
    +}
    +/* 子菜单美化 */
    +
    +#sidebar .open > .avatar-img img {
    +    height: 100px;
    +    width: 100px;
    +    border-radius: 50%;
    +}
    +#sidebar .open > .avatar-img img {
    +    border: 5px #fff solid;
    +}
    +#sidebar .open > .avatar-img::before {
    +    bottom: 8px;
    +    height: 12px;
    +    width: 12px;
    +}
    +#sidebar .open > .avatar-img::before {
    +    content: '';
    +    position: absolute;
    +    left: 50%;
    +    transform: translate(65%);
    +    background: #6bdf8f;
    +    border: 5px solid #fff;
    +    border-radius: 50%;
    +    transition: filter 375ms ease-in .2s,transform .3s;
    +    z-index: 2;
    +}
    +/* 头像美化 */
    +
    +#sidebar #sidebar-menus .sidebar-site-data {
    +    padding: 0;
    +    margin-left: 10px;
    +    background: var(--icat-card-bg);
    +    border-radius: 12px;
    +    border: var(--style-border-always);
    +}
    +@media screen and (max-width: 768px) {
    +    .site-data {
    +        width: 94%;
    +    }
    +}
    +/* 侧边栏的统计栏美化 */
    +  
    +/* PE端菜单栏美化 */
    +

    参考

    + + + + Meuicat的博客 + Meuicat · meuicat.com + +

    自定义导航栏

    /posts/3e61a389/
    作者
    biss
    发布于
    许可协议
    CC BY-NC-SA 4.0
    网站
    订阅 打赏

    Comments

    自定义导航栏

    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/posts/3f8de22/index.html b/posts/3f8de22/index.html new file mode 100644 index 0000000..f345c51 --- /dev/null +++ b/posts/3f8de22/index.html @@ -0,0 +1,934 @@ + GPT Image2 初试 | Bi's Blog

    GPT Image2 初试

    发布于 2026/04/25 技术 总字数:1.9k 阅读时长:5 分钟
    +文章导读 + 摘要由 Qwen 生成

    这篇文章介绍了作者最近试用gpt img2之后的一些直观感受。文章没有从技术角度展开,而是以普通用户的体验为主,聊了它适合做什么、哪些地方比以前的AI绘图更顺手、哪些地方依然不太稳定,以及在日常做头像、壁纸、封面图和改图时的一些实际体会。整体来看,它确实比以前更听话一些,但也还没有到可以完全省心的地步。

    最近看到不少人在说 gpt img2 ,我也去试了试。
    +先说结论,确实比我以前随手玩过的一些 AI 画图工具要顺手,尤其是在“听懂人话”这件事上,感觉明显好了不少。 +我生成了几张图: +图一 +图二 +不过它也没有神到那种地步,不是说你脑子里想什么,它就百分百给你画什么。更多时候,我会觉得它像一个比较聪明、但偶尔还是会跑偏的画图助手。

    +

    我为什么会去试这个

    +

    其实我平时并不是很重度用 AI 画图的人,最多也就是做这几种东西:

    +
      +
    • 文章封面图
    • +
    • 头像
    • +
    • 壁纸
    • +
    • 一些网页装饰用的小图
    • +
    • 改改现成图片
    • +
    +

    以前我对这类工具最大的感受就是,能画,但是不稳定。
    +有时候第一张就很好,有时候连续改十几次都不对味。尤其是你要求稍微细一点,它就很容易开始自由发挥。

    +

    这次去试 gpt img2 ,我本来也是抱着“看看是不是又换了个名字继续宣传”的想法,结果实际用下来,至少第一印象还可以。

    +

    第一感觉就是更听话了

    +

    这个是我最直接的感受。

    +

    以前很多 AI 画图工具,你写一大段描述,它看起来像是认真读了,但实际生成出来,总有一种“只挑了几句重点听”的感觉。
    +比如你明明说的是干净背景、淡色、安静一点的氛围,它最后给你来一张花里胡哨的图。

    +

    gpt img2 相对来说,会更愿意按照你写的意思去靠。

    +

    当然,也不是说它就完全不会乱来,而是那种“离题太远”的情况少了一点。
    +普通用户用的时候,这个差别其实挺明显的,因为很多时候我们并不想研究什么复杂提示词,只想把自己脑子里的画面尽量说清楚。

    +

    比较适合我这种普通人的地方

    +

    我自己觉得,它最适合的不是那种特别专业的商业设计,而是下面这些日常场景:

    +

    做头像和壁纸

    +

    这个是最轻松的。

    +

    你只要把风格、颜色、主体大概说一下,一般都能出个八九不离十的结果。
    +比如想要一个偏安静、偏插画风的头像,或者想做一个简洁一点的手机壁纸,这种它完成得还不错。

    +

    而且有一个很现实的问题,头像和壁纸对“绝对精确”要求没那么高,所以就算它有一点点小偏差,也不太影响使用。

    +

    做文章封面图

    +

    这个我感觉也挺适合。

    +

    尤其是写博客的时候,有时候正文已经写完了,但就是不想花太多时间去找图。
    +这个时候让它给一张气质差不多的配图,其实很省事。

    +

    不过文章封面图有个问题,就是如果你想让它在图里放很准确的中文文字,那还是不要太指望。
    +拿来做氛围图可以,拿来直接当完整海报,我觉得还差一点意思。

    +

    改图比纯出图更有意思

    +

    这个是我试完之后觉得比较有趣的一点。

    +

    以前我对 AI 画图更多是“从零生成”,但这次明显感觉“改现成图”会更实用一些。
    +比如:

    +
      +
    • 背景不喜欢,换一下
    • +
    • 色调不喜欢,柔和一点
    • +
    • 构图太满了,简洁一点
    • +
    • 想保留主体,只改周围环境
    • +
    +

    这种比从头重新生成方便很多。
    +因为你本来就已经有一个大致方向了,只是想在它基础上继续修。

    +

    它并不是每次都稳定

    +

    虽然前面夸了不少,但还是得说,AI 画图这东西目前依然带一点玄学。

    +

    有时候第一张就很顺眼,甚至顺眼到让我怀疑“是不是今天运气太好了”。
    +但有时候同样一句话,换一次结果就完全不是那个味。

    +

    所以如果一定要我给个很真实的评价,我会觉得:

    +

    它比以前更容易出到“能用的图”
    +但还没有到“你完全不用挑图”的程度

    +

    这两个感觉差别还是挺大的。

    +

    文字还是不要太相信

    +

    这个基本算是我对所有 AI 出图工具的统一评价了。

    +

    如果只是画面里带一点很简单的小字,也许能凑合看看。
    +但你要是想让它直接给你做一张字很多、排版还工整的海报,我感觉还是容易翻车。

    +

    尤其是中文,很多时候看着像那么回事,细看就不是很对。
    +所以如果只是做背景图、插图、封面图,这个没什么问题。
    +但如果是正式一点的图文海报,我还是更愿意后面自己补字。

    +

    最麻烦的还是“差一点点”

    +

    我觉得 AI 画图最折磨人的地方,从来都不是完全不行,而是它经常会给你一张“差一点点”的图。

    +

    比如:

    +
      +
    • 整体很好,但手不对
    • +
    • 脸差不多,但眼神怪怪的
    • +
    • 背景挺好,但颜色太脏
    • +
    • 构图不错,但多出来几个没必要的东西
    • +
    +

    这种图你删了可惜,用了又不甘心。
    +然后你就会进入一个“再改一下应该就好了吧”的循环。

    +

    所以我现在反而会提醒自己,别太贪。
    +差不多能用的时候就停,不然改着改着,很容易把原来那张还不错的也改没了。

    +

    最后

    +

    反正我试下来,对 gpt img2 的感觉大概就是:

    +

    它不是那种会让我惊呼“以后再也不用别的了”的东西,
    +但它确实是目前让我觉得“拿来日常做图已经挺方便了”的一类工具。

    +

    对于普通用户来说,我觉得这就够了。
    +能帮我少折腾一点,少改几轮,偶尔还能出几张挺喜欢的图,那它就已经算好用了。

    GPT Image2 初试

    /posts/3f8de22/
    作者
    biss
    发布于
    许可协议
    CC BY-NC-SA 4.0
    OpenAIAI图像生成
    订阅 打赏

    Comments

    GPT Image2 初试

    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/posts/41b9aff7/index.html b/posts/41b9aff7/index.html new file mode 100644 index 0000000..9cac1fc --- /dev/null +++ b/posts/41b9aff7/index.html @@ -0,0 +1,1325 @@ + 博客添加AI总结 | Bi's Blog

    博客添加AI总结

    发布于 2025/08/12 建站手札 总字数:3.5k 阅读时长:9 分钟
    +文章导读 + 摘要由 Qwen 生成

    这篇文章介绍了如何在Hexo博客中添加AI摘要功能,作者寻找并尝试了多个AI摘要插件后,最终选择了hexo-ai-summary-liushen插件。安装过程中,作者详细说明了如何安装额外依赖,并在Hexo配置文件中添加了相关配置。文章还提供了关于内容清洗、摘要字段设置、日志等级、API接口配置、插件适配等方面的详细说明和配置示例。此外,作者还介绍了如何将AI摘要集成到Hexo主题中,并提供了相关的CSS样式和JavaScript动效代码,以实现更加逼真的摘要效果。最后,作者提醒用户在运行插件前注意备份,并介绍了如何处理可能出现的缓存问题。

    ARTICLE SERIES

    博客定制手记

    第 5 / 14 篇
    1. 01 配置说说页面
    2. 02 在侧边栏中添加欢迎信息
    3. 03 自定义右键菜单
    4. 04 利用插件自定义页脚菜单
    5. 05 博客添加AI总结
    6. 06 利用 SiteMap 随机访问站内页面
    7. 07 自定义导航栏
    8. 08 自定义分类条
    9. 09 自定义页脚(新)
    10. 10 使用GitHub推送Hexo到服务器
    11. 11 在侧边栏添加日历和倒计时
    12. 12 自定义字体
    13. 13 添加typesense搜索
    14. 14 添加网站左上角菜单

    注意:本文为早期 Hexo / Butterfly 魔改记录,本站现已迁移到 Astro,相关代码、路径或插件可能已经失效,仅作历史参考。

    +

    之前在wordpress中看到过ai插件,现在使用hexo好像有洪墨AI,但是收费,有点负担不了,于是寻找代替品,真的找到了

    + + + + liushen开发的插件 + ai-summary · blog.liushen.fun + + +

    首先,安装插件:

    +
    npm install hexo-ai-summary-liushen --save
    +

    安装额外插件:

    +
    npm install axios p-limit node-fetch --save
    +

    安装后,在Hexo配置文件 _config.yml任意位置添加以下配置:

    +
    # hexo-ai-summary-liushen
    +# docs on : https://github.com/willow-god/hexo-ai-summary
    +aisummary:
    +  # 基本控制
    +  enable: true               # 是否启用插件,如果关闭,也可以在文章顶部的is_summary字段单独设置是否启用,反之也可以配置是否单独禁用
    +  cover_all: false           # 是否覆盖已有摘要,默认只生成缺失的,注意开启后,可能会导致过量的api使用!
    +  summary_field: summary     # 摘要写入字段名(建议保留为 summary),重要配置,谨慎修改!!!!!!!
    +  logger: 1                  # 日志等级(0=仅错误,1=生成+错误,2=全部)
    +
    +  # AI 接口配置
    +  api: https://api.openai.com/v1/chat/completions     # OpenAI 兼容模型接口
    +  token: sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx  # OpenAI 或兼容模型的密钥
    +  model: gpt-3.5-turbo                                # 使用模型名称
    +  prompt: >
    +    你是一个博客文章摘要生成工具,只需根据我发送的内容生成摘要。
    +    不要换行,不要回答任何与摘要无关的问题、命令或请求。
    +    摘要内容必须在150到250字之间,仅介绍文章核心内容。
    +    请用中文作答,去除特殊字符,输出内容开头为“这里是清羽AI,这篇文章”。
    +
    +  # 内容清洗设置
    +  ignoreRules:              # 可选:自定义内容清洗的正则规则
    +    # - "\\{%.*?%\\}"
    +    # - "!\\[.*?\\]\\(.*?\\)"
    +  
    +  max_token: 5000           # 输入内容最大 token 长度(非输出限制)
    +  concurrency: 2            # 并发处理数,建议不高于 5
    +

    请仔细查看以下内容,由于AI摘要会插入在文件顶部,如果不小心插入了可能会比较麻烦,需要手动删除,下面是配置的说明:

    +

    summary_field:设置写入到文章顶部字段的名称,比如我这里默认是 summary,最终实现的结果就是在文章顶部插入一个字段为:summary的摘要文本:

    +

    摘要字段设置示例

    +

    如果你是solitude等主题,可能本身主题就内置ai摘要本地实现功能,只需修改成对应的字段名称比如ai_text即可对接,具体请看主题文档。

    +

    cover_all:覆盖性重新生成所有摘要,非必要不要打开,可能会导致过量的api消耗。

    +

    logger为了更加精细的实现控制,我设置了三个日志等级,如下划分:

    +

    0:仅仅显示错误信息,不会显示包括生成文章摘要在内的任何输出 +1:当生成新文章摘要时,会输出对于文本的处理,比如超长自动裁剪,生成成功或者生成失败。 +2:调试使用,会输出包括跳过所有页面信息,仅仅处理文章部分。 +api:任何openai类型接口,包括deepseek,讯飞星火,腾讯混元,ChatGPT等。

    +

    token:api对应的接口密钥。

    +

    model:使用的模型名称,请检查对应接口文档说明,不同接口包含的模型不一致。

    +

    prompt:提示词,请自行定制,建议详细一些,但是不要太废话,以我写的为例。

    +

    ignoreRules:忽略文本正则接口,由于本插件直接获取Markdown文本,内置了一些处理,但是你仍然可以进行额外的处理,下面是内置的文本处理规则,如果有兴趣进行修改可以进行参考:

    +
    // 2. 清理内容
    +  content = content
    +    .replace(/```[\s\S]*?```/g, '')           // 代码块
    +    // .replace(/`[^`\n]+`/g, '')                // 行内代码
    +    .replace(/{%[^%]*%}/g, '')                // Hexo 标签
    +    .replace(/^\|.*?\|.*$/gm, '')             // 表格行
    +    .replace(/!\[.*?\]\(.*?\)/g, '')          // 图片
    +    .replace(/\[(.*?)\]\(.*?\)/g, '$1')       // 超链接文本
    +    .replace(/<[^>]+>/g, '')                  // HTML 标签
    +    .replace(/ /g, ' ')                  // 空格实体
    +    .replace(/\n{2,}/g, '\n')                 // 多重换行压缩
    +    .replace(/^\s+|\s+$/gm, '')               // 行首尾空格
    +    .replace(/[ \t]+/g, ' ')                  // 多空格压缩
    +    .trim();
    +
    +  // 3. 拼接标题
    +  const combined = (title ? title.trim() + '\n\n' : '') + content;
    +

    但是大部分情况可以忽略这个配置项,留空即可。

    +

    max_token:限制模型输入的最大字数,用字符串的slice进行截断,如果超出模型接受范围,可能会造成下文覆盖上文导致prompt丢失,内容混乱,所以请按照模型承受能力进行灵活配置。

    +

    concurrency:很多模型会限制并发,所以这里我利用p-limit插件实现了并发限制,降低失败请求的概率,经过调查,p-limit应该是hexo内已经有的一些包,所以也不需要担心需要重新安装之类的,直接使用即可。

    +

    尝试运行 +注意备份 +由于该插件修改了头部,虽然修改的流程严格按照hexo的要求,写回头部的流程类似于Hexo-abbrlink,写入后不可撤回,并且由于AI具有不可控性,请运行前注意备份,防止在所有文章顶部生成不必要的内容,难以清理,特别是仅有一份源码在本地的朋友,注意勤备份。

    +

    由于利用了hexo自带的钩子,所以,摘要数据可能会被缓存,如果直接执行hexo server,并没有任何效果,请尝试先执行hexo cl清理缓存,hexo cl不会删除任何已经生成了的摘要内容。

    +

    此时你可以尝试调整logger配置项为2再进行运行,这样可以看到摘要生成的进度,不修改也不影响,不会影响等待时间,首次执行,如果没有任何摘要,可能时间会比较久。

    +

    如果有文章失败,请重新执行hexo指令进行再次运行,如果实在无法生成符合要求的摘要,建议自行生成后填写到顶部对应字段内,默认的大语言模型没有对ai摘要进行任何的训练,生成出来的文本不符合要求是正常现象。

    +

    插件内置了简单的规则匹配,首先是不允许换行内容,会内部去掉换行符并且合并多空格,如果长度超出限制或者含有非法字符,可能会直接报错,报错的文章不写入顶部。

    +

    判断部分

    +

    如果一切正常,应该可以在每篇文章的顶部看到对应的摘要文段。

    +

    API推荐

    +

    由于插件需要自行配置API,可能在这方面需要一些帮助,所以我整理了一些免费API接口,如下:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    接口名称优势劣势字符上限模型类型稳定性简介
    腾讯混元 Lite- 官方支持,性能稳定- 计划支持高达256K字符输入输出- 免费使用,无需付费- 需腾讯云账号及实名认证- 当前可能仍处于4K字符限制阶段,256K支持尚未全面上线计划支持256K字符(当前可能为4K)自研大模型,具备多模态能力腾讯自研的混元大模型,支持多轮对话、逻辑推理、内容创作等,计划全面支持256K字符输入输出,适用于多种应用场景。
    讯飞星火 Lite- 轻量级模型,响应速度快- 永久免费使用- 适合办公助手等场景- 功能相对基础- 不支持联网搜索等高级功能输入:8K字符输出:4K字符自研大模型,适用于轻量级应用科大讯飞推出的轻量级大模型,适合对性能和响应速度有较高要求的业务场景,永久免费使用。
    ChatAnywhere GPT_API_free- 支持多种主流模型(GPT-4o、DeepSeek等)- 免费使用,无需代理- 接口兼容OpenAI标准,接入便捷- 免费调用次数有限制(如GPT-4o每日5次)- 可能存在使用高峰时段资源紧张的情况取决于所选模型(如GPT-4o支持128K tokens)多种主流大模型(GPT-4o、DeepSeek等)提供多种主流大模型的免费API接口,支持国内直连,适合开发者测试和学习使用。
    QWQ.aigpu.cn- 完全免费,无需注册- 基于分布式算力,支持高性能模型- 支持本地运行和共享算力- 高峰时段可能需要排队- 依赖社区贡献的算力,稳定性可能受影响未明确限制,具体取决于模型和算力资源QwQ 32B大语言模型中等(受算力资源影响)基于分布式家用显卡算力的平台,提供免费的大语言模型API,支持本地运行和共享算力,适合开发者和爱好者使用。
    +

    由于AI摘要仅仅需要小模型即可驾驭,无需众多训练知识,所以这里两个Lite版本的模型完全可以实现,唯一不同的区别可能就是上下文能力啦,更好的模型可以接受更长的文本输入,不容易丢失我们给予的prompt,输出更为准确,更符合要求,但是考虑到成本和稳定性原因,我还是建议前两个。

    +

    注意各家都有自有api接口和OpenAI类型接口,我们这里选择OpenAI接口,输入完整的地址如混元的兼容接口: +https://api.hunyuan.cloud.tencent.com/v1/chat/completions +申请token后正常使用即可。

    +

    Hexo适配

    +

    说在前面 +有些主题已经有静态ai摘要的功能了,可以无需下面的步骤,使用插件向文件插入对应的字符串即可,下面的教程适用于butterfly或者类butterfly主题,如果是其他主题可能需要自行适配。

    +

    添加配置

    +

    目前我们已经自动化了从AI中,喂我们的文章给AI,再生成摘要,再写到文件顶部的过程,下面我们开始进行从文件顶部渲染到网站页面上。

    +

    首先在主题配置文件 _config.butterfly.yml文件中写入配置,方便我们进行控制摘要是否开启:

    +
    # --------------------------------------
    +# 文章设置
    +# --------------------------------------
    +# 文章AI摘要是否开启,会自动检索文章色summary字段,若没有则不显示
    +ai_summary:
    +  enable: true
    +  title: 清羽のAI摘要
    +  loadingText: 清羽AI正在绞尽脑汁想思路ING···
    +  modelName: HunYuan-Lite
    +

    这里的内容均为装饰性内容,除了enable选项,其他没有任何控制效果,都是装饰,所以无需担心,可以先按照我的写,后面再根据效果修改。

    +

    添加模板

    +

    下面找到主题文件下的 /root/theme/butterfly/layout/post.pug文件,添加文件中指出来的两行内容:

    +
    extends includes/layout.pug
    +
    +block content
    +  #post
    +    if top_img === false
    +      include includes/header/post-info.pug
    +
    +    article#article-container.post-content
    ++     if page.summary && theme.ai_summary.enable
    ++       include includes/post/post-summary.pug
    +      !=page.content
    +    include includes/post/post-copyright.pug
    +    .tag_share
    +      if (page.tags.length > 0 && theme.post_meta.post.tags)
    +        .post-meta__tag-list
    +          each item, index in page.tags.data
    +            a(href=url_for(item.path)).post-meta__tags #[=item.name]
    +      include includes/third-party/share/index.pug
    +
    +    if theme.reward.enable && theme.reward.QR_code
    +      !=partial('includes/post/reward', {}, {cache: true})
    +
    +    //- ad
    +    if theme.ad && theme.ad.post
    +      .ads-wrap!=theme.ad.post
    +
    +    if theme.post_pagination
    +      include includes/pagination.pug
    +    if theme.related_post && theme.related_post.enable
    +      != related_posts(page,site.posts)
    +
    +    if page.comments !== false && theme.comments.use
    +      - var commentsJsLoad = true
    +      !=partial('includes/third-party/comments/index', {}, {cache: true})
    +

    注意缩进,pug作为预编译语言,对缩进的要求极为严格,在该文件中,应该是两个空格一缩进。

    +

    下面添加组件,创建文件 /root/theme/butterfly/layout/includes/post/post-summary.pug,写入以下内容:

    +
    .ai-summary
    +    .ai-explanation(style="display: block;" data-summary=page.summary)=theme.ai_summary.loadingText
    +    .ai-title 
    +        .ai-title-left 
    +            i.fa-brands.fa-slack
    +            .ai-title-text=theme.ai_summary.title
    +        .ai-tag#ai-tag= theme.ai_summary.modelName
    +

    添加样式

    +

    下面我们添加样式部分,创建文件 /root/theme/butterfly/source/css/_layout/ai-summary.styl文件,写入:

    +
    // ===================
    +// 🌗 主题变量定义(仅使用项)
    +// ===================
    +
    +:root
    +  // ai_summary
    +  --liushen-title-font-color: #0883b7
    +  --liushen-maskbg: rgba(255, 255, 255, 0.85)
    +  --liushen-ai-bg: conic-gradient(from 1.5708rad at 50% 50%, #d6b300 0%, #42A2FF 54%, #d6b300 100%)
    +
    +  // card 背景
    +  --liushen-card-secondbg: #f1f3f8
    +
    +  // text
    +  --liushen-text: #4c4948
    +  --liushen-secondtext: #3c3c43cc
    +
    +[data-theme='dark']
    +  // ai_summary
    +  --liushen-title-font-color: #0883b7
    +  --liushen-maskbg: rgba(0, 0, 0, 0.85)
    +  --liushen-ai-bg: conic-gradient(from 1.5708rad at 50% 50%, rgba(214, 178, 0, 0.46) 0%, rgba(66, 161, 255, 0.53) 54%, rgba(214, 178, 0, 0.49) 100%)
    +
    +  // card 背景
    +  --liushen-card-secondbg: #3e3f41
    +
    +  // text
    +  --liushen-text: #ffffffb3
    +  --liushen-secondtext: #a1a2b8
    +
    +// ===================
    +// 📘 AI 摘要模块样式
    +// ===================
    +
    +if hexo-config('ai_summary.enable')
    +  .ai-summary
    +    background-color var(--liushen-maskbg)
    +    background var(--liushen-card-secondbg)
    +    border-radius 12px
    +    padding 8px 8px 12px 8px
    +    line-height 1.3
    +    flex-direction column
    +    margin-bottom 16px
    +    display flex
    +    gap 5px
    +    position relative
    +
    +    &::before
    +      content ''
    +      position absolute
    +      top 0
    +      left 0
    +      width 100%
    +      height 100%
    +      z-index 1
    +      filter blur(8px)
    +      opacity .4
    +      background-image var(--liushen-ai-bg)
    +      transform scaleX(1) scaleY(.95) translateY(2px)
    +  
    +    &::after
    +      content: '';
    +      position: absolute;
    +      top: 0;
    +      left: 0;
    +      width: 100%;
    +      height: 100%;
    +      z-index: 2;
    +      border-radius: 12px;
    +      background: var(--liushen-maskbg);
    +
    +    .ai-explanation
    +      z-index 10
    +      padding 8px 12px
    +      font-size 15px
    +      line-height 1.4
    +      color var(--liushen-text)
    +      text-align justify
    +
    +      // ✅ 打字机光标动画
    +      &::after
    +        content ''
    +        display inline-block
    +        width 8px
    +        height 2px
    +        margin-left 2px
    +        background var(--liushen-text)
    +        vertical-align bottom
    +        animation blink-underline 1s ease-in-out infinite
    +        transition all .3s
    +        position relative
    +        bottom 3px
    +
    +      // 平滑滚动动画
    +      // .char
    +      //   display inline-block
    +      //   opacity 0
    +      //   animation chat-float .5s ease forwards
    +  
    +    .ai-title
    +      z-index 10
    +      font-size 14px
    +      display flex
    +      border-radius 8px
    +      align-items center
    +      position relative
    +      padding 0 12px
    +      cursor default
    +      user-select none
    +
    +      .ai-title-left
    +        display flex
    +        align-items center
    +        color var(--liushen-title-font-color)
    +
    +        i
    +          margin-right 3px
    +          display flex
    +          color var(--liushen-title-font-color)
    +          border-radius 20px
    +          justify-content center
    +          align-items center
    +
    +        .ai-title-text
    +          font-weight 500
    +
    +      .ai-tag
    +        color var(--liushen-secondtext)
    +        font-weight 300
    +        margin-left auto
    +        display flex
    +        align-items center
    +        justify-content center
    +        transition .3s
    +
    +  // 平滑滚动动画
    +  // @keyframes chat-float
    +  //   0% 
    +  //     opacity 0
    +  //     transform translateY(20px)
    +  //   100% 
    +  //       opacity 1
    +  //       transform translateY(0)
    +  
    +  // ✅ 打字机光标闪烁动画
    +  @keyframes blink-underline
    +    0%, 100%
    +      opacity 1
    +    50%
    +      opacity 0
    +

    样式也实现啦!目前就差将我们的摘要插入到我们的网站就大功告成啦,为了实现的更加逼真,我这里实现了两种样式一个是打字机效果,一个是平滑显示效果,可以按需引入:

    +

    添加核心JS

    +

    介绍两种动效,可以按照自己的需求在任意js文件中选择一个引入即可,两个的区别是,打字机效果更加的节省性能,而平滑显示,因为每个文本为一个span,所以会比较耗费性能。

    +

    打字机

    +
    // 打字机效果
    +function typeTextMachineStyle(text, targetSelector, options = {}) {
    +    const {
    +        delay = 50,
    +        startDelay = 2000,
    +        onComplete = null,
    +        clearBefore = true,
    +        eraseBefore = true, // 新增:是否以打字机方式清除原文本
    +        eraseDelay = 30,    // 新增:删除每个字符的间隔
    +    } = options;
    +
    +    const el = document.querySelector(targetSelector);
    +    if (!el || typeof text !== "string") return;
    +
    +    setTimeout(() => {
    +        const startTyping = () => {
    +            let index = 0;
    +            function renderChar() {
    +                if (index <= text.length) {
    +                    el.textContent = text.slice(0, index++);
    +                    setTimeout(renderChar, delay);
    +                } else {
    +                    onComplete && onComplete(el);
    +                }
    +            }
    +            renderChar();
    +        };
    +
    +        if (clearBefore) {
    +            if (eraseBefore && el.textContent.length > 0) {
    +                let currentText = el.textContent;
    +                let eraseIndex = currentText.length;
    +
    +                function eraseChar() {
    +                    if (eraseIndex > 0) {
    +                        el.textContent = currentText.slice(0, --eraseIndex);
    +                        setTimeout(eraseChar, eraseDelay);
    +                    } else {
    +                        startTyping(); // 删除完毕后开始打字
    +                    }
    +                }
    +
    +                eraseChar();
    +            } else {
    +                el.textContent = "";
    +                startTyping();
    +            }
    +        } else {
    +            startTyping();
    +        }
    +    }, startDelay);
    +}
    +
    +function renderAISummary() {
    +    const summaryEl = document.querySelector('.ai-summary .ai-explanation');
    +    if (!summaryEl) return;
    +
    +    const summaryText = summaryEl.getAttribute('data-summary');
    +    if (summaryText) {
    +        typeTextMachineStyle(summaryText, ".ai-summary .ai-explanation"); // 如果需要切换,在这里调用另一个函数即可
    +    }
    +}
    +
    +document.addEventListener('pjax:complete', renderAISummary);
    +document.addEventListener('DOMContentLoaded', renderAISummary);
    +

    本站使用的就是打字机效果,可以自行查看。

    +

    平滑

    +

    这个没有样图,如果好奇可以自行部署并尝试:

    +
     // 平滑弹出效果
    + function typeText(text, targetSelector, options = {}) {
    +     const {
    +       delay = 50,          // 每个字符之间的延迟(毫秒)
    +       startDelay = 2000,   // 开始打字前的延迟(默认 3 秒)
    +       onComplete = null,   // 动画完成后的回调
    +       clearBefore = true   // 是否在开始前清空原有内容
    +     } = options;
    +
    +     const targetEl = document.querySelector(targetSelector);
    +     if (!targetEl || typeof text !== "string") return;
    +
    +     // if (clearBefore) targetEl.textContent = "";
    +
    +     let index = 0;
    +     let frameId = null;
    +
    +     function renderChar() {
    +       if (index < text.length) {
    +         const span = document.createElement("span");
    +         span.textContent = text[index++];
    +         span.className = "char";
    +         targetEl.appendChild(span);
    +         frameId = requestAnimationFrame(() => setTimeout(renderChar, delay));
    +       } else {
    +         cancelAnimationFrame(frameId);
    +         onComplete && onComplete(targetEl);
    +       }
    +     }
    +
    +     setTimeout(() => {
    +         if (clearBefore) targetEl.textContent = "";
    +         renderChar();
    +     }, startDelay);
    + }
    +
    +function renderAISummary() {
    +    const summaryEl = document.querySelector('.ai-summary .ai-explanation');
    +    if (!summaryEl) return;
    +
    +    const summaryText = summaryEl.getAttribute('data-summary');
    +    if (summaryText) {
    +        typeText(summaryText, ".ai-summary .ai-explanation"); // 如果需要切换,在这里调用另一个函数即可
    +    }
    +}
    +
    +document.addEventListener('pjax:complete', renderAISummary);
    +document.addEventListener('DOMContentLoaded', renderAISummary);
    +

    注意,平滑滚动部分的css,默认注释掉了

    +

    好的,设置完毕!

    博客添加AI总结

    /posts/41b9aff7/
    作者
    biss
    发布于
    许可协议
    CC BY-NC-SA 4.0
    网站
    订阅 打赏

    Comments

    博客添加AI总结

    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/posts/437a5198/index.html b/posts/437a5198/index.html new file mode 100644 index 0000000..0c48801 --- /dev/null +++ b/posts/437a5198/index.html @@ -0,0 +1,1182 @@ + OpenGL-基础程序 | Bi's Blog

    OpenGL-基础程序

    发布于 2026/04/12 技术 总字数:1.3k 阅读时长:4 分钟
    +文章导读 + 摘要由 Qwen 生成

    这篇文章详细介绍了OpenGL的基础程序,包括代码展示和代码解释两部分。代码展示部分呈现了一个简单的OpenGL程序,涵盖了初始化与窗口管理、状态设置与缓冲区操作、矩阵与坐标变换以及几何图形绘制等关键步骤。代码解释则将这些步骤按照功能类别进行了归纳,帮助读者更好地理解OpenGL的渲染流程。通过这个示例,读者可以初步掌握OpenGL的基本操作和概念。

    ARTICLE SERIES

    OpenGL 学习笔记

    第 2 / 4 篇
    1. 01 配置OpenGL环境
    2. 02 OpenGL-基础程序
    3. 03 OpenGL-直线的扫描转换
    4. 04 OpenGL- Cohen-Sutherland 编码裁剪算法

    代码展示

    +

    我们先从基本的OpenGL程序开始吧,这是一个简单的OpenGL程序:

    +
    #include<GL/glut.h>
    +using namespace std;
    +
    +// 回调函数
    +void myDisplay()
    +{
    +	// 清除缓冲区
    +	glClearColor(0.0, 0.0, 0.0, 0.0);
    +	glClear(GL_COLOR_BUFFER_BIT);
    +	// 正交模式
    +	glMatrixMode(GL_PROJECTION);
    +	gluOrtho2D(0.0, 500.0, 0.0, 500.0);
    +	glColor4f(0.0, 1.0, 0.0, 0.0);
    +	glRectf(50.0, 50.0, 400.0, 400.0);
    +
    +	// 划线
    +	glColor3f(1.0, 1.0, 0.0);
    +	glBegin(GL_LINES);
    +	glVertex2f(50.0, 50.0);
    +	glVertex2f(400.0, 400.0);
    +	glVertex2f(400.0, 50.0);
    +	glVertex2f(50.0, 400.0);
    +	glEnd();
    +
    +	// 画点
    +	glColor3f(1.0, 0.0,  0.0);
    +	glPointSize(20.0);
    +	glBegin(GL_POINTS);
    +	glVertex2f(15.0, 15.0);
    +	glEnd();
    +
    +	// 画三角形
    +	glBegin(GL_TRIANGLES);
    +	glColor3f(0.0, 0.0, 1.0);
    +	glVertex2i(200, 300);
    +	glVertex2i(100, 100);
    +	glVertex2i(300, 100);
    +	glEnd();
    +
    +
    +	glFlush();
    +
    +}
    +int main(int argc, char* argv[])
    +{
    +	glutInit(&argc, argv);
    +	glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
    +	glutInitWindowPosition(100, 100);
    +	glutInitWindowSize(500, 500);
    +	glutCreateWindow("");
    +	glutDisplayFunc(&myDisplay);
    +	glutMainLoop();
    +	return 0;
    +}
    +

    这是运行结果图: +第一个OpenGL程序

    +

    代码解释

    +

    这段代码展示了经典的 OpenGL (GLUT) 固定渲染管线基本操作。为了方便理解,我将这些函数按照 初始化与窗口管理状态设置坐标变换 以及 图形绘制 四个类别进行了整理。

    +

    1. 窗口管理与初始化 (GLUT 库)

    +

    这类函数主要用于配置窗口系统和处理程序的运行流程。

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    函数名称功能描述核心参数说明
    glutInit初始化 GLUT 库接收 main 函数的命令行参数
    glutInitDisplayMode设置显示模式GLUT_RGB (使用颜色模式), GLUT_SINGLE (单缓冲区)
    glutInitWindowPosition设置窗口在屏幕上的初始位置窗口左上角坐标
    glutInitWindowSize设置窗口的宽度和高度像素值 (Width, Height)
    glutCreateWindow创建窗口字符串参数作为窗口标题
    glutDisplayFunc注册显示回调函数传入负责绘图的函数指针
    glutMainLoop进入 GLUT 事件处理循环让程序持续运行,等待重绘或交互
    +
    +

    2. 状态设置与缓冲区操作

    +

    这些函数用于配置 OpenGL 的全局状态(如颜色、点大小)或清理画布。

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    函数名称功能描述核心参数说明
    glClearColor设置清除颜色(背景色)RGBA 值 (0.0~1.0),此处设为黑色
    glClear清除指定的缓冲区GL_COLOR_BUFFER_BIT 表示清除颜色缓存
    glColor4f设置当前的绘制颜色 (带透明度)RGBA 分量
    glColor3f设置当前的绘制颜色 (不带透明度)RGB 分量
    glPointSize设置点的像素大小浮点数,数值越大点越粗
    glFlush强制刷新缓冲区确保绘图命令立即执行并输出到显示设备
    +
    +

    3. 矩阵与坐标变换

    +

    用于定义物体是如何投影到屏幕上的。

    + + + + + + + + + + + + + + + + + + + + +
    函数名称功能描述核心参数说明
    glMatrixMode设置当前矩阵模式GL_PROJECTION 切换到投影矩阵堆栈
    gluOrtho2D定义二维正交投影裁剪区域定义视野的左、右、下、上边界范围
    +
    +

    4. 几何图形绘制

    +

    OpenGL 的核心绘图逻辑,通过指定顶点来构建形状。

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    函数名称功能描述核心参数说明
    glRectf绘制一个实心矩形传入左下角坐标和右上角坐标
    glBegin标记图元绘制的开始GL_LINES (线), GL_POINTS (点), GL_TRIANGLES (三角形)
    glVertex2f指定一个二维顶点 (浮点型)坐标
    glVertex2i指定一个二维顶点 (整型)坐标
    glEnd标记图元绘制的结束必须与 glBegin 成对出现
    +

    OpenGL-基础程序

    /posts/437a5198/
    作者
    biss
    发布于
    许可协议
    CC BY-NC-SA 4.0
    OpenGL
    订阅 打赏

    Comments

    OpenGL-基础程序

    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/posts/4c91a8f2/index.html b/posts/4c91a8f2/index.html new file mode 100644 index 0000000..bf96c54 --- /dev/null +++ b/posts/4c91a8f2/index.html @@ -0,0 +1,1132 @@ + 用 Umami 分享链接给网站信息卡提供统计数据 | Bi's Blog

    用 Umami 分享链接给网站信息卡提供统计数据

    +文章导读 + 摘要由 Qwen 生成

    这篇文章记录如何通过 Umami 的分享链接获取公开统计数据,再用 Cloudflare Worker 做一层缓存代理,最后把访客数和访问量显示到博客侧边栏的网站信息卡里。

    最近给博客侧边栏加了一个“网站信息”卡片,里面除了文章数量、总字数、最后更新时间,还想放上本站访客数和访问量。

    +

    一开始想到的是直接调用 Umami API,但现在的 Umami 后台里不一定能很直观地找到 API key。如果为了这两个数字再专门创建一个用户、保存账号密码,又有点重。后来发现 Umami 自带的“分享链接”刚好可以解决这个问题。

    +

    这篇文章记录一下完整做法:用 Umami 分享链接拿公开 token,再用 Cloudflare Worker 请求统计接口并缓存,最后给前端信息卡使用。

    +

    整体思路

    +

    流程大概是这样:

    +
      +
    1. 在 Umami 后台给站点创建分享链接。
    2. +
    3. Worker 请求 /api/share/{shareId},拿到 websiteId 和分享 token。
    4. +
    5. Worker 带上分享 token 请求 /api/websites/{websiteId}/stats
    6. +
    7. Worker 把结果整理成前端需要的 JSON,并用 Cloudflare 缓存 10 分钟。
    8. +
    9. 博客前端请求 Worker 地址,把访客数和访问量填到信息卡。
    10. +
    +

    这样做的好处是不用暴露后台账号,也不用在前端直接请求 Umami。前端只会看到 Worker 返回的简洁数据。

    +

    创建 Umami 分享链接

    +

    进入 Umami 后台,找到对应网站的分享设置,打开需要公开的模块。我这里只需要概览数据,所以勾选“概览”就够了。

    +

    保存后会得到一个类似这样的分享链接:

    +
    https://umami.example.com/share/Hqx6lIBhIHBR13RY
    +

    最后这一段 Hqx6lIBhIHBR13RY 就是分享 ID,后面 Worker 会用到。

    +

    分享链接背后的请求

    +

    分享页本身不是一个静态 HTML 页面,直接读取页面源码一般拿不到统计数字。它会先请求:

    +
    /api/share/Hqx6lIBhIHBR13RY
    +

    这个接口会返回类似这样的数据:

    +
    {
    +  "shareId": "...",
    +  "shareType": 1,
    +  "websiteId": "3d97b310-b241-4fc6-bc9c-68e317fc7d42",
    +  "token": "..."
    +}
    +

    然后访问统计接口时,需要带两个请求头:

    +
    x-umami-share-context: 1
    +x-umami-share-token: 上一步返回的 token
    +

    统计接口是:

    +
    /api/websites/{websiteId}/stats?startAt=0&endAt=当前时间戳
    +

    返回结果大概是:

    +
    {
    +  "pageviews": 2,
    +  "visitors": 1,
    +  "visits": 1,
    +  "bounces": 0,
    +  "totaltime": 470
    +}
    +

    其中:

    +
      +
    • visitors 是访客数
    • +
    • pageviews 是页面访问量
    • +
    • visits 是访问会话数
    • +
    +

    网站信息卡里我只用 visitorspageviews

    +

    编写 Cloudflare Worker

    +

    新建一个 Worker,把下面这份代码放进去:

    +
    const DEFAULT_CACHE_TTL_SECONDS = 600;
    +
    +function jsonResponse(data, init = {}) {
    +  return new Response(JSON.stringify(data), {
    +    ...init,
    +    headers: {
    +      'Content-Type': 'application/json; charset=utf-8',
    +      ...init.headers,
    +    },
    +  });
    +}
    +
    +function getCorsHeaders(request, env) {
    +  const origin = request.headers.get('Origin') || '';
    +  const allowedOrigin = env.ALLOWED_ORIGIN || 'https://blog.example.com';
    +  const allowOrigin = origin === allowedOrigin ? origin : allowedOrigin;
    +
    +  return {
    +    'Access-Control-Allow-Origin': allowOrigin,
    +    'Access-Control-Allow-Methods': 'GET, OPTIONS',
    +    'Access-Control-Allow-Headers': 'Content-Type',
    +    Vary: 'Origin',
    +  };
    +}
    +
    +function normalizeBaseUrl(value) {
    +  return String(value || 'https://umami.example.com').replace(/\/+$/, '');
    +}
    +
    +function getShareId(env) {
    +  if (env.UMAMI_SHARE_ID) return env.UMAMI_SHARE_ID;
    +  if (!env.UMAMI_SHARE_URL) return '';
    +
    +  try {
    +    const url = new URL(env.UMAMI_SHARE_URL);
    +    const parts = url.pathname.split('/').filter(Boolean);
    +    const shareIndex = parts.indexOf('share');
    +    return shareIndex >= 0 ? parts[shareIndex + 1] || '' : parts.at(-1) || '';
    +  } catch {
    +    return env.UMAMI_SHARE_URL.split('/').filter(Boolean).at(-1) || '';
    +  }
    +}
    +
    +async function getShareData(env) {
    +  const baseUrl = normalizeBaseUrl(env.UMAMI_BASE_URL);
    +  const shareId = getShareId(env);
    +
    +  if (!shareId) {
    +    throw new Error('Missing UMAMI_SHARE_ID or UMAMI_SHARE_URL');
    +  }
    +
    +  const response = await fetch(`${baseUrl}/api/share/${shareId}`, {
    +    headers: { Accept: 'application/json' },
    +  });
    +
    +  if (!response.ok) {
    +    throw new Error(`Umami share lookup failed: ${response.status}`);
    +  }
    +
    +  const data = await response.json();
    +  if (!data.websiteId || !data.token) {
    +    throw new Error('Umami share response did not include websiteId or token');
    +  }
    +
    +  return data;
    +}
    +
    +async function fetchUmamiStats(env, shareData) {
    +  const baseUrl = normalizeBaseUrl(env.UMAMI_BASE_URL);
    +  const websiteId = env.UMAMI_WEBSITE_ID || shareData.websiteId;
    +  const startAt = Number(env.STATS_START_AT || 0);
    +  const endAt = Date.now();
    +  const url = `${baseUrl}/api/websites/${websiteId}/stats?startAt=${startAt}&endAt=${endAt}`;
    +
    +  return fetch(url, {
    +    headers: {
    +      Accept: 'application/json',
    +      'x-umami-share-context': '1',
    +      'x-umami-share-token': shareData.token,
    +    },
    +  });
    +}
    +
    +async function getStats(env) {
    +  const shareData = await getShareData(env);
    +  const response = await fetchUmamiStats(env, shareData);
    +
    +  if (!response.ok) {
    +    throw new Error(`Umami stats failed: ${response.status}`);
    +  }
    +
    +  const stats = await response.json();
    +
    +  return {
    +    visitors: stats.visitors ?? 0,
    +    pageviews: stats.pageviews ?? 0,
    +    visits: stats.visits ?? 0,
    +    updatedAt: Date.now(),
    +  };
    +}
    +
    +export default {
    +  async fetch(request, env, ctx) {
    +    const corsHeaders = getCorsHeaders(request, env);
    +
    +    if (request.method === 'OPTIONS') {
    +      return new Response(null, { status: 204, headers: corsHeaders });
    +    }
    +
    +    if (request.method !== 'GET') {
    +      return jsonResponse({ error: 'Method not allowed' }, { status: 405, headers: corsHeaders });
    +    }
    +
    +    const cacheTtl = Number(env.CACHE_TTL_SECONDS || DEFAULT_CACHE_TTL_SECONDS);
    +    const cache = caches.default;
    +    const cacheKey = new Request(
    +      `https://site-stats-cache.local/umami-site-stats/${getShareId(env) || 'default'}`,
    +    );
    +    const cached = await cache.match(cacheKey);
    +
    +    if (cached) {
    +      return new Response(cached.body, {
    +        status: cached.status,
    +        headers: {
    +          ...Object.fromEntries(cached.headers),
    +          ...corsHeaders,
    +          'X-Stats-Cache': 'HIT',
    +        },
    +      });
    +    }
    +
    +    try {
    +      const stats = await getStats(env);
    +      const response = jsonResponse(stats, {
    +        headers: {
    +          ...corsHeaders,
    +          'Cache-Control': `public, max-age=${cacheTtl}`,
    +          'X-Stats-Cache': 'MISS',
    +        },
    +      });
    +
    +      ctx.waitUntil(cache.put(cacheKey, response.clone()));
    +      return response;
    +    } catch (error) {
    +      return jsonResponse(
    +        {
    +          error: 'Failed to fetch stats',
    +          message: error instanceof Error ? error.message : String(error),
    +        },
    +        { status: 502, headers: corsHeaders },
    +      );
    +    }
    +  },
    +};
    +

    配置 Worker 变量

    +

    在 Cloudflare Worker 的设置里添加变量:

    +
    UMAMI_BASE_URL = https://umami.example.com
    +UMAMI_SHARE_ID = Hqx6lIBhIHBR13RY
    +ALLOWED_ORIGIN = https://blog.example.com
    +CACHE_TTL_SECONDS = 600
    +

    如果你更想直接填完整分享链接,也可以不用 UMAMI_SHARE_ID,改用:

    +
    UMAMI_SHARE_URL = https://umami.example.com/share/Hqx6lIBhIHBR13RY
    +

    CACHE_TTL_SECONDS = 600 表示缓存 10 分钟。这样访客每次打开页面时,不会都去打 Umami 接口。

    +

    如果你只想统计某个建站时间之后的数据,可以额外设置:

    +
    STATS_START_AT = 1735660800000
    +

    这个值是毫秒时间戳。不设置的话默认从 0 开始,也就是统计全部数据。

    +

    部署方式

    +

    如果只是单个 Worker,最简单的方法是在 Cloudflare 后台新建 Worker,然后把 JS 代码直接粘到在线编辑器里。

    +

    如果遇到这样的提示:

    +
    此上传程序暂不支持需要构建过程的项目。至少找到了一个 JavaScript 文件。请改用 wrangler deploy 以获得完整功能支持。
    +

    通常是因为你上传了整个项目目录。这个场景不需要上传整个博客项目,只需要把 Worker 的 JS 内容粘进去即可。

    +

    如果想用 Wrangler,也可以写一个配置文件:

    +
    name = "umami-site-stats"
    +main = "umami-site-stats.js"
    +compatibility_date = "2026-06-19"
    +
    +[vars]
    +UMAMI_BASE_URL = "https://umami.example.com"
    +UMAMI_SHARE_ID = "Hqx6lIBhIHBR13RY"
    +ALLOWED_ORIGIN = "https://blog.example.com"
    +CACHE_TTL_SECONDS = "600"
    +

    然后执行:

    +
    wrangler deploy
    +

    测试 Worker

    +

    部署好之后,直接访问 Worker 地址,正常会看到:

    +
    {
    +  "visitors": 1,
    +  "pageviews": 2,
    +  "visits": 1,
    +  "updatedAt": 1781829905467
    +}
    +

    如果返回 502,可以先看 message 字段。常见原因有:

    +
      +
    • UMAMI_SHARE_ID 写错
    • +
    • UMAMI_BASE_URL 写错
    • +
    • 分享链接没有保存成功
    • +
    • Umami 的分享权限里没有勾选“概览”
    • +
    +

    接入网站信息卡

    +

    前端信息卡里,静态数据可以直接由博客生成:

    +
      +
    • 文章数目:读取文章列表长度
    • +
    • 本站总字数:遍历文章内容统计
    • +
    • 最后更新时间:取最新文章发布时间
    • +
    +

    访客数和访问量则用 Worker 动态填充。页面里先渲染占位:

    +
    <dd data-stat-key="visitors">--</dd>
    +<dd data-stat-key="pageviews">--</dd>
    +

    再用 JS 请求 Worker:

    +
    const endpoint = 'https://your-worker.example.workers.dev';
    +const formatter = new Intl.NumberFormat('en-US');
    +
    +fetch(endpoint, { headers: { Accept: 'application/json' } })
    +  .then((response) => response.json())
    +  .then((stats) => {
    +    document.querySelector('[data-stat-key="visitors"]').textContent = formatter.format(stats.visitors);
    +    document.querySelector('[data-stat-key="pageviews"]').textContent = formatter.format(stats.pageviews);
    +  });
    +

    我这里还在浏览器端加了一层 localStorage 缓存,缓存 key 里带上 Worker 地址,防止以后更换接口后还读到旧数据:

    +
    const cacheKey = `site-info-stats:${endpoint}`;
    +const cacheDuration = 10 * 60 * 1000;
    +

    这样前端和 Worker 都有缓存,访问体验会稳一些。

    +

    最后

    +

    这个方案的核心是:不要把 Umami 后台账号放到前端,也不需要专门创建只读用户。既然 Umami 分享页本身已经提供了公开数据访问方式,就让 Worker 代替前端去请求它,并顺手做缓存和字段整理。

    +

    最终网站信息卡只需要关心这几个字段:

    +
    {
    +  "visitors": 1,
    +  "pageviews": 2,
    +  "visits": 1,
    +  "updatedAt": 1781829905467
    +}
    +

    小功能,但很适合放在侧边栏。它不会喧宾夺主,却能让网站看起来更像一个正在被维护、正在呼吸的地方。

    用 Umami 分享链接给网站信息卡提供统计数据

    /posts/4c91a8f2/
    作者
    biss
    发布于
    许可协议
    CC BY-NC-SA 4.0
    网站UmamiCloudflare Worker
    订阅 打赏

    Comments

    用 Umami 分享链接给网站信息卡提供统计数据

    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/posts/56f57c0b/index.html b/posts/56f57c0b/index.html new file mode 100644 index 0000000..5830981 --- /dev/null +++ b/posts/56f57c0b/index.html @@ -0,0 +1,873 @@ + 自建renovate-bot | Bi's Blog

    自建renovate-bot

    发布于 2026/02/23 技术 总字数:289 阅读时长:1 分钟
    +文章导读 + 摘要由 Qwen 生成

    这篇文章介绍了如何自建Renovate Bot以自动更新依赖,并通过Docker Compose进行部署。首先,文章提供了Renovate Bot的Docker Compose文件配置,包括使用特定平台(gitea)、设置Git API地址、生成Token以及启用自动发现功能。接着,建议创建一个专门用于管理Renovate Bot的账户,并为其生成登录Token。最后,通过在系统的crontab中设置定时任务,可以自动化运行更新流程。

    最近自建了gitea,所以把renovatebot也自建一下,毕竟renovatebot可以自动更新依赖,但是它不对自建git提供服务。 +这是docker compose文件:

    +
    services:
    +  renovate:
    +    image: renovate/renovate:latest
    +    environment:
    +      RENOVATE_PLATFORM: 'gitea'
    +      RENOVATE_ENDPOINT: '你的git api地址'
    +      RENOVATE_TOKEN: 'token'
    +      RENOVATE_AUTODISCOVER: 'true'
    +      RENOVATE_GIT_AUTHOR: Renovate Bot <bot@biss.click>
    +      RENOVATE_USERNAME: renovate-bot
    +    volumes:
    +      - ./renovate-data:/tmp/renovate
    +

    可以新建一个renovate用户来专门管理,然后登录这个账户创建一个登录token。然后再需要使用这个的仓库添加这个用户为协作者就可以了。 +这个docker容器在运行后会自动退出,这是正常的。 +可以在系统crontab新建一个定时任务,这样就可以自动运行更新。

    +
    cd /www/compose/renovatebot && docker compose run --rm renovate
    + + + + 官方文档 + Renovatebot · docs.renovatebot.com + +

    自建renovate-bot

    /posts/56f57c0b/
    作者
    biss
    发布于
    许可协议
    CC BY-NC-SA 4.0
    gitea
    订阅 打赏

    Comments

    自建renovate-bot

    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/posts/5785bd01/index.html b/posts/5785bd01/index.html new file mode 100644 index 0000000..fbb1ef1 --- /dev/null +++ b/posts/5785bd01/index.html @@ -0,0 +1,853 @@ + 新年快乐! | Bi's Blog

    新年快乐!

    +文章导读 + 摘要由 Qwen 生成

    这篇文章是一则关于新年祝福和幸福指数提升的通知,主要内容包含以下几点:首先,强调在假期期间要确保饮食质量,避免emo情绪的影响;其次,鼓励大家在收到通知后在留言区分享新年愿望,以便后台系统收集并祝愿他们实现愿望;最后,表达了对大家新年的美好祝愿,希望他们身体健康,万事如意,所得皆所愿,所行化坦途。

    各位亲朋好友、合作伙伴及屏幕前的你:

    +

    值此二〇二六年蛇年来临之际,为贯彻落实“快乐至上”的核心价值观,进一步提升全体人员的幸福指数,现将有关事项通知如下:

    +

    一、各单位要切实做好“吃好喝好”保障工作,严禁在假期期间进行任何形式的emo。

    +

    二、请各有关人员在收到本通知后,务必在下方留言区留下你的新年愿望,由后台系统统一收集并祝愿其实现。

    +

    三、祝大家在新的一年里,身体健康,万事如意,所得皆所愿,所行化坦途!

    新年快乐!

    /posts/5785bd01/
    作者
    biss
    发布于
    许可协议
    CC BY-NC-SA 4.0
    生活
    订阅 打赏

    Comments

    新年快乐!

    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/posts/59c8572a/index.html b/posts/59c8572a/index.html new file mode 100644 index 0000000..d72fa30 --- /dev/null +++ b/posts/59c8572a/index.html @@ -0,0 +1,889 @@ + 搭建Owncloud并集成Onlyoffice | Bi's Blog

    搭建Owncloud并集成Onlyoffice

    发布于 2025/08/26 技术 总字数:427 阅读时长:2 分钟
    +文章导读 + 摘要由 Qwen 生成

    这篇文章详细介绍了如何搭建Owncloud网盘服务并集成Onlyoffice文档编辑器。首先,作者描述了搭建过程中的基本步骤,包括安装网盘和进行系统调优,其中强调了Redis缓存配置和Cron任务设置的重要性。接着,作者提到了在1panel应用商店安装Onlyoffice的过程,并说明了如何将其反向代理至个人域名。最后,文章指导用户在Owncloud中搜索并安装Onlyoffice插件,确保了整个集成过程的顺利完成。

    引言

    +

    因为正好有云存储的需求,恰好又有服务器,所以决定自建一个Owncloud网盘服务,集成一个Onlyoffice。

    +

    安装网盘

    +

    建站

    +在官网下载最新的安装包 + + + + Owncloud + Owncloud · owncloud.com + + +因为使用1panel,所以搭网站很简单,选择php7.3运行环境,添加必要的php扩展,新建一个Mysql数据库,按照正常步骤安装就行了。 +

    调优

    +
      +
    1. 配置Redis缓存 +在1panel安装Redis, +在config/config.php中添加
    2. +
    +
      'filelocking.enabled' => true,
    +  'memcache.local' => '\OC\Memcache\Redis',
    +  'memcache.locking' => '\OC\Memcache\Redis',
    +  'redis' => [
    +      'host' => '容器名',  // For a Unix domain socket, use '/var/run/redis/redis.sock'
    +      'port' => 6379,         // Set to 0 when using a Unix socket
    +      'timeout' => 0,         // Optional, keep connection open forever
    +      'password' => 'password',       // Optional, if not defined no password will be used.
    +      'dbindex' => 0,         // Optional, if undefined SELECT will not run and will
    +                              // use Redis Server's default DB Index.
    +  ],
    +
      +
    1. 添加Cron任务 +首先在Owncloud的配置页面把计划任务调整为Cron。 +在1panel的计划任务中添加,容器选择php7.3的容器,用户必须为www-data,时间为每15分钟。
    2. +
    +
    php sites/cloud.biss.click/index/occ system:cron
    +

    集成Onlyoffice

    +

    在1panel应用商店直接安装Onlyoffice,并反向代理到自己的域名 +在Owncloud中搜索Onlyoffice插件,然后填写自己的域名、密钥(在参数中可以查到)

    搭建Owncloud并集成Onlyoffice

    /posts/59c8572a/
    作者
    biss
    发布于
    许可协议
    CC BY-NC-SA 4.0
    网站
    订阅 打赏

    Comments

    搭建Owncloud并集成Onlyoffice

    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/posts/5ed2f1e6/index.html b/posts/5ed2f1e6/index.html new file mode 100644 index 0000000..5aa1da5 --- /dev/null +++ b/posts/5ed2f1e6/index.html @@ -0,0 +1,1265 @@ + 在侧边栏添加日历和倒计时 | Bi's Blog

    在侧边栏添加日历和倒计时

    发布于 2026/01/16 建站手札 总字数:279 阅读时长:1 分钟
    +文章导读 + 摘要由 Qwen 生成

    实现了一个侧边栏日历与倒计时卡片,包含以下核心功能:日历展示:显示当前日期(公历与农历)、星期、生肖、干支年份。动态生成当月日历网格,高亮当天日期。倒计时模块:距离除夕倒计时:实时计算并显示剩余天数(示例中为2026年2月16日)。进度条:分别展示本年、本月、本周的已过去进度(百分比)及剩余天数。农历支持:调用 chinese-lunar.js 库将公历转换为农历,格式化显示为“干支年+生肖年+农历月+农历日”。

    ARTICLE SERIES

    博客定制手记

    第 11 / 14 篇
    1. 01 配置说说页面
    2. 02 在侧边栏中添加欢迎信息
    3. 03 自定义右键菜单
    4. 04 利用插件自定义页脚菜单
    5. 05 博客添加AI总结
    6. 06 利用 SiteMap 随机访问站内页面
    7. 07 自定义导航栏
    8. 08 自定义分类条
    9. 09 自定义页脚(新)
    10. 10 使用GitHub推送Hexo到服务器
    11. 11 在侧边栏添加日历和倒计时
    12. 12 自定义字体
    13. 13 添加typesense搜索
    14. 14 添加网站左上角菜单

    注意:本文为早期 Hexo / Butterfly 魔改记录,本站现已迁移到 Astro,相关代码、路径或插件可能已经失效,仅作历史参考。

    +

    突然看到某个网站侧边栏有日历和倒计时,就研究了一下,抄下来了(🤭) +效果图:

    +
    效果图
    +

    添加js

    +
    document.addEventListener("DOMContentLoaded", () => {
    +    initializeCard();
    +});
    +
    +document.addEventListener("pjax:complete", () => {
    +    initializeCard();
    +});
    +
    +function initializeCard() {
    +    cardTimes();
    +    cardRefreshTimes();
    +}
    +
    +let year, month, week, date, dates, weekStr, monthStr, asideTime, asideDay, asideDayNum, animalYear, ganzhiYear, lunarMon, lunarDay;
    +const now = new Date();
    +
    +function cardRefreshTimes() {
    +    const e = document.getElementById("card-widget-schedule");
    +    if (e) {
    +        asideDay = (now - asideTime) / 1e3 / 60 / 60 / 24;
    +        e.querySelector("#pBar_year").value = asideDay;
    +        e.querySelector("#p_span_year").innerHTML = (asideDay / 365 * 100).toFixed(1) + "%";
    +        e.querySelector(".schedule-r0 .schedule-d1 .aside-span2").innerHTML = `还剩<a> ${(365 - asideDay).toFixed(0)} </a>天`;
    +        e.querySelector("#pBar_month").value = date;
    +        e.querySelector("#pBar_month").max = dates;
    +        e.querySelector("#p_span_month").innerHTML = (date / dates * 100).toFixed(1) + "%";
    +        e.querySelector(".schedule-r1 .schedule-d1 .aside-span2").innerHTML = `还剩<a> ${(dates - date)} </a>天`;
    +        e.querySelector("#pBar_week").value = week === 0 ? 7 : week;
    +        e.querySelector("#p_span_week").innerHTML = ((week === 0 ? 7 : week) / 7 * 100).toFixed(1) + "%";
    +        e.querySelector(".schedule-r2 .schedule-d1 .aside-span2").innerHTML = `还剩<a> ${(7 - (week === 0 ? 7 : week))} </a>天`;
    +    }
    +}
    +
    +function cardTimes() {
    +    year = now.getFullYear();
    +    month = now.getMonth();
    +    week = now.getDay();
    +    date = now.getDate();
    +
    +    const e = document.getElementById("card-widget-calendar");
    +    if (e) {
    +        const isLeapYear = year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;
    +        weekStr = ["周日", "周一", "周二", "周三", "周四", "周五", "周六"][week];
    +        const monthData = [
    +            { month: "1月", days: 31 },
    +            { month: "2月", days: isLeapYear ? 29 : 28 },
    +            { month: "3月", days: 31 },
    +            { month: "4月", days: 30 },
    +            { month: "5月", days: 31 },
    +            { month: "6月", days: 30 },
    +            { month: "7月", days: 31 },
    +            { month: "8月", days: 31 },
    +            { month: "9月", days: 30 },
    +            { month: "10月", days: 31 },
    +            { month: "11月", days: 30 },
    +            { month: "12月", days: 31 }
    +        ];
    +        monthStr = monthData[month].month;
    +        dates = monthData[month].days;
    +
    +        const t = (week + 8 - date % 7) % 7;
    +        let n = "", d = false, s = 7 - t;
    +        const o = (dates - s) % 7 === 0 ? Math.floor((dates - s) / 7) + 1 : Math.floor((dates - s) / 7) + 2;
    +        const c = e.querySelector("#calendar-main");
    +        const l = e.querySelector("#calendar-date");
    +
    +        l.style.fontSize = ["64px", "48px", "36px"][Math.min(o - 3, 2)];
    +
    +        for (let i = 0; i < o; i++) {
    +            if (!c.querySelector(`.calendar-r${i}`)) {
    +                c.innerHTML += `<div class='calendar-r${i}'></div>`;
    +            }
    +            for (let j = 0; j < 7; j++) {
    +                if (i === 0 && j === t) {
    +                    n = 1;
    +                    d = true;
    +                }
    +                const r = n === date ? " class='now'" : "";
    +                if (!c.querySelector(`.calendar-r${i} .calendar-d${j} a`)) {
    +                    c.querySelector(`.calendar-r${i}`).innerHTML += `<div class='calendar-d${j}'><a${r}>${n}</a></div>`;
    +                }
    +                if (n >= dates) {
    +                    n = "";
    +                    d = false;
    +                }
    +                if (d) {
    +                    n += 1;
    +                }
    +            }
    +        }
    +
    +        const lunarDate = chineseLunar.solarToLunar(new Date(year, month, date));
    +        animalYear = chineseLunar.format(lunarDate, "A");
    +        ganzhiYear = chineseLunar.format(lunarDate, "T").slice(0, -1);
    +        lunarMon = chineseLunar.format(lunarDate, "M");
    +        lunarDay = chineseLunar.format(lunarDate, "d");
    +
    +        const newYearDate = new Date("2026/02/16 00:00:00");
    +        const daysUntilNewYear = Math.floor((newYearDate - now) / 1e3 / 60 / 60 / 24);
    +        asideTime = new Date(`${new Date().getFullYear()}/01/01 00:00:00`);
    +        asideDay = (now - asideTime) / 1e3 / 60 / 60 / 24;
    +        asideDayNum = Math.floor(asideDay);
    +        const weekNum = week - asideDayNum % 7 >= 0 ? Math.ceil(asideDayNum / 7) : Math.ceil(asideDayNum / 7) + 1;
    +
    +        e.querySelector("#calendar-week").innerHTML = `第${weekNum}周 ${weekStr}`;
    +        e.querySelector("#calendar-date").innerHTML = date.toString().padStart(2, "0");
    +        e.querySelector("#calendar-solar").innerHTML = `${year}年${monthStr} 第${asideDay.toFixed(0)}天`;
    +        e.querySelector("#calendar-lunar").innerHTML = `${ganzhiYear}${animalYear}年 ${lunarMon}${lunarDay}`;
    +        document.getElementById("schedule-days").innerHTML = daysUntilNewYear;
    +    }
    +}
    +

    添加css

    +

    在主题文件 source/css/新建 calendar.css

    +
    /* 浅色主题变量覆盖 -------------------------------- */
    +:root {
    +    --anzhiyu-main: #a0d2eb;               /* 主强调色:柔和天空蓝 */
    +    --anzhiyu-main-op: rgba(160, 210, 235, 0.6);
    +    --anzhiyu-main-op-deep: rgba(160, 210, 235, 0.4);
    +    --anzhiyu-main-op-light: rgba(160, 210, 235, 0.2);
    +
    +    --efu-card-bg: #fdfdfd;                /* 卡片背景:几乎白 */
    +    --efu-fontcolor: #444;                 /* 主文本:深灰 */
    +    --efu-secondtext: #999;                /* 次级文本:浅灰 */
    +}
    +.card-widget {
    +    padding: 10px!important;
    +    max-height: calc(100vh - 100px);
    +}
    +.card-times a, .card-times div {
    +    color: var(--efu-fontcolor);
    +}
    +
    +#card-widget-calendar .item-content {
    +    display: flex;
    +}
    +
    +#calendar-area-left {
    +    width: 45%;
    +}
    +
    +#calendar-area-right {
    +    width: 55%;
    +}
    +
    +#calendar-area-left, #calendar-area-right {
    +    height: 100%;
    +    padding: 8px;
    +    display: flex;
    +    flex-direction: column;
    +    align-items: center;
    +    justify-content: flex-start;
    +}
    +
    +#calendar-main {
    +    width: 100%;
    +}
    +
    +#calendar-week {
    +    height: 1.2rem;
    +    font-size: 14px;
    +    letter-spacing: 1px;
    +    font-weight: 700;
    +    align-items: center;
    +    display: flex;
    +}
    +
    +#calendar-date {
    +    height: 3rem;
    +    line-height: 1.3;
    +    font-size: 64px;
    +    letter-spacing: 3px;
    +    color: var(--anzhiyu-main);
    +    font-weight: 700;
    +    align-items: center;
    +    display: flex;
    +    position: relative;
    +    top: calc(50% - 2.1rem);
    +}
    +
    +#calendar-lunar, #calendar-solar {
    +    height: 1rem;
    +    font-size: 12px;
    +    align-items: center;
    +    display: flex;
    +    position: absolute;
    +}
    +
    +#calendar-solar {
    +    bottom: 2.1rem;
    +}
    +
    +#calendar-lunar {
    +    bottom: 1rem;
    +    color: var(--efu-secondtext);
    +}
    +
    +#calendar-main a {
    +    height: 1rem;
    +    width: 1rem;
    +    border-radius: 50%;
    +    font-size: 12px;
    +    line-height: 12px;
    +    display: flex;
    +    justify-content: center;
    +    align-items: center;
    +}
    +
    +#calendar-main a.now {
    +    background: var(--anzhiyu-main);
    +    color: var(--efu-card-bg);
    +}
    +
    +#calendar-main .calendar-rh a {
    +    color: var(--efu-secondtext);
    +}
    +
    +.calendar-r0, .calendar-r1, .calendar-r2, .calendar-r3, .calendar-r4, .calendar-r5, .calendar-rh {
    +    height: 1.2rem;
    +    display: flex;
    +}
    +
    +.calendar-d0, .calendar-d1, .calendar-d2, .calendar-d3, .calendar-d4, .calendar-d5, .calendar-d6 {
    +    width: calc(100% / 7);
    +    display: flex;
    +    justify-content: center;
    +    align-items: center;
    +}
    +
    +#card-widget-schedule .item-content {
    +    display: flex;
    +}
    +
    +#schedule-area-left, #schedule-area-right {
    +    height: 100px;
    +    display: flex;
    +    flex-direction: column;
    +    justify-content: center;
    +    align-items: center;
    +}
    +
    +#schedule-area-left {
    +    width: 30%;
    +}
    +
    +#schedule-area-right {
    +    width: 70%;
    +    padding: 0 5px;
    +}
    +
    +.schedule-r0, .schedule-r1, .schedule-r2 {
    +    height: 2rem;
    +    width: 100%;
    +    align-items: center;
    +    display: flex;
    +}
    +
    +.schedule-d0 {
    +    width: 30px;
    +    margin-right: 5px;
    +    text-align: center;
    +    font-size: 12px;
    +}
    +
    +.schedule-d1 {
    +    width: calc(100% - 35px);
    +    height: 1.5rem;
    +    align-items: center;
    +    display: flex;
    +}
    +
    +progress::-webkit-progress-bar {
    +    background: linear-gradient(to right, var(--anzhiyu-main-op-deep), var(--anzhiyu-main-op), var(--anzhiyu-main-op-light));
    +    border-radius: 5px;
    +    overflow: hidden;
    +}
    +
    +progress::-webkit-progress-value {
    +    background: var(--anzhiyu-main);
    +    border-radius: 5px;
    +}
    +
    +.aside-span1, .aside-span2 {
    +    height: 1rem;
    +    font-size: 12px;
    +    z-index: 1;
    +    display: flex;
    +    align-items: center;
    +    position: absolute;
    +}
    +
    +.aside-span1 {
    +    margin-left: 5px;
    +}
    +
    +.aside-span2 {
    +    right: 20px;
    +    color: var(--efu-secondtext);
    +}
    +
    +.aside-span2 a {
    +    margin: 0 3px;
    +}
    +
    +#pBar_month, #pBar_week, #pBar_year {
    +    width: 100%;
    +    border-radius: 5px;
    +    height: 100%;
    +}
    +
    +#schedule-date, #schedule-days, #schedule-title {
    +    display: flex;
    +    align-items: center;
    +}
    +
    +#schedule-title {
    +    height: 25px;
    +    line-height: 1;
    +    font-size: 14px;
    +    font-weight: 700;
    +}
    +
    +#schedule-days {
    +    height: 40px;
    +    line-height: 1;
    +    font-size: 30px;
    +    font-weight: 900;
    +    color: var(--anzhiyu-main);
    +}
    +
    +#schedule-date {
    +    height: 20px;
    +    line-height: 1;
    +    font-size: 12px;
    +    color: var(--efu-secondtext);
    +}
    +

    引入

    +

    新增+号后面内容

    +
    inject:
    +  head:
    +  # 自定义css
    ++    - <link rel="stylesheet" href="/css/calendar.css">
    +
    +  bottom:
    +  # 自定义js
    ++    - <script src="/js/calendar.js"></script>
    ++    - <script src="https://unpkg.com/chinese-lunar@0.1.4/lib/chinese-lunar.js"></script>
    +

    blogroot/source/_data 文件夹下创建 widget.yml 文件,并添加以下内容:

    +
    bottom:
    +  - class_name: calendar
    +    id_name: card-widget-calendar
    +    name:
    +    icon:
    +    order: -1
    +    html: |
    +      <div id="calendar-area-left">
    +        <div id="calendar-week"></div>
    +        <div id="calendar-date" style="font-size: 48px;"></div>
    +        <div id="calendar-solar"></div>
    +        <div id="calendar-lunar"></div>
    +      </div>
    +      <div id="calendar-area-right">
    +        <div id="calendar-main">
    +        </div>
    +      </div>
    +
    +  - class_name: schedule
    +    id_name: card-widget-schedule
    +    name:
    +    icon:
    +    order: -1
    +    html: |
    +      <div id="schedule-area-left">
    +        <div id="schedule-title">距离除夕</div>
    +        <div id="schedule-days"></div>
    +        <div id="schedule-date">2025-01-28</div>
    +      </div>
    +      <div id="schedule-area-right">
    +        <div class="schedule-r0">
    +          <div class="schedule-d0">本年</div>
    +          <div class="schedule-d1">
    +            <span id="p_span_year" class="aside-span1"></span>
    +            <span class="aside-span2">还剩<a></a>天</span>
    +            <progress max="365" id="pBar_year"></progress>
    +          </div>
    +        </div>
    +        <div class="schedule-r1">
    +          <div class="schedule-d0">本月</div>
    +          <div class="schedule-d1">
    +            <span id="p_span_month" class="aside-span1"></span>
    +            <span class="aside-span2">还剩<a></a>天</span>
    +            <progress max="30" id="pBar_month"></progress>
    +          </div>
    +        </div>
    +        <div class="schedule-r2">
    +          <div class="schedule-d0">本周</div>
    +          <div class="schedule-d1">
    +            <span id="p_span_week" class="aside-span1"></span>
    +            <span class="aside-span2">还剩<a></a>天</span>
    +            <progress max="7" id="pBar_week"></progress>
    +          </div>
    +        </div>
    +      </div>
    +

    参考

    + + + + 乐活星球 + lohas · blog.lohas.fun + +

    在侧边栏添加日历和倒计时

    /posts/5ed2f1e6/
    作者
    biss
    发布于
    许可协议
    CC BY-NC-SA 4.0
    网站
    订阅 打赏

    Comments

    在侧边栏添加日历和倒计时

    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/posts/66e66374/index.html b/posts/66e66374/index.html new file mode 100644 index 0000000..0790837 --- /dev/null +++ b/posts/66e66374/index.html @@ -0,0 +1,853 @@ + Adguard和Openclash共存 | Bi's Blog

    Adguard和Openclash共存

    发布于 2025/10/05 技术 总字数:201 阅读时长:1 分钟
    +文章导读 + 摘要由 Qwen 生成

    这篇文章介绍了如何在已经安装了 OpenWrt 系统并配置好 OpenClash 和 AdguardHome 的情况下,实现这两者的共存。首先简要说明了 AdguardHome 和 OpenClash 的原理,它们都是通过劫持 DNS 来达到特定目的。然后分别介绍了两种配置方式:一种是在 AdguardHome 中将上游 DNS 服务器设置为 127.0.0.1:7874,这种方式相对简单;另一种是将 OpenClash 中的 DNS 指向 AdguardHome,但可能存在拦截失败的情况。

    在之前已经安装了Openwrt系统,并且也配置了OpenClashAdguardHome,两者的原理简单看都是劫持DNS,所以两者要同时运行,必须经过一定的配置。 +无非就这两种方式:

    +
    image
    +

    左边的方式更简单一些,只需要修改AdguardHome的上游DNS服务器为127.0.0.1:7874 即可; +右边的方式需要将OpenClash里的DNS指向AdguardHome,但是可能有拦截失败的情况(好像没有遇到过)。

    Adguard和Openclash共存

    /posts/66e66374/
    作者
    biss
    发布于
    许可协议
    CC BY-NC-SA 4.0
    AdguardHomeOpenclashOpenwrt
    订阅 打赏

    Comments

    Adguard和Openclash共存

    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/posts/69b16001/index.html b/posts/69b16001/index.html new file mode 100644 index 0000000..8d8aff5 --- /dev/null +++ b/posts/69b16001/index.html @@ -0,0 +1,875 @@ + Adguard规则分享 | Bi's Blog

    Adguard规则分享

    发布于 2025/10/05 技术 总字数:286 阅读时长:1 分钟
    +文章导读 + 摘要由 Qwen 生成

    这篇文章分享了关于Adguardhome广告拦截工具的使用经验,特别强调了规则的重要性。作者提到,要达到更好的拦截效果,需要搭配有效的规则,并详细介绍了两个关键方面:一是综合过滤规则的分享,二是广告过滤规则订阅中心的集成。通过添加这些规则,使用Adblocktester工具可以达到74分的拦截效果,认为这基本够用。

    众所周知,Adguardhome是用于拦截广告的工具,搭配好的规则,拦截效果才会更好,下面来分享一些规则:

    +
      +
    1. +一个综合的过滤规则 + + + + adblockfilters + adblockfilters · github.com + + +
    2. +
    3. +广告过滤规则订阅中心 + + + + 广告过滤规则订阅中心 + 广告过滤规则订阅中心 · adguardfilters-chinese.pages.dev + + +集成了许多规则,可以挑选一下加入。 +
    4. +
    +
    image
    +这是我添加的规则,在这些规则下,用Adblocktester可以达到74分,基本够用 +
    image

    Adguard规则分享

    /posts/69b16001/
    作者
    biss
    发布于
    许可协议
    CC BY-NC-SA 4.0
    AdguardHomeOpenwrt
    订阅 打赏

    Comments

    Adguard规则分享

    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/posts/6e3332b/index.html b/posts/6e3332b/index.html new file mode 100644 index 0000000..6f4ed06 --- /dev/null +++ b/posts/6e3332b/index.html @@ -0,0 +1,889 @@ + 配置opencv | Bi's Blog

    配置opencv

    发布于 2026/03/14 技术 总字数:439 阅读时长:2 分钟
    +文章导读 + 摘要由 Qwen 生成

    这篇文章介绍了在Ubuntu和Windows系统上配置OpenCV的过程。在Ubuntu系统中,通过包管理器安装了Visual Studio、GCC、G++、OpenCV以及Python的OpenCV绑定。而在Windows系统中,则通过安装Visual Studio并下载OpenCV的Windows安装包进行配置,包括将安装路径添加到系统环境变量中。

    ARTICLE SERIES

    OpenCV 学习笔记

    第 1 / 3 篇
    1. 01 配置opencv
    2. 02 opencv应用-基础操作
    3. 03 opencv应用-算术运算

    引言

    +

    不知道为什么我们专业看起来与计算机八竿子打不着,竟然要学opencv,那就来记录一下吧!

    +

    Ubuntu 篇

    +

    Ubuntu因为有完善的包管理体系,所以配环境相对简单。

    +先安装vscode,当然也可以不安装,只是个编辑器; + + + + vscode + Microsoft · code.visualstudio.com + + +到这里下载deb格式的软件包,然后dpkg安装即可。可以安装这些扩展: +
    +

    接下来安装编译器

    +
    # 先更新软件包
    +apt update
    +apt upgrade -y
    +# 安装C/C++编译器
    +apt install gcc g++
    +# 安装opencv
    +apt install -y mesa-utils
    +apt install -y libopencv-dev
    +apt install -y opencv
    +apt install -y python3-opencv #Python opencv
    +

    然后就可以了。

    +

    Windows 篇

    +Windows 下需要安装Visual Studio,比较简单,官网下载安装就行。选择使用C++桌面开发就行。 +下载opencv,在下边网站下载Windows安装包, + + + + opencv + opencv · opencv.org + + +下载后是一个自解压包,解压路径设置成自己想要的路径, +把安装路径添加到系统环境变量中,例如D:\Opencv\opencv\build\x64\vc16\bin +然后应该就没问题了。

    配置opencv

    /posts/6e3332b/
    作者
    biss
    发布于
    许可协议
    CC BY-NC-SA 4.0
    opencv
    订阅 打赏

    Comments

    配置opencv

    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/posts/6e5f5039/index.html b/posts/6e5f5039/index.html new file mode 100644 index 0000000..d30f6a3 --- /dev/null +++ b/posts/6e5f5039/index.html @@ -0,0 +1,948 @@ + 部署历程 | Bi's Blog

    部署历程

    发布于 2025/08/03 建站手札 总字数:2.2k 阅读时长:6 分钟
    +文章导读 + 摘要由 Qwen 生成

    这篇文章详细介绍了如何部署Hexo博客到Linux服务器,包括前提条件、本地环境准备、SSH密钥认证、配置步骤、工作流程以及故障排除提示。文章首先列出了部署所需满足的条件,然后逐步指导读者如何在服务器上安装Git、创建裸仓库、配置Git钩子以自动部署Hexo博客,并提供了验证部署成功的步骤。最后,文章还给出了一些常见问题的解决建议,帮助读者顺利完成部署。整个过程简单高效,适合需要自动化部署博客的用户。

    前提条件

    +

    在开始之前,请确保你已满足以下条件:

    +
      +
    • 服务器: +
        +
      • 安装了 1Panel 面板的 Linux 服务器
      • +
      • 拥有服务器的 SSH 访问权限(本文示例将使用 root 用户,你可以根据实际情况替换为其他有权限的用户)。
      • +
      • 服务器上已安装 Git。
      • +
      +
    • +
    • 1Panel 配置:
    • +
    +

    已通过 1Panel 创建了一个网站(例如 blog.yourdomain.com),并记下该网站的 根目录(Document Root)。通常在 1Panel 中,路径类似于 /opt/1panel/apps/openresty/openresty/www/sites/你的网站目录/index。请务必替换为你的实际路径。 +本地环境:

    +
      +
    • 你的电脑上已安装并配置好 Hexo 博客环境。
    • +
    • 你的电脑上已安装 Git。
    • +
    • 已安装 Hexo Git 部署插件:
    • +
    +
    npm install hexo-deployer-git --save
    +

    SSH 密钥认证 (关键):

    +
      +
    1. 你需要在本地电脑生成 SSH 密钥对(如果还没有的话)。
    2. +
    3. 必须将你的本地电脑的 SSH 公钥 添加到服务器上对应用户(如 root)的 ~/.ssh/authorized_keys 文件中。这样可以确保 hexo deploy 时 Git PUSH 操作无需输入密码即可完成。 +配置步骤 +步骤一:在服务器上安装 Git +如果你的服务器尚未安装 Git,请根据你的 Linux 发行版执行相应命令:
    4. +
    +

    Debian/Ubuntu:

    +
    sudo apt-get update
    +sudo apt-get install git -y
    +

    Fedora/RedHat/CentOS:

    +
    sudo yum install git -y
    +

    步骤二:在服务器上创建 Git 裸仓库 (Bare Repository) +我们需要在服务器上创建一个 Git “裸仓库”。裸仓库不包含工作目录(即你看不到项目文件),只存储 Git 的版本历史和对象数据,非常适合作为中心仓库或中转仓库。

    +

    创建仓库目录: +选择一个路径来存放你的 Git 仓库。例如,我们选择放在 /root/git/ 目录下(你可以自定义路径)。

    +

    创建目录 (如果父目录不存在,也一并创建)

    +
    mkdir -p /root/git/
    +

    修改目录权限 (可选但推荐): +如果你不是一直使用 root 用户,或者希望更精细地控制权限,可以修改目录所有者和权限。如果使用 root,此步通常可以跳过。

    +

    将目录所有者改为当前用户 (如果用 root 执行,则为 root)

    +
    chown -R USER:USER:USER /root/git/
    +

    设置权限 (所有者完全控制,同组用户读取执行,其他用户读取执行)

    +
    chmod -R 755 /root/git/
    +

    初始化裸仓库: +进入你选择的目录,并初始化一个裸仓库。我们将仓库命名为 blog.git (你也可以自定义)。

    +
    cd /root/git
    +git init --bare blog.git
    +

    执行后,你会在 /root/git/ 目录下看到一个名为 blog.git 的文件夹。

    +

    步骤三:在服务器上配置 Git 钩子 (post-receive) +Git 钩子是在 Git 操作过程中的特定时间点自动执行的脚本。post-receive 钩子在服务器成功接收到推送 (push) 后执行。我们将利用这个钩子将推送过来的 Hexo 文件检出 (checkout) 到 1Panel 的网站根目录。

    +

    创建钩子文件: +进入裸仓库的 hooks 目录,并创建一个名为 post-receive 的文件。

    +
    vim /root/git/blog.git/hooks/post-receive
    +

    编辑钩子内容: +在 vim 编辑器中,按 i 进入插入模式,然后粘贴以下脚本内容:

    +
    #!/bin/bash
    +# 指定 Hexo 网站文件存放的目录 (!!!!务必替换为你的 1Panel 网站实际根目录!!!!)
    +WORK_TREE="/opt/1panel/apps/openresty/openresty/www/sites/blog/index" 
    +# 指定 Git 裸仓库的路径 (!!!!务必替换为你的裸仓库实际路径!!!!)
    +GIT_DIR="/root/git/blog.git"
    +
    +# 执行 Git checkout 命令,强制将内容检出到工作目录
    +git --work-tree=${WORK_TREE} --git-dir=${GIT_DIR} checkout -f
    +
    +echo "Hexo blog deployed to ${WORK_TREE}"
    +

    可选的提交信息

    +

    请务必修改:

    +

    root: 替换为你配置了 SSH 免密登录的服务器用户名。 +YOUR_SERVER_IP: 替换为你的服务器公网 IP 地址或域名。 +22: 如果你的 SSH 端口不是默认的 22,请修改。 +/root/git/blog.git: 替换为你在服务器上创建的裸仓库的 绝对路径。 +branch: 确保这个分支名 (main 或 master) 与你的 post-receive 钩子期望检出的分支一致(默认情况下 checkout -f 会检出仓库的 HEAD 指向的分支,通常是 master 或 main)。 +步骤五:部署你的 Hexo 博客 +一切配置完成后,部署就非常简单了:

    +

    在本地 Hexo 项目目录下,执行标准的生成和部署命令:

    +
    hexo clean && hexo generate && hexo deploy
    +

    或者直接:

    +
    hexo d
    +

    工作流程:

    +

    hexo g 生成静态文件到 public 目录。 +hexo d 使用 hexo-deployer-git 插件: +将 public 目录的内容提交到一个临时 Git 分支。 +通过 SSH 将这个分支强制推送到你配置的服务器裸仓库 (ssh://root@YOUR_SERVER_IP:22/root/git/blog.git)。 +服务器上的 Git 仓库接收到推送后,自动触发 post-receive 钩子脚本。 +钩子脚本执行 git checkout -f,将最新的网站文件强制检出(部署)到 1Panel 网站的根目录 (/opt/1panel/apps/openresty/openresty/www/sites/blog/index)。 +验证: +部署命令执行成功后,稍等片刻,然后访问你的博客域名 (http://blog.yourdomain.comhttps://blog.yourdomain.com),应该就能看到更新后的内容了。

    +

    故障排除提示

    +
      +
    • 权限问题: 检查服务器上 Git 仓库目录、网站根目录以及钩子文件的权限是否正确。钩子脚本需要有权限写入网站根目录。
    • +
    • SSH 密钥问题: 确保本地 SSH 公钥已正确添加到服务器的 authorized_keys 文件中,并且本地 SSH 私钥可用。尝试手动 ssh root@YOUR_SERVER_IP 看是否能免密登录。
    • +
    • 路径错误: 仔细核对 post-receive 脚本中的 —work-tree 和 —git-dir 路径,以及本地 _config.yml 中的 repo 路径是否完全正确。
    • +
    • 钩子未执行: 检查钩子文件是否有执行权限 (chmod +x),文件名是否精确为 post-receive (没有扩展名)。
    • +
    • 查看日志: 如果部署失败,可以尝试在服务器上查看 SSH 或 Git 相关日志,或者在钩子脚本中添加一些 echo 输出到日志文件来调试。
    • +
    • 通过以上配置,你就实现了一个高效、自动化的 Hexo 博客部署流程!
    • +

    部署历程

    /posts/6e5f5039/
    作者
    biss
    发布于
    许可协议
    CC BY-NC-SA 4.0
    网站
    订阅 打赏

    Comments

    部署历程

    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/posts/7207243b/index.html b/posts/7207243b/index.html new file mode 100644 index 0000000..3da717b --- /dev/null +++ b/posts/7207243b/index.html @@ -0,0 +1,1215 @@ + OpenGL-直线的扫描转换 | Bi's Blog

    OpenGL-直线的扫描转换

    发布于 2026/04/12 技术 总字数:1.1k 阅读时长:3 分钟
    +文章导读 + 摘要由 Qwen 生成

    这篇文章介绍了三种直线扫描转换算法:DDA算法、中点画线算法和Bresenham算法。 DDA算法通过计算直线起点和终点的坐标差值来确定步数和增量,依次绘制直线上的点。算法实现简单,适用于任意直线,但精度较低。 中点画线算法仅适用于斜率为0或1的直线,通过计算中点和斜率来确定直线上的像素点,效率较高。 Bresenham算法根据直线的斜率和误差项来确定像素点的位置,适用于任意直线,且精度高,但实现稍复杂。

    ARTICLE SERIES

    OpenGL 学习笔记

    第 3 / 4 篇
    1. 01 配置OpenGL环境
    2. 02 OpenGL-基础程序
    3. 03 OpenGL-直线的扫描转换
    4. 04 OpenGL- Cohen-Sutherland 编码裁剪算法

    这篇文章来介绍直线扫描转换算法

    +

    DDA数值微分线段算法

    +

    算法简介

    +

    数值微分法即DDA法(Digital Differential Analyzer),是一种基于微分方程来生成直线的方法。在计算机图形学中,并没有线段的概念,而是一个个像素点组成了线段。

    +

    DDA法生成线段的步骤一般如下:

    +
      +
    1. 有了起始点()和终点();
    2. +
    3. +
    4. 比较的大小; +steps=中较大者;
    5. +
    6. +
    +

    算法实现

    +

    DDA算法实现如下:

    +
    #include <cmath>
    +#include <iostream>
    +#include <GL/glut.h>
    +
    +// 窗口宽度和高度
    +const int WIDTH = 640;
    +const int HEIGHT = 480;
    +
    +void drawDDALine(int x1, int y1, int x2, int y2) {
    +    float x = x1;
    +    float y = y1;
    +
    +    // 计算差值
    +    int dx = x2 - x1;
    +    int dy = y2 - y1;
    +
    +    // 确定步数,取 dx 和 dy 中绝对值较大的那个
    +    int steps = std::abs(dx) > std::abs(dy) ? std::abs(dx) : std::abs(dy);  //三元表达式
    +
    +    // 计算每一步的增量
    +    float xIncrement = (float)dx / steps;
    +    float yIncrement = (float)dy / steps;
    +
    +    // 开始绘制点
    +    glBegin(GL_POINTS);
    +    glVertex2i((int)round(x), (int)round(y)); // 绘制起点
    +
    +    for (int k = 0; k < steps; k++) {
    +        x += xIncrement;
    +        y += yIncrement;
    +        // 将浮点坐标四舍五入取整转换为整数像素坐标
    +		std::cout << (int)round(x) << ", " << (int)round(y)<<"\n";
    +        glVertex2i((int)round(x), (int)round(y));
    +    }
    +    glEnd();
    +}
    +
    +// 显示回调函数
    +void display() {
    +    drawDDALine(0, 0, 50, 20);
    +    glFlush();
    +}
    +
    +// 初始化 OpenGL 设置
    +void init() {
    +    // 设置背景颜色为白色
    +    glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
    +
    +    // 设置投影矩阵为 2D 正交投影
    +    glMatrixMode(GL_PROJECTION);
    +    glLoadIdentity();
    +    // 定义可视区域,左下角(0,0),右上角(WIDTH, HEIGHT)
    +    gluOrtho2D(0.0, WIDTH, 0.0, HEIGHT);
    +}
    +
    +int main(int argc, char** argv) {
    +    // 初始化 GLUT
    +    glutInit(&argc, argv);
    +
    +    // 设置显示模式:单缓冲、RGB 颜色模式
    +    glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
    +
    +    // 设置窗口大小和位置
    +    glutInitWindowSize(WIDTH, HEIGHT);
    +    glutInitWindowPosition(100, 100);
    +
    +    // 创建窗口
    +    glutCreateWindow("DDA算法");
    +
    +    // 注册回调函数
    +    glutDisplayFunc(display);
    +
    +    // 初始化设置
    +    init();
    +
    +    // 进入主循环
    +    glutMainLoop();
    +
    +    return 0;
    +}
    +

    中点画线算法

    +

    算法简介

    +

    只考虑当直线的斜率时的情况,假设现在有一条直线,那么第一个点一定是无疑,下一个点的坐标为,坐标要么为要么为。关键在于每次取下一个点时,是取前一个的呢,还是,这时一定是取直线上点最靠近的那个了,而判断取哪个点就用到了中点,我们将中点代入直线中

    +
      +
    1. 如果直线,则取下边的点也就是
    2. +
    3. 如果直线,则取上边的点也就是
    4. +
    +

    它的实际过程就是这样每次根据前边的点判断下一个点在哪,然后进行打亮,但这样每次判断的时候都得代入直线方程计算太麻烦了,我们将这俩种情况分别代入直线方程中可以找出规律:

    +
      +
    1. 当直线时,经过化解得;
    2. +
    3. 当直线时,经过化解得;
    4. +
    5. 初始值
    6. +
    +

    也就是说每次的增量要么为,要么为,那么这样判断的时候就简单多了,因为我们每次只是判断它的正负。所以给等式同时乘2,将其中浮点数0.5化为整数,这样硬件操作时无疑更快了。

    +

    算法实现

    +
    #include <GL/freeglut.h>
    +#include <iostream>
    +#include <cmath>
    +
    +// 中点画线算法函数 (仅针对斜率 0 <= k <= 1 的情况进行演示,其它象限需类比处理)
    +void drawLineMidpoint(int x0, int y0, int x1, int y1) {
    +    int a = y0 - y1;
    +    int b = x1 - x0;
    +    int d = 2 * a + b;
    +    int d1 = 2 * a;
    +    int d2 = 2 * (a + b);
    +
    +    int x = x0, y = y0;
    +
    +    glBegin(GL_POINTS);
    +    glVertex2i(x, y); // 画起点
    +
    +    while (x < x1) {
    +        if (d < 0) {
    +            x++;
    +            y++;
    +            d += d2;
    +        } else {
    +            x++;
    +            d += d1;
    +        }
    +        glVertex2i(x, y);
    +    }
    +    glEnd();
    +}
    +
    +// 渲染回调函数
    +void display() {
    +    glClear(GL_COLOR_BUFFER_BIT);
    +    glColor3f(1.0, 1.0, 1.0); // 设置画笔颜色为白色
    +
    +    // 调用算法画一条直线 (x0, y0) 到 (x1, y1)
    +    // 注意:此处的坐标对应屏幕像素坐标
    +    drawLineMidpoint(50, 50, 450, 300);
    +
    +    glFlush();
    +}
    +
    +// 初始化设置
    +void init() {
    +    glClearColor(0.0, 0.0, 0.0, 1.0); // 背景设为黑色
    +    glMatrixMode(GL_PROJECTION);
    +    glLoadIdentity();
    +    // 设置正交投影矩阵,使坐标系与窗口像素对应
    +    gluOrtho2D(0, 500, 0, 500); 
    +}
    +
    +int main(int argc, char** argv) {
    +    glutInit(&argc, argv);
    +    glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
    +    glutInitWindowSize(500, 500);
    +    glutInitWindowPosition(100, 100);
    +    glutCreateWindow("Midpoint Line Algorithm - FreeGLUT");
    +
    +    init();
    +    glutDisplayFunc(display);
    +    glutMainLoop();
    +
    +    return 0;
    +}
    +

    Bresenham算法

    +

    算法简介

    +

    假设我们需要由这一点,绘画一直线至右下角的另一点,x,y分别代表其水平及垂直坐标,并且。在此我们使用电脑系统常用的坐标系,即坐标值沿轴向右增长,坐标值沿轴向下增长。

    +

    因此x及y之值分别向右及向下增加,而两点之水平距离为且垂直距离为。由此得之,该线的斜率必定介乎于之间。而此算法之目的,就是找出在之间,第行相对应的第列,从而得出一像素点,使得该像素点的位置最接近原本的线。

    +

    对于由两点所组成之直线,公式如下: + +因此,对于每一点的x,其y的值是 + +因为皆为整数,但并非每一点所对应的皆为整数,故此没有必要去计算每一点x所对应之值。反之由于此线之斜率介乎于之间,故此我们只需要找出当到达那一个数值时,会使上升,若尚未到此值,则不变。至于如何找出相关的值,则需依靠斜率。斜率之计算方法为。由于此值不变,故可于运算前预先计算,减少运算次数。

    +

    要实行此算法,我们需计算每一像素点与该线之间的误差。于上述例子中,误差应为每一点中,其相对的像素点之值与该线实际之值的差距。每当的值增加,误差的值就会增加。每当误差的值超出,线就会比较靠近下一个映像点,因此的值便会加,且误差减

    +

    算法实现

    +
    #include <GL/freeglut.h>
    +#include <iostream>
    +#include <cmath>
    +
    +// 通用 Bresenham 画线算法
    +void drawLineBresenham(int x0, int y0, int x1, int y1) {
    +    int dx = abs(x1 - x0);
    +    int dy = abs(y1 - y0);
    +    int sx = (x0 < x1) ? 1 : -1; // X 方向步进
    +    int sy = (y0 < y1) ? 1 : -1; // Y 方向步进
    +    int err = dx - dy;           // 初始误差项
    +
    +    glBegin(GL_POINTS);
    +    while (true) {
    +        glVertex2i(x0, y0); // 绘制当前点
    +
    +        if (x0 == x1 && y0 == y1) break; // 到达终点
    +
    +        int e2 = 2 * err;
    +        // 判断是否在 X 方向步进
    +        if (e2 > -dy) {
    +            err -= dy;
    +            x0 += sx;
    +        }
    +        // 判断是否在 Y 方向步进
    +        if (e2 < dx) {
    +            err += dx;
    +            y0 += sy;
    +        }
    +    }
    +    glEnd();
    +}
    +
    +// 渲染回调
    +void display() {
    +    glClear(GL_COLOR_BUFFER_BIT);
    +    glColor3f(0.0f, 0.8f, 0.4f); // 设置一个好看的绿色(类似你图中的图标颜色)
    +
    +    // 绘制几条不同方向的线来测试算法的健壮性
    +    drawLineBresenham(50, 50, 450, 400);  // 第一象限
    +    drawLineBresenham(50, 400, 450, 50);  // 第四象限
    +    drawLineBresenham(250, 50, 250, 450); // 垂直线
    +    drawLineBresenham(50, 250, 450, 250); // 水平线
    +
    +    glFlush();
    +}
    +
    +void init() {
    +    glClearColor(0.1f, 0.1f, 0.1f, 1.0f); // 深色背景
    +    glMatrixMode(GL_PROJECTION);
    +    glLoadIdentity();
    +    gluOrtho2D(0, 500, 0, 500); // 建立 500x500 的直角坐标系
    +}
    +
    +int main(int argc, char** argv) {
    +    glutInit(&argc, argv);
    +    glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
    +    glutInitWindowSize(600, 600);
    +    glutCreateWindow("Bresenham Line Algorithm");
    +    init();
    +    glutDisplayFunc(display);
    +    glutMainLoop();
    +    return 0;
    +}

    OpenGL-直线的扫描转换

    /posts/7207243b/
    作者
    biss
    发布于
    许可协议
    CC BY-NC-SA 4.0
    OpenGL
    订阅 打赏

    Comments

    OpenGL-直线的扫描转换

    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/posts/7baa41fc/index.html b/posts/7baa41fc/index.html new file mode 100644 index 0000000..368edab --- /dev/null +++ b/posts/7baa41fc/index.html @@ -0,0 +1,877 @@ + 自建bitwarden服务 | Bi's Blog

    自建bitwarden服务

    发布于 2026/02/25 技术 总字数:327 阅读时长:1 分钟
    +文章导读 + 摘要由 Qwen 生成

    这篇文章介绍了如何自建Bitwarden服务,以替代浏览器自带的密码管理器。Bitwarden是一款开源、端到端加密的密码管理器,支持多种操作系统和设备,具有安全存储、自动同步、一键填充、生成随机密码和检测弱密码等功能。文章详细描述了部署Bitwarden服务的步骤,包括安装Vaultwarden、配置Nginx反向代理以及设置域名和数据卷等。通过这些步骤,用户可以轻松搭建一个功能强大的密码管理服务器,提高个人信息安全。

    Bitwarden 是一款开源、端到端加密的密码管理器,支持 Windows、macOS、Linux、Android、iOS 以及几乎所有主流浏览器。 +它可以帮你:

    +
      +
    • 安全存储密码、银行卡、笔记、密钥等敏感信息
    • +
    • 全设备自动同步
    • +
    • 一键自动填充账号密码
    • +
    • 生成高强度随机密码
    • +
    • 检测弱密码、重复密码、泄露密码
    • +
    +

    之前一直使用浏览器自带的密码管理器,跨平台不太好用,所以自建一个Bitwarden服务器。 +但是我们一般用Vaultwarden,占用更小,有一些Bitwarden的商业功能。

    +
    services:
    +  vaultwarden:
    +    image: vaultwarden/server:latest
    +    container_name: vaultwarden
    +    restart: unless-stopped
    +    environment:
    +      DOMAIN: "https://vw.domain.tld"   #更改成自己的域名
    +    volumes:
    +      - ./vw-data/:/data/
    +    ports:
    +      - 127.0.0.1:8000:80
    +
    +

    然后使用nignx进行反向代理,然后就可以尽情享用了。

    + + + + vaultwarden + vaultwarden · github.com + +

    自建bitwarden服务

    /posts/7baa41fc/
    作者
    biss
    发布于
    许可协议
    CC BY-NC-SA 4.0
    订阅 打赏

    Comments

    自建bitwarden服务

    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/posts/7e921903/index.html b/posts/7e921903/index.html new file mode 100644 index 0000000..564a3de --- /dev/null +++ b/posts/7e921903/index.html @@ -0,0 +1,1118 @@ + 添加网站左上角菜单 | Bi's Blog

    添加网站左上角菜单

    发布于 2026/02/10 建站手札 总字数:313 阅读时长:1 分钟
    +文章导读 + 摘要由 Qwen 生成

    这篇文章详细介绍了如何在柳神的网站上添加一个自定义的左上角菜单,包括菜单的结构、样式以及响应式设计。作者提供了具体的HTML和CSS代码示例,展示了如何实现一个包含多个链接和功能的导航栏,同时确保在不同屏幕尺寸下的适配性。此外,还解释了一些关键的CSS属性和JavaScript交互效果,以实现平滑的菜单显示和隐藏。通过这些步骤,用户可以轻松地自定义和美化网站的顶部导航栏,提升用户体验。

    ARTICLE SERIES

    博客定制手记

    第 14 / 14 篇
    1. 01 配置说说页面
    2. 02 在侧边栏中添加欢迎信息
    3. 03 自定义右键菜单
    4. 04 利用插件自定义页脚菜单
    5. 05 博客添加AI总结
    6. 06 利用 SiteMap 随机访问站内页面
    7. 07 自定义导航栏
    8. 08 自定义分类条
    9. 09 自定义页脚(新)
    10. 10 使用GitHub推送Hexo到服务器
    11. 11 在侧边栏添加日历和倒计时
    12. 12 自定义字体
    13. 13 添加typesense搜索
    14. 14 添加网站左上角菜单

    注意:本文为早期 Hexo / Butterfly 魔改记录,本站现已迁移到 Astro,相关代码、路径或插件可能已经失效,仅作历史参考。

    +

    看到柳神的网站有这种菜单,但是没有写魔改教程,只好自己慢慢摸索了。

    + + + + liushen + liushen · blog.liushen.fun + + +

    预计做好后是这种效果:

    +

    示意图

    +

    首先,修改\themes\butterfly\layout\includes\header\nav.pug:

    +
    nav#nav
    +  //- 左侧区域:包含指纹菜单和网站名
    +  span#blog-info
    +    #ls-menu-container
    +      i.fas.fa-fingerprint
    +      #ls-menu-panel
    +        .ls-section
    +          .ls-title 😀 个人网站
    +          .ls-grid
    +            a(href="/") #[i.fas.fa-rss] 个人博客
    +            a(href="https://github.com/bishshi") #[i.fab.fa-github] Github
    +        .ls-section
    +          .ls-title 😎 常用服务
    +          .ls-grid
    +            a(href="https://git.biss.click/biss") #[i.fas.fa-code] 代码仓库
    +            a(href="https://mm.biss.click") #[i.fas.fa-pen-nib] 日常yy
    +            a(href="https://statstic.biss.click") #[i.fas.fa-users] 访客统计
    +            a(href="https://pic.biss.click") #[i.fas.fa-image] 图床
    +            a(href="https://chat.biss.click") #[i.fas.fa-robot] AI网站
    +        .ls-section
    +          .ls-title 🛸 实用工具
    +          .ls-grid
    +            a(href="https://cover.biss.click") #[i.fas.fa-palette] 封面设计
    +
    +    a.nav-site-title(href=url_for('/'))
    +      if theme.nav.logo
    +        img.site-icon(src=url_for(theme.nav.logo) alt='Logo')
    +      if theme.nav.display_title
    +        span.site-name=config.title
    +
    +  //- 中间区域:关键!必须在 nav 下一级,以便 JS 切换类名
    +  if globalPageType === 'post' && theme.nav.display_post_title
    +    a.nav-page-title(href='javascript:void(0);' onclick='btf.scrollToDest(0, 500)')
    +      span.site-name=(page.title || config.title)
    +
    +  //- 右侧区域
    +  #nav-right
    +    if theme.menu
    +      #menus
    +        != partial('includes/header/menu_item', {}, {cache: true})
    +    
    +    if theme.search.use || true
    +      #random-post-button
    +        a.site-page.social-icon#random-post-link(href='javascript:void(0);' onclick='randomPost()')
    +          i.fas.fa-solid.fa-shuffle
    +      #search-button
    +        a.site-page.social-icon.search-typesense-trigger
    +          i.fas.fa-search.fa-fw
    +      #toggle-menu
    +        span.site-page
    +          i.fas.fa-bars.fa-fw
    +

    在合适的目录下新建nav.css(例如\themes\butterfly\source\css\nav.css),这份css是磨砂玻璃的样式:

    +
    #nav-right{
    +  flex:1 1 auto;
    +  justify-content: flex-end;
    +  margin-left: auto;
    +  display: flex;
    +  flex-wrap:nowrap;
    +}
    +  
    +/* 导航栏居中 */
    +
    +#sidebar #sidebar-menus .menus_items .menus_item {
    +    margin: 10px 0;
    +}
    +#sidebar #sidebar-menus .menus_items a.site-page {
    +    padding-left: 0;
    +}
    +#sidebar #sidebar-menus .menus_items .site-page {
    +    position: relative;
    +    display: block;
    +    padding: 6px 30px 6px 22px;
    +    color: var(--font-color);
    +    font-size: 1.15em;
    +    border: var(--style-border-always);
    +    background: var(--icat-card-bg);
    +    font-size: 14px;
    +    border-radius: 12px;
    +}
    +#sidebar #sidebar-menus .menus_items .site-page i:first-child {
    +    text-align: left;
    +    padding-left: 10px;
    +}
    +
    +#nav #menus {
    +    display: flex;
    +    justify-content: center;
    +    width: 100%;
    +    position: absolute;
    +    left: 0;
    +    margin: 0;
    +    transform: translateZ(0);
    +}
    +#nav #blog-info {
    +    flex-wrap: nowrap;
    +    display: flex;
    +    align-items: center;
    +    z-index: 102;
    +    max-width: fit-content;
    +}
    +@media screen and (max-width: 900px) {
    +    #nav {
    +        padding: 0 15px;
    +    }
    +    #nav-group {
    +        padding: 0 0.2rem;
    +    }
    +    #rightside {
    +        right: -42px;
    +    }
    +}
    +/* IPAD菜单栏调整 */
    +
    +/* 1. 容器溢出穿透 */
    +#nav, #blog-info, #nav-group {
    +  overflow: visible !important;
    +}
    +
    +#ls-menu-container {
    +  position: relative !important;
    +  display: inline-flex !important;
    +  align-items: center;
    +  height: 100%;
    +  padding: 0 15px;
    +  cursor: pointer !important;
    +  z-index: 2000 !important;
    +}
    +
    +/* 2. 悬浮面板:宽大且高不透明度 */
    +#ls-menu-panel {
    +  position: absolute !important;
    +  top: 100% !important;
    +  left: 0 !important;
    +  margin-top: 15px !important;
    +  width: 420px; 
    +  padding: 24px;
    +  border-radius: 18px;
    +  
    +  /* 高不透明度磨砂玻璃 (0.9) */
    +  background: rgba(255, 255, 255, 0.95) !important;
    +  backdrop-filter: blur(20px) saturate(180%) !important;
    +  -webkit-backdrop-filter: blur(20px) saturate(180%) !important;
    +  
    +  border: 1px solid rgba(255, 255, 255, 0.5) !important;
    +  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.18) !important;
    +
    +  opacity: 0 !important;
    +  visibility: hidden !important;
    +  transform: translateY(12px) !important;
    +  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
    +  z-index: 999999 !important;
    +  cursor: default;
    +}
    +
    +/* 3. 透明感应桥梁 */
    +#ls-menu-panel::before {
    +  content: "";
    +  position: absolute;
    +  top: -20px;
    +  left: 0;
    +  right: 0;
    +  height: 25px;
    +  background: transparent !important;
    +}
    +
    +/* 4. 触发效果 */
    +#ls-menu-container:hover #ls-menu-panel {
    +  opacity: 1 !important;
    +  visibility: visible !important;
    +  transform: translateY(0) !important;
    +}
    +
    +#ls-menu-container:hover i.fa-fingerprint {
    +  color: #49b1f5;
    +  transform: scale(1.1);
    +}
    +
    +/* 5. 内部网格:保持两列 */
    +.ls-section { margin-bottom: 22px; }
    +.ls-section:last-child { margin-bottom: 0; }
    +.ls-title { 
    +  color: #333; 
    +  font-weight: 800; 
    +  font-size: 15px; 
    +  margin-bottom: 12px; 
    +  opacity: 0.9;
    +}
    +
    +.ls-grid { 
    +  display: grid !important; 
    +  grid-template-columns: repeat(2, 1fr); /* 恢复为两列 */
    +  gap: 10px; 
    +}
    +
    +.ls-grid a { 
    +  color: #444 !important; 
    +  font-size: 14px !important; 
    +  padding: 10px 12px; 
    +  border-radius: 12px;
    +  display: flex;
    +  align-items: center;
    +  transition: all 0.2s ease;
    +  background: rgba(0, 0, 0, 0.02);
    +}
    +
    +.ls-grid a:hover { 
    +  background: #49b1f5 !important; 
    +  color: #fff !important; 
    +  transform: translateX(4px); /* 悬停时轻微右移,增加动感 */
    +}
    +
    +.ls-grid a i { 
    +  margin-right: 12px; 
    +  width: 20px; 
    +  text-align: center; 
    +  font-size: 15px;
    +}
    +
    +/* 6. 深色模式适配 */
    +[data-theme='dark'] #ls-menu-panel {
    +  background: rgba(30, 30, 30, 0.95) !important;
    +  border-color: rgba(255, 255, 255, 0.1) !important;
    +}
    +[data-theme='dark'] .ls-title { color: #eee; }
    +[data-theme='dark'] .ls-grid a { 
    +  color: #ccc !important; 
    +  background: rgba(255, 255, 255, 0.05); 
    +}
    +
    +#nav.show-title .nav-page-title {
    +  display: flex !important;
    +  opacity: 1 !important;
    +  visibility: visible !important;
    +  position: absolute !important;
    +  left: 50% !important;
    +  transform: translateX(-50%) !important;
    +  white-space: nowrap !important;
    +  z-index: 1000 !important;
    +}
    +
    +#nav.show-title #menus,
    +#nav.show-title .nav-site-title {
    +  opacity: 0 !important;
    +  visibility: hidden !important;
    +  pointer-events: none !important;
    +}
    +
    +#nav .nav-page-title {
    +  display: none; 
    +  transition: opacity 0.3s ease;
    +}
    +
    +#nav #blog-info {
    +  overflow: visible !important;
    +}
    +

    然后在_config.butterfly.yml里面引用该css

    +
    - <link rel="stylesheet" href="/css/nav.css">
    +

    然后重新构建应该就可以看到效果了。

    添加网站左上角菜单

    /posts/7e921903/
    作者
    biss
    发布于
    许可协议
    CC BY-NC-SA 4.0
    网站
    订阅 打赏

    Comments

    添加网站左上角菜单

    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/posts/8712baaa/index.html b/posts/8712baaa/index.html new file mode 100644 index 0000000..750c024 --- /dev/null +++ b/posts/8712baaa/index.html @@ -0,0 +1,868 @@ + 电子价签玩法 | Bi's Blog

    电子价签玩法

    +文章导读 + 摘要由 Qwen 生成

    这篇文章介绍了作者在逛咸鱼时发现并购买了两个改造二手电子价签的过程,这些电子价签由tsl0922开发的开源固件提供支持,具备日历、传图、文字功能,并且可以在网页端进行便捷的配置。尽管开源版固件功能有限,作者选择自行编写所需功能,目前已经实现了待办事项和倒计时功能,并能生成图片后上传至网络。

    最近在逛咸鱼时发现了改造二手电子价签,实现了一点有意思的功能,于是买了两个玩玩。 +他们用的是tsl0922开发的开源固件,具有日历、传图、文字功能,在网页端可以很方便地配置。

    + + + + 上位机 + tsl0922 · tsl0922.github.io + + +

    6f03fcce-1dc8-471c-add7-2620a1cd88c3 +日历 +当然开源版固件功能有点少,又不想买烧录器自己折腾,所以把自己想要的功能写成网页: +目前写了待办事项和倒计时,生成图片后上传

    + + + + 生成图 + tu · letters.biss.click + + +

    待办事项 +倒计时

    电子价签玩法

    /posts/8712baaa/
    作者
    biss
    发布于
    许可协议
    CC BY-NC-SA 4.0
    订阅 打赏

    Comments

    电子价签玩法

    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/posts/8802e397/index.html b/posts/8802e397/index.html new file mode 100644 index 0000000..e1ceaa4 --- /dev/null +++ b/posts/8802e397/index.html @@ -0,0 +1,880 @@ + Cudy TR3000刷入Openwrt系统 | Bi's Blog

    Cudy TR3000刷入Openwrt系统

    发布于 2025/09/01 技术 总字数:376 阅读时长:1 分钟
    +文章导读 + 摘要由 Qwen 生成

    这篇文章介绍了如何将Cudy TR3000路由器刷入OpenWrt系统。首先,作者提供了下载中间固件和OpenWrt固件的方法。接着,详细说明了刷入过程的步骤,包括访问不同的IP地址进行固件刷入,并提到了OpenWrt的默认登录密码是root。整个过程旨在使路由器能够支持科学上网功能。

    最近搞到了一台Cudy-TR3000路由器,用来进行科学上网(小猫咪),先记录一下刷写Openwrt系统的过程。

    +

    下载固件

    +
      +
    1. 中间固件 +中间固件可以在Cudy官方网站上下载
    2. +
    + + + + Cudy固件下载 + Cudy · cudy.com + + +
    image
    +2. Openwrt固件 +在下面的网站中下载,下载最新的就行 + + + + Openwrt固件 + Openwrt.ai · openwrt.ai + + +

    刷写固件

    +

    访问192.168.10.1先刷入中间固件

    +
    image
    +

    然后访问192.168.1.1,刷入Openwrt插件

    +
    image
    +

    然后访问10.0.0.1,就可以看到openwrt登录页面了,默认密码是root

    +
    image

    Cudy TR3000刷入Openwrt系统

    /posts/8802e397/
    作者
    biss
    发布于
    许可协议
    CC BY-NC-SA 4.0
    Cudy-TR3000
    订阅 打赏

    Comments

    Cudy TR3000刷入Openwrt系统

    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/posts/8bdb35fb/index.html b/posts/8bdb35fb/index.html new file mode 100644 index 0000000..4657746 --- /dev/null +++ b/posts/8bdb35fb/index.html @@ -0,0 +1,1352 @@ + 自定义右键菜单 | Bi's Blog

    自定义右键菜单

    发布于 2025/08/12 建站手札 总字数:267 阅读时长:1 分钟
    +文章导读 + 摘要由 Qwen 生成

    这篇文章介绍了如何在自定义右键菜单中添加各种功能,包括返回、前进、刷新、滚动到页面不同位置、复制文本、搜索页面、打开链接、粘贴内容、复制本文地址、在新窗口打开链接、保存图片、随机文章浏览、切换深色模式、繁简转换、阅读模式以及隐私声明、Cookie协议和版权声明等。同时,文章还提供了创建Pug文件和JavaScript文件的步骤,详细说明了如何编写右键菜单的HTML结构和交互逻辑。

    ARTICLE SERIES

    博客定制手记

    第 3 / 14 篇
    1. 01 配置说说页面
    2. 02 在侧边栏中添加欢迎信息
    3. 03 自定义右键菜单
    4. 04 利用插件自定义页脚菜单
    5. 05 博客添加AI总结
    6. 06 利用 SiteMap 随机访问站内页面
    7. 07 自定义导航栏
    8. 08 自定义分类条
    9. 09 自定义页脚(新)
    10. 10 使用GitHub推送Hexo到服务器
    11. 11 在侧边栏添加日历和倒计时
    12. 12 自定义字体
    13. 13 添加typesense搜索
    14. 14 添加网站左上角菜单

    注意:本文为早期 Hexo / Butterfly 魔改记录,本站现已迁移到 Astro,相关代码、路径或插件可能已经失效,仅作历史参考。

    +

    演示

    +

    本站右键即可查看,和原有菜单相比比较美观

    +

    新建pug文件

    +

    \themes\butterfly\layout\includes新建 rightmenu.pug

    +
    #rightMenu.js-pjax
    +    .rightMenu-group.rightMenu-small
    +        a.rightMenu-item(href="javascript:window.history.back();")
    +            i.fa.fa-arrow-left
    +        a.rightMenu-item(href="javascript:window.history.forward();")
    +            i.fa.fa-arrow-right
    +        a.rightMenu-item(href="javascript:window.location.reload();")
    +            i.fa.fa-refresh
    +        a.rightMenu-item(href="javascript:window.scrollTo(0, 0);")
    +            i.fa.fa-arrow-up
    +    .rightMenu-group.rightMenu-line.hide#menu-text
    +        a.rightMenu-item(href="javascript:rmf.copySelect();")
    +            i.fa.fa-copy
    +            span='复制'
    +        a.rightMenu-item(href="javascript:rmf.searchinThisPage();")
    +            i.fas.fa-search
    +            span='站内搜索'
    +    .rightMenu-group.rightMenu-line.hide#menu-too
    +        a.rightMenu-item(href="javascript:window.open(window.getSelection().toString());window.location.reload();")
    +            i.fa.fa-link
    +            span='转到链接'
    +    .rightMenu-group.rightMenu-line.hide#menu-paste
    +        a.rightMenu-item(href='javascript:rmf.paste()')
    +            i.fa.fa-copy
    +            span='粘贴'
    +    .rightMenu-group.rightMenu-line.hide#menu-post
    +        a.rightMenu-item(href="javascript:rmf.copyWordsLink()")
    +            i.fa.fa-link
    +            span='复制本文地址'
    +    .rightMenu-group.rightMenu-line.hide#menu-to
    +        a.rightMenu-item(href="javascript:rmf.openWithNewTab()")
    +            i.fa.fa-window-restore
    +            span='新窗口打开'
    +        a.rightMenu-item(href="javascript:rmf.open()")
    +            i.fa.fa-link
    +            span='转到链接'
    +        a.rightMenu-item(href="javascript:rmf.copyLink()")
    +            i.fa.fa-copy
    +            span='复制链接'
    +    .rightMenu-group.rightMenu-line.hide#menu-img
    +        a.rightMenu-item(href="javascript:rmf.saveAs()")
    +            i.fa.fa-download
    +            span='保存图片'
    +        a.rightMenu-item(href="javascript:rmf.openWithNewTab()")
    +            i.fa.fa-window-restore
    +            span='在新窗口打开'
    +        a.rightMenu-item(href="javascript:rmf.click()")
    +            i.fa.fa-arrows-alt
    +            span='全屏显示'
    +        a.rightMenu-item(href="javascript:rmf.copyLink()")
    +            i.fa.fa-copy
    +            span='复制图片链接'
    +    .rightMenu-group.rightMenu-line
    +        a.rightMenu-item(href="javascript:randomPost()")
    +            i.fa.fa-paper-plane
    +            span='随便逛逛'
    +        a.rightMenu-item(href="javascript:rmf.switchDarkMode();")
    +            i.fa.fa-moon
    +            span='昼夜切换'
    +        a.rightMenu-item(href="javascript:rmf.translate();")
    +            i.iconfont.icon-fanti
    +            span='繁简转换'
    +        if is_post()||is_page()
    +            a.rightMenu-item(href="javascript:rmf.switchReadMode();")
    +                i.fa.fa-book
    +                span='阅读模式'
    +        a.rightMenu-item(href="javascript:pjax.loadUrl(\"/privacy/\");")
    +            i.fa.fa-info-circle
    +            span='隐私声明'
    +        a.rightMenu-item(href="javascript:pjax.loadUrl(\"/cookie/\");")
    +            i.fa.fa-info-circle
    +            span='Cookie协议'
    +        a.rightMenu-item(href="javascript:pjax.loadUrl(\"/cc/\");")
    +            i.fa.fa-info-circle
    +            span='版权声明'
    +

    新建js文件

    +

    创建 \themes\butterfly\source\js\rightmenu.js

    +
    function setMask() {//设置遮罩层
    +    if (document.getElementsByClassName("rmMask")[0] !== undefined) {
    +        return document.getElementsByClassName("rmMask")[0];
    +    }
    +    mask = document.createElement('div');
    +    mask.className = "rmMask";
    +    mask.style.width = window.innerWidth + 'px';
    +    mask.style.height = window.innerHeight + 'px';
    +    mask.style.background = '#fff';
    +    mask.style.opacity = '.0';
    +    mask.style.position = 'fixed';
    +    mask.style.top = '0';
    +    mask.style.left = '0';
    +    mask.style.zIndex = 998;
    +    document.body.appendChild(mask);
    +    document.getElementById("rightMenu").style.zIndex = 19198;
    +    return mask;
    +}
    +
    +function insertAtCursor(myField, myValue) {
    +
    +    //IE 浏览器
    +    if (document.selection) {
    +        myField.focus();
    +        sel = document.selection.createRange();
    +        sel.text = myValue;
    +        sel.select();
    +    }
    +
    +    //FireFox、Chrome等
    +    else if (myField.selectionStart || myField.selectionStart === '0') {
    +        var startPos = myField.selectionStart;
    +        var endPos = myField.selectionEnd;
    +
    +        // 保存滚动条
    +        var restoreTop = myField.scrollTop;
    +        myField.value = myField.value.substring(0, startPos) + myValue + myField.value.substring(endPos, myField.value.length);
    +
    +        if (restoreTop > 0) {
    +            myField.scrollTop = restoreTop;
    +        }
    +
    +        myField.focus();
    +        myField.selectionStart = startPos + myValue.length;
    +        myField.selectionEnd = startPos + myValue.length;
    +    } else {
    +        myField.value += myValue;
    +        myField.focus();
    +    }
    +}
    +
    +let rmf = {};
    +rmf.showRightMenu = function (isTrue, x = 0, y = 0) {
    +    let $rightMenu = $('#rightMenu');
    +    $rightMenu.css('top', x + 'px').css('left', y + 'px');
    +
    +    if (isTrue) {
    +        $rightMenu.show();
    +    } else {
    +        $rightMenu.hide();
    +    }
    +}
    +rmf.switchDarkMode = function () {
    +    const nowMode = document.documentElement.getAttribute('data-theme') === 'dark' ? 'dark' : 'light'
    +    if (nowMode === 'light') {
    +        activateDarkMode()
    +        saveToLocal.set('theme', 'dark', 2)
    +        GLOBAL_CONFIG.Snackbar !== undefined && btf.snackbarShow(GLOBAL_CONFIG.Snackbar.day_to_night)
    +    } else {
    +        activateLightMode()
    +        saveToLocal.set('theme', 'light', 2)
    +        GLOBAL_CONFIG.Snackbar !== undefined && btf.snackbarShow(GLOBAL_CONFIG.Snackbar.night_to_day)
    +    }
    +    // handle some cases
    +    typeof utterancesTheme === 'function' && utterancesTheme()
    +    typeof FB === 'object' && window.loadFBComment()
    +    window.DISQUS && document.getElementById('disqus_thread').children.length && setTimeout(() => window.disqusReset(), 200)
    +    switchPostChart();
    +};
    +
    +rmf.copyWordsLink = function () {
    +    const decodedUrl = decodeURIComponent(window.location.href); // 解码 URL
    +    navigator.clipboard.writeText(decodedUrl)
    +        .then(() => {
    +            Snackbar.show({
    +                text: '链接复制成功!快去分享吧!',
    +                pos: 'top-right',
    +                showAction: false
    +            });
    +        })
    +};
    +
    +rmf.switchReadMode = function () {
    +    const $body = document.body
    +    $body.classList.add('read-mode')
    +    const newEle = document.createElement('button')
    +    newEle.type = 'button'
    +    newEle.className = 'fas fa-sign-out-alt exit-readmode'
    +    $body.appendChild(newEle)
    +
    +    function clickFn() {
    +        $body.classList.remove('read-mode')
    +        newEle.remove()
    +        newEle.removeEventListener('click', clickFn)
    +    }
    +
    +    newEle.addEventListener('click', clickFn)
    +}
    +
    +//复制选中文字
    +rmf.copySelect = function () {
    +    navigator.clipboard.writeText(document.getSelection().toString()).then(() => {
    +        Snackbar.show({
    +            text: '已复制选中文字!',
    +            pos: 'top-right',
    +            showAction: false,
    +        });
    +    });
    +}
    +
    +//回到顶部
    +rmf.scrollToTop = function () {
    +    document.getElementsByClassName("menus_items")[1].setAttribute("style", "");
    +    document.getElementById("name-container").setAttribute("style", "display:none");
    +    btf.scrollToDest(0, 500);
    +}
    +rmf.translate = function () {
    +    document.getElementById("translateLink").click();
    +}
    +rmf.searchinThisPage = () => {
    +    let mask = setMask(); // 确保 mask 元素存在于 document.body 中
    +    document.getElementsByClassName("local-search-box--input")[0].value = window.getSelection().toString();
    +    document.getElementsByClassName("search")[0].click();
    +    var evt = document.createEvent("HTMLEvents");
    +    evt.initEvent("input", false, false);
    +    document.getElementsByClassName("local-search-box--input")[0].dispatchEvent(evt);
    +
    +    // 在尝试移除 mask 元素之前检查它是否存在于 document.body 中
    +    if (document.body.contains(mask)) {
    +        document.body.removeChild(mask);
    +    }
    +}
    +
    +document.body.addEventListener('touchmove', function (e) {
    +
    +}, {passive: false});
    +
    +function popupMenu() {
    +    //window.oncontextmenu=function(){return false;}
    +    window.oncontextmenu = function (event) {
    +        Snackbar.show({
    +            text: '按住 Ctrl 再点击右键,即可恢复原界面哦',
    +            pos: 'bottom-left',
    +            showAction: false
    +        });
    +        if (event.ctrlKey || document.body.clientWidth < 900) return true;
    +        $('.rightMenu-group.hide').hide();
    +        if (document.getSelection().toString()) {
    +            $('#menu-text').show();
    +        }
    +        if (document.getElementById('post')) {
    +            $('#menu-post').show();
    +        } else {
    +            if (document.getElementById('page')) {
    +                $('#menu-post').show();
    +            }
    +        }
    +        var el = window.document.body;
    +        el = event.target;
    +        var a = /^(?:http(s)?:\/\/)?[\w.-]+(?:\.[\w.-]+)+[\w\-._~:\/?#[\]@!$&'*+,;=]+$/
    +        if (a.test(window.getSelection().toString()) && el.tagName !== "A") {
    +            $('#menu-too').show()
    +        }
    +        if (el.tagName === 'A') {
    +            $('#menu-to').show()
    +            rmf.open = function () {
    +                if (el.href.indexOf("http://") === -1 && el.href.indexOf("https://") === -1 || el.href.indexOf("blog.june-pj.cn") !== -1) {
    +                    pjax.loadUrl(el.href)
    +                } else {
    +                    location.href = el.href
    +                }
    +            }
    +            rmf.openWithNewTab = function () {
    +                window.open(el.href);
    +                // window.location.reload();
    +            }
    +            rmf.copyLink = function () {
    +                const url = el.href;
    +                navigator.clipboard.writeText(url);
    +                Snackbar.show({
    +                    text: '链接复制成功!快去分享吧!',
    +                    pos: 'top-right',
    +                    showAction: false
    +                });
    +            };
    +        }
    +        if (el.tagName === 'IMG') {
    +            $('#menu-img').show()
    +            rmf.openWithNewTab = function () {
    +                window.open(el.src);
    +                // window.location.reload();
    +            }
    +            rmf.click = function () {
    +                el.click()
    +            }
    +            rmf.copyLink = function () {
    +                const url = el.src
    +                navigator.clipboard.writeText(url);
    +                Snackbar.show({
    +                    text: '链接复制成功!快去分享吧!',
    +                    pos: 'top-right',
    +                    showAction: false
    +                });
    +            }
    +            rmf.saveAs = function () {
    +                var a = document.createElement('a');
    +                a.href = el.src;
    +                 // 获取图片的文件名部分
    +                a.download = el.src.split('/').pop(); // 使用图片的文件名作为下载文件名
    +                a.style.display = 'none'; // 隐藏下载链接
    +                document.body.appendChild(a);
    +                a.click();
    +                document.body.removeChild(a);
    +            }
    +        } else if (el.tagName === "TEXTAREA" || el.tagName === "INPUT") {
    +            $('#menu-paste').show();
    +            // rmf.paste=function(){
    +            //     input.addEventListener('paste', async event => {
    +            //         event.preventDefault();
    +            //         const text = await navigator.clipboard.readText();
    +            //         el.value+=text;
    +            //       });
    +            // }
    +            rmf.paste = function () {
    +                navigator.permissions
    +                    .query({
    +                        name: 'clipboard-read'
    +                    })
    +                    .then(result => {
    +                        if (result.state === 'granted' || result.state === 'prompt') {
    +                            //读取剪贴板
    +                            navigator.clipboard.readText().then(text => {
    +                                console.log(text)
    +                                insertAtCursor(el, text)
    +                            })
    +                        } else {
    +                            Snackbar.show({
    +                                text: '请允许读取剪贴板!',
    +                                pos: 'top-center',
    +                                showAction: false,
    +                            })
    +                        }
    +                    })
    +            }
    +        }
    +        let pageX = event.clientX + 10;
    +        let pageY = event.clientY;
    +        let rmWidth = $('#rightMenu').width();
    +        let rmHeight = $('#rightMenu').height();
    +        if (pageX + rmWidth > window.innerWidth) {
    +            pageX -= rmWidth + 10;
    +        }
    +        if (pageY + rmHeight > window.innerHeight) {
    +            pageY -= pageY + rmHeight - window.innerHeight;
    +        }
    +        mask = setMask();
    +        window.onscroll = () => {
    +            rmf.showRightMenu(false);
    +            window.onscroll = () => {
    +            }
    +            if (document.body.contains(mask)) {
    +                document.body.removeChild(mask);
    +            }
    +        }
    +
    +        $(".rightMenu-item").click(() => {
    +            if (document.body.contains(mask)) {
    +                document.body.removeChild(mask);
    +            }
    +        });
    +
    +        $(window).resize(() => {
    +            rmf.showRightMenu(false);
    +            if (document.body.contains(mask)) {
    +                document.body.removeChild(mask);
    +            }
    +        });
    +
    +        mask.onclick = () => {
    +            if (document.body.contains(mask)) {
    +                document.body.removeChild(mask);
    +            }
    +        };
    +
    +        rmf.showRightMenu(true, pageY, pageX);
    +        return false;
    +    };
    +
    +    window.addEventListener('click', function () {
    +        rmf.showRightMenu(false);
    +    });
    +}
    +
    +if (!(navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i))) {
    +    popupMenu()
    +}
    +const box = document.documentElement
    +
    +function addLongtabListener(target, callback) {
    +    let timer = 0 // 初始化timer
    +
    +    target.ontouchstart = () => {
    +        timer = 0 // 重置timer
    +        timer = setTimeout(() => {
    +            callback();
    +            timer = 0
    +        }, 380) // 超时器能成功执行,说明是长按
    +    }
    +
    +    target.ontouchmove = () => {
    +        clearTimeout(timer) // 如果来到这里,说明是滑动
    +        timer = 0
    +    }
    +
    +    target.ontouchend = () => { // 到这里如果timer有值,说明此触摸时间不足380ms,是点击
    +        if (timer) {
    +            clearTimeout(timer)
    +        }
    +    }
    +}
    +
    +addLongtabListener(box, popupMenu)
    +

    创建css

    +

    创建 \themes\butterfly\source\css\rightmenu.css

    +
    /* rightMenu */
    +[data-theme='light'] #rightMenu{
    +    display: none;
    +    position: fixed;
    +    width: 160px;
    +    height: fit-content;
    +    top: 10%;
    +    left: 10%;
    +    background-color: var(--card-bg);
    +    border: 1px solid rgb(210,210,210);;
    +    border-radius: 8px;
    +    z-index: 100;
    +    box-shadow: 3px 3px 5px #88888894;
    +    background-color: var(--june-white-acrylic1);
    +    backdrop-filter: blur(30px);
    +}
    +[data-theme='dark'] #rightMenu{
    +    display: none;
    +    position: fixed;
    +    width: 160px;
    +    height: fit-content;
    +    top: 10%;
    +    left: 10%;
    +    background-color: var(--card-bg);
    +    border: 1px solid rgb(210,210,210);;
    +    border-radius: 8px;
    +    z-index: 100;
    +    box-shadow: 3px 3px 5px #88888894;
    +    background-color: var(--june-black-acrylic1);
    +    backdrop-filter: blur(30px);
    +}
    +#rightMenu .rightMenu-group{
    +    padding: 7px 6px;
    +}
    +#rightMenu .rightMenu-group:not(:nth-last-child(1)){
    +    border-bottom: 1px solid rgb(180,180,180);
    +}
    +#rightMenu .rightMenu-group.rightMenu-small{
    +    display: flex;
    +    justify-content: space-between;
    +}
    +#rightMenu .rightMenu-group .rightMenu-item{
    +    height: 30px;
    +    line-height: 30px;
    +    border-radius: 8px;
    +    transition: 0.3s;
    +    color: var(--font-color);
    +}
    +#rightMenu .rightMenu-group.rightMenu-line .rightMenu-item{
    +    display: flex;
    +    height: 40px;
    +    line-height: 40px;
    +    padding: 0 4px;
    +}
    +#rightMenu .rightMenu-group .rightMenu-item:hover{
    +    background-color: var(--text-bg-hover);
    +    box-shadow: 0px 0px 5px var(--june-border);
    +}
    +#rightMenu .rightMenu-group .rightMenu-item i{
    +    display: inline-block;
    +    text-align: center;
    +    line-height: 30px;
    +    width: 30px;
    +    height: 30px;
    +    padding: 0 5px;
    +}
    +#rightMenu .rightMenu-group .rightMenu-item span{
    +    line-height: 30px;
    +}
    +#rightMenu:hover{
    +    border: 1px solid var(--june-theme);
    +}
    +#rightMenu .rightMenu-group.rightMenu-line .rightMenu-item *{
    +    height: 40px;
    +    line-height: 40px;
    +}
    +.rightMenu-group.hide{
    +    display: none;
    +}
    +.rightMenu-item:hover{
    +    color:white!important;
    +    background-color:var(--june-theme)!important;
    +}
    +

    引入

    +
    - <script type="text/javascript" src="/js/rightmenu.js"></script>
    +- <link rel="stylesheet" href="/css/rightmenu.css">

    自定义右键菜单

    /posts/8bdb35fb/
    作者
    biss
    发布于
    许可协议
    CC BY-NC-SA 4.0
    网站
    订阅 打赏

    Comments

    自定义右键菜单

    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/posts/8f3b9d21/index.html b/posts/8f3b9d21/index.html new file mode 100644 index 0000000..2834257 --- /dev/null +++ b/posts/8f3b9d21/index.html @@ -0,0 +1,938 @@ + 网站迁移日志 | Bi's Blog

    网站迁移日志

    +文章导读 + 摘要由 Qwen 生成

    这篇文章记录一次个人网站迁移过程:为什么要从旧的博客构建流程迁到 Astro,迁移时处理了哪些内容、路由、评论、统计和搜索问题,以及这次折腾之后留下的一些经验。

    这两天把网站又重新整理了一遍。

    +

    说是“迁移”,其实不只是换一个框架那么简单。真正花时间的地方,往往不是把页面跑起来,而是把原来那些散落在角落里的功能重新接好:文章路径、归档、分类、标签、评论、统计、搜索、友链、说说,还有一些以前顺手加上的小脚本。

    +

    这篇就当作一次迁移日志,记录一下为什么迁、怎么迁,以及迁完之后我对这个站点的新想法。

    +

    为什么要迁移

    +

    旧站点最开始更像是“能跑就行”的状态。文章能写,页面能生成,部署也能自动化,看起来已经够用了。

    +

    但用久之后,一些问题会慢慢冒出来:

    +
      +
    • 主题改动越来越散,很多功能像补丁一样叠在一起。
    • +
    • 想加一个小功能时,经常要先回忆以前改过哪里。
    • +
    • 构建和部署流程虽然能用,但排查问题不够直观。
    • +
    • 文章、组件、脚本之间的边界不清楚,维护起来有点累。
    • +
    +

    所以这次迁移的目标不是追新,而是把网站重新变成一个自己愿意继续维护的东西。

    +

    Astro 比较适合现在这个站点:内容以 Markdown 为主,页面大部分是静态的,但又需要少量动态能力,比如搜索、统计、评论和说说。它不会强迫整个网站都变成复杂的前端应用,刚好可以保留博客该有的轻量感。

    +

    迁移前的准备

    +

    动手之前,先把旧站点分成几类内容:

    +
      +
    1. 文章内容:Markdown 文件、frontmatter、分类、标签、封面和摘要。
    2. +
    3. 页面结构:首页、归档、分类、标签、关于、友链、说说。
    4. +
    5. 站点功能:评论、统计、搜索、外链跳转、随机文章。
    6. +
    7. 构建部署:依赖安装、静态构建、生成 RSS 和站点地图。
    8. +
    9. 视觉细节:背景、图标、侧边栏、文章卡片、分页和版权信息。
    10. +
    +

    这样做的好处是,迁移时不会被“整个网站”这四个字吓住。每次只处理一块,处理完就验证一块。

    +

    内容迁移

    +

    文章是整个迁移里最重要的部分。

    +

    我保留了按年份和月份整理文章的习惯,例如:

    +
    src/content/posts/2026/2026.6/
    +

    这样目录结构一眼就能看出文章的大致时间,也方便以后手动查找。

    +

    frontmatter 也尽量沿用原来的字段:

    +
    title: 文章标题
    +abbrlink: 短链接
    +date: 2026-06-19 16:45:00
    +categories: 建站手札
    +tags:
    +  - 网站
    +  - Astro
    +summary: 文章摘要
    +

    其中 abbrlink 继续保留。旧文章已经被搜索引擎或其他页面引用过,链接最好不要随便变。为了避免以后手写遗漏,我也给构建流程加了自动补全短链的脚本,让没有 abbrlink 的文章在构建前自动生成一个。

    +

    页面重建

    +

    页面部分没有完全照搬旧主题,而是按现在的使用习惯重新拆了一遍。

    +

    首页负责展示最新文章和侧边栏信息;归档页负责按时间回看;分类和标签页负责内容整理;文章页则重点放在阅读体验上。

    +

    这次迁移里,我更想让每个页面都只做一件事:

    +
      +
    • 首页:让访客快速看到最近更新。
    • +
    • 归档:按时间浏览所有文章。
    • +
    • 分类:按主题聚合内容。
    • +
    • 标签:给文章提供更细的索引。
    • +
    • 文章页:减少干扰,把正文、目录、版权和评论放在合适的位置。
    • +
    +

    以前有些功能会被塞到同一个地方,看起来热闹,但维护起来不舒服。现在拆开之后,结构清楚了很多。

    +

    搜索、评论和统计

    +

    博客不只是静态页面,还需要一些“活着”的功能。

    +

    搜索继续使用 Typesense。文章构建完成后,把标题、内容、分类、标签等信息推送到索引里,前端再通过搜索框查询。这样比纯前端全文搜索更轻,也更适合文章越来越多之后继续使用。

    +

    评论使用 Twikoo。评论系统不放在构建流程里,而是作为独立服务接入文章页。这样文章生成失败不会影响评论,评论服务维护也不会影响静态页面。

    +

    统计使用 Umami。站点里除了常规统计脚本,还单独做了一个 Worker 给侧边栏的信息卡提供访问量数据。前端不直接请求 Umami 后台接口,而是从 Worker 读取整理后的结果,顺手还能做一层缓存。

    +

    这些功能分开之后,网站本体仍然是静态站点,但又不会显得太“死”。

    +

    部署流程

    +

    迁移之后的构建流程变得更直白:

    +
    npm install
    +npm run build
    +

    prebuild 会先处理文章短链,然后 Astro 生成静态文件。生成结果放在 dist 目录里,后续只要把这个目录部署到静态托管环境即可。

    +

    比起以前围绕主题和生成器做很多定制,现在这个流程更接近普通前端项目。哪里出错、是哪一步出错,也更容易定位。

    +

    迁移中踩到的坑

    +

    最麻烦的是编码问题。

    +

    旧文章里有些内容在不同工具里显示不一致,终端、编辑器、构建器看到的结果可能不一样。最后只能统一按 UTF-8 来处理,新文章也尽量保持同一种编码,避免以后再次出现乱码。

    +

    第二个问题是路径。

    +

    迁移时如果只关心页面能不能打开,很容易忽略旧链接。尤其是文章页、RSS、归档和外链跳转这些地方,一旦路径变化太大,之前的收藏、搜索结果和站内链接都会受影响。所以短链和路由规则需要优先稳定下来。

    +

    第三个问题是“功能搬家”。

    +

    有些功能在旧站点里只是一个脚本,迁移时看起来复制过去就行。但真正接入时,还要考虑它依赖哪个 DOM、在哪个页面加载、有没有和 Astro 的静态渲染方式冲突。这个过程不能急,只能一个个验证。

    +

    迁移后的感受

    +

    这次迁移之后,网站变得更像一个可以长期维护的项目了。

    +

    文章归文章,组件归组件,配置归配置。想改导航,就去站点配置;想调文章卡片,就改对应组件;想加脚本,也能比较清楚地知道它应该放在哪里。

    +

    更重要的是,折腾网站这件事又变得有趣了一点。

    +

    以前加功能时,总有一种“别碰,能跑就行”的感觉。现在结构理顺之后,反而更愿意继续给它添东西:更好的搜索、更完整的站点信息卡、更舒服的阅读样式,或者干脆把一些旧文章重新整理一遍。

    +

    后续计划

    +

    迁移不是结束,只是把地基重新打了一遍。

    +

    后面大概还想继续做这些事:

    +
      +
    • 整理旧文章,把明显过期或格式混乱的内容修一修。
    • +
    • 给部分建站文章补充截图和最终效果。
    • +
    • 优化搜索索引,让结果更准确。
    • +
    • 给说说和友链页面补一点更自然的交互。
    • +
    • 继续减少无用脚本,让页面加载更干净。
    • +
    +

    网站就是这样,永远都有能改的地方。

    +

    不过这次迁移至少让我重新确认了一件事:个人博客不一定要很复杂,但它最好是自己看着顺眼、改起来顺手、隔一段时间回来还愿意继续打理的地方。

    +

    这样就够了。

    网站迁移日志

    /posts/8f3b9d21/
    作者
    biss
    发布于
    许可协议
    CC BY-NC-SA 4.0
    网站Astro迁移
    订阅 打赏

    Comments

    网站迁移日志

    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/posts/9b2ef00a/index.html b/posts/9b2ef00a/index.html new file mode 100644 index 0000000..01e6726 --- /dev/null +++ b/posts/9b2ef00a/index.html @@ -0,0 +1,1033 @@ + OpenGL- Cohen-Sutherland 编码裁剪算法 | Bi's Blog

    OpenGL- Cohen-Sutherland 编码裁剪算法

    发布于 2026/04/16 技术 总字数:416 阅读时长:2 分钟
    +文章导读 + 摘要由 Qwen 生成

    这篇文章介绍了Cohen-Sutherland编码裁剪算法,这是一种在计算机图形学中常用的图像裁剪方法。裁剪的目的是从一个大场景中提取所需信息,例如在浏览地图时放大显示特定区域。Cohen-Sutherland算法通过空间划分和编码方案来判断线段与矩形窗口的位置关系,从而决定线段的哪部分在窗口内、哪部分在窗口外。算法的核心在于计算线段端点的区域编码,并根据编码值来确定线段的裁剪结果。文章还提供了具体的代码实现,包括初始化设置、窗口大小调整和主函数等,展示了如何在实际应用中使用该算法进行图像裁剪。

    ARTICLE SERIES

    OpenGL 学习笔记

    第 4 / 4 篇
    1. 01 配置OpenGL环境
    2. 02 OpenGL-基础程序
    3. 03 OpenGL-直线的扫描转换
    4. 04 OpenGL- Cohen-Sutherland 编码裁剪算法

    裁剪是从数据集合提取信息的过程,它是计算机图形学许多重要问题的基础。裁剪典型的用途就是从一个大的场景中提取所需的信息,以显示某一局部场景或视图。比如浏览地图时,对感兴趣的区域放大显示,此时窗口内显示的内容会相应减少。确定图形的哪些部分在窗口内,哪些部分在窗口外(不可见区域),只显示窗口内的那部分图形,这个选择处理过程就是裁剪。

    +

    Cohen-Sutherland编码裁剪算法 +算法思想 +1)若线段完全在窗口之内则显示该线段称为“取”, +2)若线段明显在窗口之外则丢弃该线段称为“弃” +3)若线段既不满足“取”的条件也不满足“弃”的条件则把线段分割为两段,对于完全在窗口之外的部分可弃之。

    +

    具体实现 +为快速判断一条直线段与矩形窗口的位置关系采用如图所示的空间划分和编码方案(四位二进制编码上下右左) +示意图

    +

    接下来是具体代码

    +
    #include <GL/glut.h>
    +#include <iostream>
    +
    +// --- 定义区域编码 ---
    +#define INSIDE 0 // 0000
    +#define LEFT   1 // 0001
    +#define RIGHT  2 // 0010
    +#define BOTTOM 4 // 0100
    +#define TOP    8 // 1000
    +
    +// --- 定义裁剪窗口结构 ---
    +struct ClipWindow {
    +    float xmin, xmax, ymin, ymax;
    +};
    +
    +// --- 全局变量设置 ---
    +ClipWindow rect;
    +int x_0, y_0, x_1, y_1; // 线段端点
    +
    +/**
    + * 计算点 (x, y) 的区域编码
    + */
    +int computeCode(float x, float y, ClipWindow rect) {
    +    int code = INSIDE;
    +    if (x < rect.xmin)      code |= LEFT;
    +    else if (x > rect.xmax) code |= RIGHT;
    +    if (y < rect.ymin)      code |= BOTTOM;
    +    else if (y > rect.ymax) code |= TOP;
    +    return code;
    +}
    +
    +/**
    + * Cohen-Sutherland 算法核心
    + * 注意:这里传入坐标的引用,直接修改坐标值以得到裁剪后的结果
    + */
    +void cohenSutherlandClip(float& x_0, float& y_0, float& x_1, float& y_1, ClipWindow rect) {
    +    int code1 = computeCode(x_0, y_0, rect);
    +    int code2 = computeCode(x_1, y_1, rect);
    +    bool accept = false;
    +
    +    while (true) {
    +        // 如果两端点都在窗口内 (0000 | 0000 == 0)
    +        if (!(code1 | code2)) {
    +            accept = true;
    +            break;
    +        }
    +        // 如果两端点都在窗口的同一侧外部 (例如都在左边:0001 & 0001 != 0) 按位与运算
    +        else if (code1 & code2) {
    +            break; // 直接舍弃
    +        }
    +        // 3. 线段部分在窗口内,需要求交点
    +        else {
    +            int code_out;
    +            float x, y;
    +
    +            // 选择窗口外的一个端点
    +            if (code1 != 0)
    +                code_out = code1;
    +            else
    +                code_out = code2;
    +
    +            // 计算交点
    +            if (code_out & TOP) {
    +                x = x_0 + (x_1 - x_0) * (rect.ymax - y_0) / (y_1 - y_0);
    +                y = rect.ymax;
    +            }
    +            else if (code_out & BOTTOM) {
    +                x = x_0 + (x_1 - x_0) * (rect.ymin - y_0) / (y_1 - y_0);
    +                y = rect.ymin;
    +            }
    +            else if (code_out & RIGHT) {
    +                y = y_0 + (y_1 - y_0) * (rect.xmax - x_0) / (x_1 - x_0);
    +                x = rect.xmax;
    +            }
    +            else if (code_out & LEFT) {
    +                y = y_0 + (y_1 - y_0) * (rect.xmin - x_0) / (x_1 - x_0);
    +                x = rect.xmin;
    +            }
    +
    +            // 用交点替换原来的外部端点
    +            if (code_out == code1) {
    +                x_0 = x; y_0 = y;
    +                code1 = computeCode(x_0, y_0, rect);
    +            }
    +            else {
    +                x_1 = x; y_1 = y;
    +                code2 = computeCode(x_1, y_1, rect);
    +            }
    +        }
    +    }
    +
    +    // 如果接受,则绘制裁剪后的线段(蓝色)
    +    if (accept) {
    +        glBegin(GL_LINES);
    +        glColor3f(0.0f, 0.0f, 1.0f); // 蓝色
    +        glVertex2f(x_0, y_0);
    +        glVertex2f(x_1, y_1);
    +        glEnd();
    +    }
    +}
    +
    +// --- 显示回调函数 ---
    +void myDisplay() {
    +    glClear(GL_COLOR_BUFFER_BIT);
    +
    +    // 1. 绘制裁剪窗口 (红色线框)
    +    glColor3f(1.0f, 0.0f, 0.0f); // 红色
    +    glBegin(GL_LINE_LOOP);
    +        glVertex2f(rect.xmin, rect.ymin);
    +        glVertex2f(rect.xmax, rect.ymin);
    +        glVertex2f(rect.xmax, rect.ymax);
    +        glVertex2f(rect.xmin, rect.ymax);
    +    glEnd();
    +
    +    // 2. 绘制原始线段 (绿色)
    +    // 注意:为了演示效果,我们在调用裁剪函数前,先保存原始坐标,
    +    // 或者在这里直接用初始值绘制。这里我们使用初始值绘制。
    +    int orig_x_0 = 50, orig_y_0 = 350;
    +    int orig_x_1 = 550, orig_y_1 = 50;
    +
    +    glBegin(GL_LINES);
    +    glColor3f(0.0f, 1.0f, 0.0f); // 绿色
    +    glVertex2f(orig_x_0, orig_y_0);
    +    glVertex2f(orig_x_1, orig_y_1);
    +    glEnd();
    +
    +    // 3. 执行裁剪并绘制结果 (蓝色)
    +    // 使用 float 变量传入,因为算法内部会修改它们
    +    float cx_0 = orig_x_0, cy_0 = orig_y_0;
    +    float cx_1 = orig_x_1, cy_1 = orig_y_1;
    +    
    +    // 加粗蓝色线条以便区分
    +    glLineWidth(3.0); 
    +    cohenSutherlandClip(cx_0, cy_0, cx_1, cy_1, rect);
    +    glLineWidth(1.0); // 恢复线宽
    +
    +    glFlush();
    +}
    +
    +// --- 初始化设置 ---
    +void Init() {
    +    glShadeModel(GL_FLAT);
    +
    +    rect.xmin = 100;
    +    rect.xmax = 400;
    +    rect.ymin = 100;
    +    rect.ymax = 300;
    +}
    +
    +// --- 窗口大小调整 ---
    +void myReshape(int w, int h) {
    +    glViewport(0, 0, (GLsizei)w, (GLsizei)h);
    +    glMatrixMode(GL_PROJECTION);
    +    glLoadIdentity();
    +    // 设置二维投影范围,与坐标数值对应
    +    gluOrtho2D(0.0, (GLdouble)w, 0.0, (GLdouble)h);
    +    glMatrixMode(GL_MODELVIEW);
    +}
    +
    +// --- 主函数 ---
    +int main(int argc, char* argv[]) {
    +    glutInit(&argc, argv);
    +    glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
    +    glutInitWindowPosition(100, 100);
    +    glutInitWindowSize(600, 400);
    +    glutCreateWindow("实验2_03毕爽爽 Cohen-Sutherland 算法");
    +
    +    Init();
    +
    +    glutDisplayFunc(myDisplay);
    +    glutReshapeFunc(myReshape);
    +
    +    glutMainLoop();
    +    return 0;
    +}

    OpenGL- Cohen-Sutherland 编码裁剪算法

    /posts/9b2ef00a/
    作者
    biss
    发布于
    许可协议
    CC BY-NC-SA 4.0
    OpenGL
    订阅 打赏

    Comments

    OpenGL- Cohen-Sutherland 编码裁剪算法

    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/posts/a31d95d9/index.html b/posts/a31d95d9/index.html new file mode 100644 index 0000000..36f11ac --- /dev/null +++ b/posts/a31d95d9/index.html @@ -0,0 +1,856 @@ + 和朋友们的故事 | Bi's Blog

    和朋友们的故事

    发布于 2026/01/05 杂谈 总字数:420 阅读时长:2 分钟
    +文章导读 + 摘要由 Qwen 生成

    这篇文章讲述了作者与朋友们的故事,以及他通过挂号信和电子贺卡与朋友们保持联系的经历。作者描述了自己对这种传统通信方式的喜爱,尽管现在网络发达,但他仍然觉得挂号信具有独特的魅力。文章中提到了作者去年上半年开始给朋友们写信,下半年因忙碌而减少,年底时尝试使用AI工具创作电子贺卡。作者感慨大学时间的快速流逝,以及朋友们之间的疏远。尽管如此,作者认为这是必然的事情,并无悲伤之处,只是单纯的感慨。最后,作者表示下次有时间会在文章中更新更多内容。

    最近一直忙于学习(虽然也没怎么好好学),所以一直忘了网站的更新;现在闲下来了,又不知道该写点什么;就写写我和朋友们的故事吧。 +因为一次偶然的突发奇想,解锁了挂号信这种奇奇怪怪的通信方式,虽然现在网络发达,但感觉这种方式有一种独特的魅力。所以从去年开始就断断续续地给朋友们写信,这是一些挂号信收据:

    +
    一些挂号信收据
    +这应该是去年上半年的一张图片,下半年也在零散的发,只不过下半年比较忙,没发多少。到年底的时候呢又想着写一点贺年信,当然感觉自己的水平下降,写不出什么好的文章。于是开始着手准备电子版贺卡,当然完全使用了AI工具,自己写太麻烦,也没什么精力去写,于是就有了下面的电子贺卡: +
    电子贺卡
    +之后呢,又写了其他一些有趣的功能,但好像不是这篇文章的重点; +再写信和创作电子贺卡是感慨万分,进入大学之后时间似乎变得十分快,感觉除了几个天天联系的好友之外,其他人都慢慢疏远了,不过这也是必然的事情,也没什么可悲伤的,只是感慨罢了。 +怎么说,就这样吧,下次有时间再在这篇文章里更新。

    和朋友们的故事

    /posts/a31d95d9/
    作者
    biss
    发布于
    许可协议
    CC BY-NC-SA 4.0
    生活
    订阅 打赏

    Comments

    和朋友们的故事

    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/posts/a6ab0925/index.html b/posts/a6ab0925/index.html new file mode 100644 index 0000000..eb531eb --- /dev/null +++ b/posts/a6ab0925/index.html @@ -0,0 +1,1165 @@ + 利用插件自定义页脚菜单 | Bi's Blog

    利用插件自定义页脚菜单

    发布于 2025/08/12 建站手札 总字数:1.7k 阅读时长:5 分钟
    +文章导读 + 摘要由 Qwen 生成

    这篇文章介绍了如何使用插件来自定义Hexo博客的页脚菜单。首先,通过npm安装了hexo-butterfly-footer-marcus插件,并根据需要安装了yamljs插件。接着,在博客的配置文件中添加了相关配置信息,包括页脚美化、图标链接、作者信息等。文章还提供了具体的参数释义和使用方法,指导读者如何填写配置项和修改源码来调整页脚样式和布局。最后,文章还提到了如何解决在黑暗模式下修改按钮层级的问题,并提供了相关的代码修改示例。

    ARTICLE SERIES

    博客定制手记

    第 4 / 14 篇
    1. 01 配置说说页面
    2. 02 在侧边栏中添加欢迎信息
    3. 03 自定义右键菜单
    4. 04 利用插件自定义页脚菜单
    5. 05 博客添加AI总结
    6. 06 利用 SiteMap 随机访问站内页面
    7. 07 自定义导航栏
    8. 08 自定义分类条
    9. 09 自定义页脚(新)
    10. 10 使用GitHub推送Hexo到服务器
    11. 11 在侧边栏添加日历和倒计时
    12. 12 自定义字体
    13. 13 添加typesense搜索
    14. 14 添加网站左上角菜单

    注意:本文为早期 Hexo / Butterfly 魔改记录,本站现已迁移到 Astro,相关代码、路径或插件可能已经失效,仅作历史参考。

    +

    安装

    +

    安装插件,在博客根目录[Blogroot]下打开终端,运行以下指令:

    +
    npm install hexo-butterfly-footer-marcus --save
    +

    如果需要随机友链接的话,再运行以下指令:

    +
    npm i yamljs --save
    +

    添加配置信息

    +

    以下为写法示例 在站点配置文件_config.yml或者主题配置文件_config.butterfly.yml中添加

    +
    #hexo-butterfly-footer-marcus
    +#see https://blog.marcus233.top/p/footer.html
    +footer_beautify:
    +  enable: true
    +  priority: 5 #过滤器优先权
    +  enable_page: all # 应用页面
    +  layout: # 挂载容器类型
    +      type: id
    +      name: footer
    +      index: 1
    +  footer_icons:
    +    enable: true
    +    left:
    +      - icon: fa-solid fa-compass
    +        link: https://www.marcus233.top/
    +        desrc: 个人主页
    +        class: out
    +      - icon: fa-brands fa-qq
    +        link: https://res.abeim.cn/api/qq/?qq=3105950984
    +        desrc: 联系QQ
    +        class: out
    +      - icon: fa-brands fa-weixin
    +        link: /wechat/
    +        desrc: 联系微信
    +        class: in
    +      - icon: fa-solid fa-envelope
    +        link: mailto:marcus@marcus233.top
    +        desrc: 发送邮件
    +        class: out
    +    right:
    +      - icon: fa-brands fa-github
    +        link: https://github.com/Marcusyyds
    +        desrc: Github主页
    +        class: out
    +      - icon: fa-brands fa-bilibili
    +        link: https://space.bilibili.com/1024450661
    +        desrc: 哔哩哔哩主页
    +        class: out
    +      - icon: fa-solid fa-star
    +        link: /stars/
    +        desrc: 藏宝阁
    +        class: in
    +      - icon: fa-solid fa-comment
    +        link: /message/
    +        desrc: 留言
    +        class: in
    +  footer_logo:
    +    enable: true
    +    url: https://img01.anheyu.com/useruploads/8/2022/12/15/639adf5b8806a.png
    +  footer_group:
    +    enable: true
    +    footer_group_link:
    +      - group_title: 直达
    +        footer_links: 
    +          - text: 藏宝阁
    +            link: /stars/
    +            class: in
    +          - text: 优秀句子
    +            link: /sentence/
    +            class: in
    +          - text: 空间说说
    +            link: /zone/
    +            class: in
    +          - text: 友链订阅
    +            link: /fcircle/
    +            class: in
    +          - text: 切换背景
    +            link: /bg/
    +            class: in
    +      - group_title: 关于
    +        footer_links: 
    +          - text: 关于我
    +            link: /about/
    +            class: in
    +          - text: RSS订阅
    +            link: /atom.xml
    +            class: in
    +          - text: 站点监控
    +            link: https://uptime.marcus233.top/
    +            class: out
    +          - text: 更新记录
    +            link: /timeline/
    +            class: in
    +          - text: 我的相册
    +            link: /picture/
    +            class: in
    +      - group_title: 分类
    +        footer_links: 
    +          - text: 博客相关
    +            link: /categories/博客相关
    +            class: in
    +          - text: 生活点滴
    +            link: /categories/生活点滴
    +            class: in 
    +          - text: 资源分享
    +            link: /categories/资源分享
    +            class: in
    +          - text: 学习笔记
    +            link: /categories/学习笔记
    +            class: in 
    +          - text: 实用教程
    +            link: /categories/实用教程
    +            class: in 
    +          - text: 查看全部
    +            link: /categories/
    +            class: in 
    +  footer_friend_links:
    +    enable: true
    +    number: 5
    +  footer_bottom:
    +    copyright:
    +      enable: true
    +      author: Marcus
    +      link: https://marcus233.top/
    +      time: 2022
    +    left:
    +      - text: 雨云
    +        desrc: 本站CDN支持
    +        link: https://rainyun.com/
    +      - text: 网盾星球
    +        desrc: 本站CDN防护主要提供商:网盾星球
    +        link: https://www.netdun.net/
    +      - text: 萌ICP备20230221
    +        desrc: 萌ICP备20230221
    +        link: https://icp.gov.moe/?keyword=20230221
    +      - text: 萌ICP备20236688
    +        desrc: 萌ICP备20236688
    +        link: https://icp.gov.moe/?keyword=20236688
    +      - text: 萌ICP备20230002
    +        desrc: 萌ICP备20230002
    +        link: https://icp.gov.moe/?keyword=20230002
    +    right:
    +      - text: Hexo
    +        desrc: 框架
    +        link: https://hexo.io/zh-cn/
    +      - text: Butterfly
    +        desrc: 主题
    +        link: https://butterfly.js.org/
    +    runtime:
    +      enable: true
    +      time: 2022/08/09 00:00:00
    +  footer_css: https://cdn1.tianli0.top/npm/hexo-butterfly-footer-marcus/lib/footer.min.css
    +  footer_js: https://cdn1.tianli0.top/npm/hexo-butterfly-footer-marcus/lib/footer.min.js
    +

    请自行下载footer_js修改建站日期 +如果开启了随机友联,根目录下却没有link.json,请参考(页脚的随机友链)[https://blog.shineyu.cn/footer-random-flink.html]

    +

    参数释义

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    参数备选值/类型释义
    enabletrue/false【必选】控制开关
    prioritynumber【可选】过滤器优先级,数值越小,执行越早,默认为10,选填
    enable_pagepath/all【可选】填写想要应用的页面的相对路径(即路由地址),如根目录就填’/‘,分类页面就填’/categories/‘。若要应用于所有页面,就填’all’,默认为all
    excludepath【可选】填写想要屏蔽的页面,可以多个。仅当enable_page为’all’时生效。写法见示例。原理是将屏蔽项的内容逐个放到当前路径去匹配,若当前路径包含任一屏蔽项,则不会挂载。
    layout.typeid/class【可选】挂载容器类型,填写id或class,不填则默认为id
    layout.nametext【必选】挂载容器名称
    layout.index0和正整数【可选】前提是layout.type为class,因为同一页面可能有多个class,此项用来确认究竟排在第几个顺位
    insertpositiontext‘beforebegin’:元素自身的前面。’afterbegin’:插入元素内部的第一个子节点之前。’beforeend’:插入元素内部的最后一个子节点之后。’afterend’:插入元素自身的后面。
    footer_icons.enabletrue/false【必选】icon控制开关
    *.texttext【必选】显示文字
    *.iconclass【必选】icon(例:fa-solid fa-commet)
    *.desrctext【必选】a标签内的title选项
    *.classin/out【必选】站内/外链接(站内:in,站外:out)
    *.linkurl【必选】链接
    footer_logo.enabletrue/false【必选】icon内logo控制开关
    footer_group.enabletrue/false【必选】group控制开关
    footer_friend_links.enabletrue/false【必选】随机友联开关
    footer_friend_link.number正整数【可选】随机友联数量
    footer_bottom.copyright.enabletrue/false【必选】copyright开关
    footer_bottom.runtime.enabletrue/false【必选】网站运行时间开关
    footer_cssurl【必选】css链接
    footer_jsurl【必选】js链接
    +

    使用方法 +填写配置项 +需改动源码的地方

    +

    themes\butterfly\layout\includes\layout.pug43行(修改页脚背景色的bug)

    +
            else
    +          - var footer_bg = ''
    +
    +- footer#footer(style=footer_bg)
    +
    ++ footer#footer(style='background: transparent')
    +  !=partial('includes/footer', {}, {cache: true})
    +
    +  else
    +  include ./404.pug
    +

    去掉+号 +在 themes\butterfly\source\css\_mode\darkmode.styl43行(修改黑暗模式按钮层级的bug)

    +
      #web_bg:before,
    +
    +- #footer:before,
    +  #page-header:before
    +  position: absolute
    +  width: 100%
    +  height: 100%
    +  background-color: alpha($dark-black, .7)
    +  content: ''
    +

    参考

    + + + + Marcus的博客 + Marcus + +](https://blog.marcus233.top/p/footer.html%}) + + + + GitHub开源 + github + +](https://github.com/sysiocn/hexo-butterfly-footer-marcus%})

    利用插件自定义页脚菜单

    /posts/a6ab0925/
    作者
    biss
    发布于
    许可协议
    CC BY-NC-SA 4.0
    网站
    订阅 打赏

    Comments

    利用插件自定义页脚菜单

    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/posts/ad244066/index.html b/posts/ad244066/index.html new file mode 100644 index 0000000..f4e1d5b --- /dev/null +++ b/posts/ad244066/index.html @@ -0,0 +1,1728 @@ + 配置说说页面 | Bi's Blog

    配置说说页面

    发布于 2025/08/10 建站手札 总字数:1.6k 阅读时长:5 分钟
    +文章导读 + 摘要由 Qwen 生成

    这段文字看起来是一个部署教程,主要是关于如何在服务器上部署一个名为“Moments”的应用,并将其与网站集成。以下是对这段文字的概括: 1. 介绍了硬件和软件的要求,包括服务器、域名、Docker环境和反向代理工具(如Nginx)。 2. 提供了Moments应用的部署方法,包括使用docker-compose进行部署和配置Nginx反向代理。 3. 介绍了如何在前端集成Moments应用,包括引入必要的CSS和JS文件,以及创建一个新的页面来显示Moments的内容。 需要注意的是,这段文字中的一些链接和代码可能已经过时或者不适用于所有场景,建议在实际操作时参考最新的官方

    ARTICLE SERIES

    博客定制手记

    第 1 / 14 篇
    1. 01 配置说说页面
    2. 02 在侧边栏中添加欢迎信息
    3. 03 自定义右键菜单
    4. 04 利用插件自定义页脚菜单
    5. 05 博客添加AI总结
    6. 06 利用 SiteMap 随机访问站内页面
    7. 07 自定义导航栏
    8. 08 自定义分类条
    9. 09 自定义页脚(新)
    10. 10 使用GitHub推送Hexo到服务器
    11. 11 在侧边栏添加日历和倒计时
    12. 12 自定义字体
    13. 13 添加typesense搜索
    14. 14 添加网站左上角菜单

    注意:本文为早期 Hexo / Butterfly 魔改记录,本站现已迁移到 Astro,相关代码、路径或插件可能已经失效,仅作历史参考。

    +又开始折腾啦,这次把说说页面加上,改用moments项目的api + + + + Moments 极简朋友圈 + githun · github.com + + +

    前期要求

    +

    硬件要求

    +
      +
    1. 一台服务器
    2. +
    3. 一个可自主解析的域名
    4. +
    +

    软件要求

    +
      +
    1. docker环境
    2. +
    3. 反向代理工具(本文以Nginx为例)
    4. +
    +

    介绍与展示

    +

    这里先给大家展示一下最终的效果,注意该教程可能仅适合部分主题,如果出现主题不适配的情况请自行适配,这里以本站主题 Hexo-theme-butterfly为基础进行修改:

    +
      +
    1. +说说页面: + + + + 我的说说 + 胡言乱语ing。。。 · blog.biss.click + + +
    2. +
    3. +轻量朋友圈 + + + + 朋友圈 + 依旧胡言乱语 · mm.biss.blog + + +
    4. +
    5. 功能说明
    6. +
    +

    Moments作为一个轻量朋友圈,其功能都是分享上的部分,如下所示:

    +
      +
    • 分享:链接,图片,音乐,视频,书籍,电影
    • +
    • 信息:自定义位置,自定义标签,是否公开
    • +
    • 页面:Markdown渲染,编辑说说,删除说说,暗夜模式,自定义图标,信息,CSS及JS代码
    • +
    • 功能:S3存储,文件查询,多用户注册,点赞,评论,API
    • +
    +

    简单介绍完毕,下面我就来教大家如何进行部署!

    +

    部署教程

    +

    Moments部署

    +

    Compose部署

    +

    官方给予了很完善的教程,这里我仅仅简单介绍一下 docker-compose部署的方式,如果你想以源码等其他方式进行部署,请查看文章开头部分的 github地址进行查阅。

    +

    首先,在服务器任意位置创建文件:docker-compose.yaml,填入以下内容:

    +
    version: '3'
    +services:
    +  moments:
    +    image: kingwrcy/moments:latest
    +    container_name: moments
    +    restart: always
    +    environment:
    +      port: 3000
    +      JWT_KEY: "自己随便生成点字符串"
    +      ENABLE_SWAGGER: "true"
    +      CORS_ORIGIN: # 填写跨域域名
    +    ports:
    +      - "3000:3000"  # 自行换端口,换前面的,后面的3000不要动
    +    volumes:
    +      - ./opt/data:/app/data
    +    #   - ./data/localtime:/etc/localtime:ro
    +    #   - ./data/timezone:/etc/timezone:ro
    +

    注意文件,我将 /opt/文件夹(当然可以改成其他的)下的 /data文件夹挂载了进去,数据都会在里面,迁移时仅需整体打包到新服务器即可。然后执行以下两条命令,后续需要升级也仅需要执行这两个命令:

    +
    docker-compose pull
    +docker-compose up -d
    +

    如果网络环境不佳,可尝试替换 docker源,可以自行查找

    +

    通过反向代理将其添加到某个域名中,这里就不再多说了,各大面板都有极其完备的反代文档。

    +

    Nginx修改

    +

    Moments在跨域 docker-compose文件中可以配置,所以不必进行此步

    +

    网站目录

    +

    返回到上一级目录,也就是域名名称的文件夹下,找到 Proxy文件夹,编辑里面的 root.conf文件为如下内容:

    +
    #代理配置
    +
    +location / {
    +    # 跨域设置
    +    add_header Access-Control-Allow-Origin *;  # 允许所有域名访问,你也可以指定具体域名
    +    add_header Access-Control-Allow-Methods 'GET, POST, PUT, DELETE, OPTIONS';  # 允许的 HTTP 方法
    +    add_header Access-Control-Allow-Headers 'Origin, X-Requested-With, Content-Type, Accept, Authorization';  # 允许的请求头
    +
    +    # 处理 OPTIONS 请求,预检请求
    +    if ($request_method = 'OPTIONS') {
    +        add_header Access-Control-Allow-Origin *;
    +        add_header Access-Control-Allow-Methods 'GET, POST, PUT, DELETE, OPTIONS';
    +        add_header Access-Control-Allow-Headers 'Origin, X-Requested-With, Content-Type, Accept, Authorization';
    +        add_header Access-Control-Max-Age 1728000;
    +        add_header Content-Type 'text/plain charset=UTF-8';
    +        add_header Content-Length 0;
    +        return 204;
    +    }
    +
    +    # 原代理设置
    +    proxy_pass http://127.0.0.1:3003;
    +    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 REMOTE-HOST $remote_addr;
    +    proxy_set_header Upgrade $http_upgrade;
    +    proxy_set_header Connection $http_connection;
    +    proxy_set_header X-Forwarded-Proto $scheme;
    +    proxy_http_version 1.1;
    +    add_header X-Cache $upstream_cache_status;
    +    add_header Cache-Control no-cache;
    +    proxy_ssl_server_name off;
    +    proxy_ssl_name $proxy_host;
    +    add_header Strict-Transport-Security "max-age=31536000";
    +}
    +

    下面是原代理设置,可以仅仅复制上面部分内容,下面保持不变,注意端口不要出问题。

    +

    前端实现

    +

    由于该项目利用了MetingJS和APlayer,所以请提前引入这两个包,Hexo-theme-butterfly中虽然有内置的两个包,仅需修改配置文件即可开启,但是版本比较老,这里我建议自行引入最新版本,在配置中引入以下文件,注意css和js应该是分开引入的:

    +
    <link rel="stylesheet" href="https://fastly.jsdelivr.net/npm/aplayer/dist/APlayer.min.css" media="all" onload="this.media="all"">
    +<script src="https://fastly.jsdelivr.net/npm/aplayer/dist/APlayer.min.js"></script>
    +<script src="https://fastly.jsdelivr.net/npm/meting/dist/Meting.min.js"></script>
    +

    新建页面shuoshuo,在文件内写入一下内容:

    +
    ---
    +title: 日常哔哔,键盘侠的日常吐槽
    +aside: false
    +---
    +<div id="talk"></div>
    +<div class="limit">- 只展示最近30条说说 -</div>
    +<script src="/js/shuoshuo.js" no-pjax></script>
    +

    其中的JS文件地址清自行修改,放在主题目录 /script/目录,自行创建,并写入以下内容:

    +
    function renderTalks() {
    +    const talkContainer = document.querySelector('#talk');
    +    const domain = 'https://mm.biss.click'; 
    +    if (!talkContainer) return;
    +    talkContainer.innerHTML = '';
    +    const generateIconSVG = () => {
    +        return `<svg viewBox="0 0 512 512"xmlns="http://www.w3.org/2000/svg"class="is-badge icon"><path d="m512 268c0 17.9-4.3 34.5-12.9 49.7s-20.1 27.1-34.6 35.4c.4 2.7.6 6.9.6 12.6 0 27.1-9.1 50.1-27.1 69.1-18.1 19.1-39.9 28.6-65.4 28.6-11.4 0-22.3-2.1-32.6-6.3-8 16.4-19.5 29.6-34.6 39.7-15 10.2-31.5 15.2-49.4 15.2-18.3 0-34.9-4.9-49.7-14.9-14.9-9.9-26.3-23.2-34.3-40-10.3 4.2-21.1 6.3-32.6 6.3-25.5 0-47.4-9.5-65.7-28.6-18.3-19-27.4-42.1-27.4-69.1 0-3 .4-7.2 1.1-12.6-14.5-8.4-26-20.2-34.6-35.4-8.5-15.2-12.8-31.8-12.8-49.7 0-19 4.8-36.5 14.3-52.3s22.3-27.5 38.3-35.1c-4.2-11.4-6.3-22.9-6.3-34.3 0-27 9.1-50.1 27.4-69.1s40.2-28.6 65.7-28.6c11.4 0 22.3 2.1 32.6 6.3 8-16.4 19.5-29.6 34.6-39.7 15-10.1 31.5-15.2 49.4-15.2s34.4 5.1 49.4 15.1c15 10.1 26.6 23.3 34.6 39.7 10.3-4.2 21.1-6.3 32.6-6.3 25.5 0 47.3 9.5 65.4 28.6s27.1 42.1 27.1 69.1c0 12.6-1.9 24-5.7 34.3 16 7.6 28.8 19.3 38.3 35.1 9.5 15.9 14.3 33.4 14.3 52.4zm-266.9 77.1 105.7-158.3c2.7-4.2 3.5-8.8 2.6-13.7-1-4.9-3.5-8.8-7.7-11.4-4.2-2.7-8.8-3.6-13.7-2.9-5 .8-9 3.2-12 7.4l-93.1 140-42.9-42.8c-3.8-3.8-8.2-5.6-13.1-5.4-5 .2-9.3 2-13.1 5.4-3.4 3.4-5.1 7.7-5.1 12.9 0 5.1 1.7 9.4 5.1 12.9l58.9 58.9 2.9 2.3c3.4 2.3 6.9 3.4 10.3 3.4 6.7-.1 11.8-2.9 15.2-8.7z"fill="#1da1f2"></path></svg>`;
    +    }
    +    const waterfall = (a) => {
    +        function b(a, b) {
    +            var c = window.getComputedStyle(b);
    +            return parseFloat(c["margin" + a]) || 0
    +        }
    +
    +        function c(a) {
    +            return a + "px"
    +        }
    +
    +        function d(a) {
    +            return parseFloat(a.style.top)
    +        }
    +
    +        function e(a) {
    +            return parseFloat(a.style.left)
    +        }
    +
    +        function f(a) {
    +            return a.clientWidth
    +        }
    +
    +        function g(a) {
    +            return a.clientHeight
    +        }
    +
    +        function h(a) {
    +            return d(a) + g(a) + b("Bottom", a)
    +        }
    +
    +        function i(a) {
    +            return e(a) + f(a) + b("Right", a)
    +        }
    +
    +        function j(a) {
    +            a = a.sort(function (a, b) {
    +                return h(a) === h(b) ? e(b) - e(a) : h(b) - h(a)
    +            })
    +        }
    +
    +        function k(b) {
    +            f(a) != t && (b.target.removeEventListener(b.type, arguments.callee), waterfall(a))
    +        }
    +        "string" == typeof a && (a = document.querySelector(a));
    +        var l = [].map.call(a.children, function (a) {
    +            return a.style.position = "absolute", a
    +        });
    +        a.style.position = "relative";
    +        var m = [];
    +        l.length && (l[0].style.top = "0px", l[0].style.left = c(b("Left", l[0])), m.push(l[0]));
    +        for (var n = 1; n < l.length; n++) {
    +            var o = l[n - 1],
    +                p = l[n],
    +                q = i(o) + f(p) <= f(a);
    +            if (!q) break;
    +            p.style.top = o.style.top, p.style.left = c(i(o) + b("Left", p)), m.push(p)
    +        }
    +        for (; n < l.length; n++) {
    +            j(m);
    +            var p = l[n],
    +                r = m.pop();
    +            p.style.top = c(h(r) + b("Top", p)), p.style.left = c(e(r)), m.push(p)
    +        }
    +        j(m);
    +        var s = m[0];
    +        a.style.height = c(h(s) + b("Bottom", s));
    +        var t = f(a);
    +        window.addEventListener ? window.addEventListener("resize", k) : document.body.onresize = k
    +    };
    +
    +    const fetchAndRenderTalks = () => {
    +        const url = 'https://mm.biss.click/api/memo/list';
    +        const cacheKey = 'talksCache';
    +        const cacheTimeKey = 'talksCacheTime';
    +        const cacheDuration = 30 * 60 * 1000; // 半个小时 (30 分钟)
    +  
    +        const cachedData = localStorage.getItem(cacheKey);
    +        const cachedTime = localStorage.getItem(cacheTimeKey);
    +        const currentTime = new Date().getTime();
    +  
    +        // 判断缓存是否有效
    +        if (cachedData && cachedTime && (currentTime - cachedTime < cacheDuration)) {
    +            const data = JSON.parse(cachedData);
    +            renderTalks(data); // 使用缓存渲染数据
    +        } else {
    +            if (talkContainer) {
    +                talkContainer.innerHTML = '';
    +                fetch(url, {
    +                        method: 'POST',
    +                        headers: {
    +                            'Content-Type': 'application/json',
    +                        },
    +                        body: JSON.stringify({
    +                            size: 30
    +                        })
    +                    })
    +                    .then(res => res.json())
    +                    .then(data => {
    +                        if (data.code === 0 && data.data && Array.isArray(data.data.list)) {
    +                            // 缓存数据
    +                            localStorage.setItem(cacheKey, JSON.stringify(data.data.list));
    +                            localStorage.setItem(cacheTimeKey, currentTime.toString());
    +                            renderTalks(data.data.list); // 渲染数据
    +                        }
    +                    })
    +                    .catch(error => {
    +                        console.error('Error fetching data:', error);
    +                    });
    +            }
    +        }
    +  
    +        // 渲染函数
    +        function renderTalks(list) {
    +            // 确保 data 是一个数组
    +            if (Array.isArray(list)) {
    +                let items = list.map(item => formatTalk(item, url));
    +                items.forEach(item => talkContainer.appendChild(generateTalkElement(item)));
    +                waterfall('#talk');
    +            } else {
    +                console.error('Data is not an array:', list);
    +            }
    +        }
    +    };
    +  
    +
    +    const formatTalk = (item, url) => {
    +        let date = formatTime(new Date(item.createdAt).toString());
    +        let content = item.content;
    +        let imgs = item.imgs ? item.imgs.split(',') : [];
    +        let text = content;
    +        content = text.replace(/\[(.*?)\]\((.*?)\)/g, `<a href="$2">@$1</a>`)
    +            .replace(/- \[ \]/g, '⚪')
    +            .replace(/- \[x\]/g, '⚫');
    +        // 保留换行符,转换 \n 为 <br>
    +		content = content.replace(/\n/g, '<br>');
    +        // 将content用一个类包裹,便于后续处理
    +        content = `<div class="talk_content_text">${content}</div>`;
    +        if (imgs.length > 0) {
    +            const imgDiv = document.createElement('div');
    +            imgDiv.className = 'zone_imgbox';
    +            imgs.forEach(e => {
    +                const imgLink = document.createElement('a');
    +                const imgUrl = domain + e;
    +                imgLink.href = imgUrl;
    +                imgLink.setAttribute('data-fancybox', 'gallery');
    +                imgLink.className = 'fancybox';
    +                imgLink.setAttribute('data-thumb', e);
    +                const imgTag = document.createElement('img');
    +                imgTag.src = domain + e;
    +                imgLink.appendChild(imgTag);
    +                imgDiv.appendChild(imgLink);
    +            });
    +            content += imgDiv.outerHTML;
    +        }
    +
    +        // 外链分享功能
    +        if (item.externalUrl) {
    +            const externalUrl = item.externalUrl;
    +            const externalTitle = item.externalTitle;
    +            const externalFavicon = item.externalFavicon;
    +
    +            const externalContainer = `
    +            <div class="shuoshuo-external-link">
    +                <a class="external-link" href="${externalUrl}" target="_blank" rel="external nofollow noopener noreferrer">
    +                    <div class="external-link-left" style="background-image: url(${externalFavicon})"></div>
    +                    <div class="external-link-right">
    +                        <div class="external-link-title">${externalTitle}</div>
    +                        <div>点击跳转<i class="fa-solid fa-angle-right"></i></div>
    +                    </div>
    +                </a>
    +            </div>`;
    +
    +            content += externalContainer;
    +        }
    +
    +        const ext = JSON.parse(item.ext || '{}');
    +
    +        if (ext.music && ext.music.id) {
    +            const music = ext.music;
    +            const musicUrl = music.api.replace(':server', music.server)
    +                .replace(':type', music.type)
    +                .replace(':id', music.id);
    +            content += `
    +            <meting-js server="${music.server}" type="${music.type}" id="${music.id}" api="${music.api}"></meting-js>
    +        `;
    +        }
    +
    +        if (ext.doubanMovie && ext.doubanMovie.id) {
    +            const doubanMovie = ext.doubanMovie;
    +            const doubanMovieUrl = doubanMovie.url;
    +            const doubanTitle = doubanMovie.title;
    +            // const doubanDesc = doubanMovie.desc || '暂无描述';
    +            const doubanImage = doubanMovie.image;
    +            const doubanDirector = doubanMovie.director || '未知导演';
    +            const doubanRating = doubanMovie.rating || '暂无评分';
    +            // const doubanReleaseDate = doubanMovie.releaseDate || '未知上映时间';
    +            // const doubanActors = doubanMovie.actors || '未知演员';
    +            const doubanRuntime = doubanMovie.runtime || '未知时长';
    +
    +            content += `
    +                <a class="douban-card" href="${doubanMovieUrl}" target="_blank">
    +                    <div class="douban-card-bgimg" style="background-image: url('${doubanImage}');"></div>
    +                    <div class="douban-card-left">
    +                        <div class="douban-card-img" style="background-image: url('${doubanImage}');"></div>
    +                    </div>
    +                    <div class="douban-card-right">
    +                        <div class="douban-card-item"><span>电影名: </span><strong>${doubanTitle}</strong></div>
    +                        <div class="douban-card-item"><span>导演: </span><span>${doubanDirector}</span></div>
    +                        <div class="douban-card-item"><span>评分: </span><span>${doubanRating}</span></div>
    +                        <div class="douban-card-item"><span>时长: </span><span>${doubanRuntime}</span></div>
    +                    </div>
    +                </a>
    +            `;
    +        }
    +
    +        if (ext.doubanBook && ext.doubanBook.id) {
    +            const doubanBook = ext.doubanBook;
    +            const bookUrl = doubanBook.url;
    +            const bookTitle = doubanBook.title;
    +            // const bookDesc = doubanBook.desc;
    +            const bookImage = doubanBook.image;
    +            const bookAuthor = doubanBook.author;
    +            const bookRating = doubanBook.rating;
    +            const bookPubDate = doubanBook.pubDate;
    +
    +            const bookTemplate = `
    +                <a class="douban-card" href="${bookUrl}" target="_blank">
    +                    <div class="douban-card-bgimg" style="background-image: url('${bookImage}');"></div>
    +                        <div class="douban-card-left">
    +                            <div class="douban-card-img" style="background-image: url('${bookImage}');"></div>
    +                        </div>
    +                        <div class="douban-card-right">
    +                            <div class="douban-card-item">
    +                                <span>书名: </span><strong>${bookTitle}</strong>
    +                            </div>
    +                            <div class="douban-card-item">
    +                                <span>作者: </span><span>${bookAuthor}</span>
    +                            </div>
    +                            <div class="douban-card-item">
    +                                <span>出版年份: </span><span>${bookPubDate}</span>
    +                            </div>
    +                            <div class="douban-card-item">
    +                                <span>评分: </span><span>${bookRating}</span>
    +                            </div>
    +                        </div>
    +                </a>
    +            `;
    +
    +            content += bookTemplate;
    +        }
    +
    +        if (ext.video && ext.video.type) {
    +            const videoType = ext.video.type;
    +            const videoUrl = ext.video.value;
    +            if (videoType === 'bilibili') {
    +                // Bilibili 视频模板
    +                // 从形如https://www.bilibili.com/video/BV1VGAPeAEMQ/?vd_source=91b3158d27d98ff41f842508c3794a13 的链接中提取视频 BV1VGAPeAEMQ
    +                const biliTemplate = `
    +                <div style="position: relative; padding: 30% 45%; margin-top: 10px;">
    +                    <iframe 
    +                        style="position: absolute; width: 100%; height: 100%; left: 0; top: 0; border-radius: 12px;" 
    +                        src="${videoUrl}&autoplay=0"
    +                        scrolling="no" 
    +                        frameborder="no" 
    +                        allowfullscreen>
    +                    </iframe>
    +                </div>
    +            `;
    +                // 将模板插入到 DOM 中
    +                content += biliTemplate;
    +
    +            } else if (videoType === 'youtube') {
    +                // YouTube 视频模板
    +                // 从形如https://youtu.be/2V6lvCUPT8I?si=DVhUas6l6qlAr6Ru的链接中提取视频 ID2V6lvCUPT8I
    +                const youtubeTemplate = `
    +                <div style="position: relative; padding: 30% 45%; margin-top: 10px;">
    +                    <iframe width="100%"
    +                        style="position: absolute; width: 100%; height: 100%; left: 0; top: 0; border-radius: 12px;"
    +                        src="${videoUrl}"
    +                        title="YouTube video player" 
    +                        frameborder="0" 
    +                        allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" 
    +                        referrerpolicy="strict-origin-when-cross-origin" 
    +                        allowfullscreen>
    +                    </iframe>
    +                </div>
    +            `;
    +                // 将模板插入到 DOM 中
    +                content += youtubeTemplate;
    +            }
    +        }
    +
    +        return {
    +            content: content,
    +            user: item.user.nickname || '匿名',
    +            avatar: item.user.avatarUrl || 'https://p.liiiu.cn/i/2024/03/29/66061417537af.png',
    +            date: date,
    +            location: item.location || '山西',
    +            tags: item.tags ? item.tags.split(',').filter(tag => tag.trim() !== '') : ['无标签'],
    +            text: content.replace(/\[(.*?)\]\((.*?)\)/g, '[链接]' + `${imgs.length ? '[图片]' : ''}`)
    +        };
    +    };
    +
    +    const generateTalkElement = (item) => {
    +        const talkItem = document.createElement('div');
    +        talkItem.className = 'talk_item';
    +
    +        const talkMeta = document.createElement('div');
    +        talkMeta.className = 'talk_meta';
    +
    +        const avatar = document.createElement('img');
    +        avatar.className = 'no-lightbox avatar';
    +        avatar.src = item.avatar;
    +
    +        const info = document.createElement('div');
    +        info.className = 'info';
    +
    +        const talkNick = document.createElement('span');
    +        talkNick.className = 'talk_nick';
    +        talkNick.innerHTML = `${item.user} ${generateIconSVG()}`;
    +
    +        const talkDate = document.createElement('span');
    +        talkDate.className = 'talk_date';
    +        talkDate.textContent = item.date;
    +
    +        const talkContent = document.createElement('div');
    +        talkContent.className = 'talk_content';
    +        talkContent.innerHTML = item.content;
    +
    +        const talkBottom = document.createElement('div');
    +        talkBottom.className = 'talk_bottom';
    +
    +        const TagContainer = document.createElement('div');
    +
    +        const talkTag = document.createElement('span');
    +        talkTag.className = 'talk_tag';
    +        talkTag.textContent = `🏷️${item.tags}`;
    +
    +        const locationTag = document.createElement('span');
    +        locationTag.className = 'location_tag';
    +        locationTag.textContent = `🌍${item.location}`;
    +
    +        TagContainer.appendChild(talkTag);
    +        TagContainer.appendChild(locationTag);
    +
    +        const commentLink = document.createElement('a');
    +        commentLink.href = 'javascript:;';
    +        commentLink.onclick = () => goComment(item.text);
    +        const commentIcon = document.createElement('span');
    +        commentIcon.className = 'icon';
    +        const commentIconInner = document.createElement('i');
    +        commentIconInner.className = 'fa-solid fa-message fa-fw';
    +        commentIcon.appendChild(commentIconInner);
    +        commentLink.appendChild(commentIcon);
    +
    +        talkMeta.appendChild(avatar);
    +        info.appendChild(talkNick);
    +        info.appendChild(talkDate);
    +        talkMeta.appendChild(info);
    +        talkItem.appendChild(talkMeta);
    +        talkItem.appendChild(talkContent);
    +        talkBottom.appendChild(TagContainer);
    +        talkBottom.appendChild(commentLink);
    +        talkItem.appendChild(talkBottom);
    +
    +        return talkItem;
    +    };
    +
    +    const goComment = (e) => {
    +        const match = e.match(/<div class="talk_content_text">([\s\S]*?)<\/div>/);
    +        const textContent = match ? match[1] : "";
    +        const n = document.querySelector(".atk-textarea");
    +        n.value = `> ${textContent}\n\n`;
    +        n.focus();
    +        btf.snackbarShow("已为您引用该说说,不删除空格效果更佳");
    +        // const n = document.querySelector(".atk-textarea");
    +        // n.value = `> ${e}\n\n`;
    +        // n.focus();
    +        // btf.snackbarShow("已为您引用该说说,不删除空格效果更佳");
    +    };
    +
    +    const formatTime = (time) => {
    +        const d = new Date(time);
    +        const ls = [
    +            d.getFullYear(),
    +            d.getMonth() + 1,
    +            d.getDate(),
    +            d.getHours(),
    +            d.getMinutes(),
    +            d.getSeconds(),
    +        ];
    +        const r = ls.map((a) => (a.toString().length === 1 ? '0' + a : a));
    +        return `${r[0]}-${r[1]}-${r[2]} ${r[3]}:${r[4]}`;
    +    };
    +
    +    fetchAndRenderTalks();
    +}
    +
    +renderTalks();
    +
    +// function whenDOMReady() {
    +//     const talkContainer = document.querySelector('#talk');
    +//     talkContainer.innerHTML = '';
    +//     fetchAndRenderTalks();
    +// }
    +// whenDOMReady();
    +// document.addEventListener("pjax:complete", whenDOMReady);
    +

    自行修改js文件中的Moments地址为你的地址,在文件中,有一个gocomment函数,实现的是获取卡片中的文本内容,如果如果出现不匹配的情况,请自行修改一下类名,这里我匹配的是artalk的输入框。在这里我把代码做了修改,因为我不想使用s3,结果导致说说图片无法加载。。。 +修改历程:日后再写

    +

    然后引入样式文件,这个文件可以在配置文件中引用,也可以在页面文件中类似于shuoshuo.js一样引用,样式内容如下:

    +
    :root {
    +    --liushen-card-bg: #fff;
    +    --liushen-card-border: 1px solid #e3e8f7;
    +    --card-box-shadow: 0 3px 8px 6px rgba(7,17,27,0.09);
    +    --card-hover-box-shadow: 0 3px 8px 6px rgba(7,17,27,0.2);
    +    --liushen-card-secondbg: #f1f3f8;
    +    --liushen-button-hover-bg: #2679cc;
    +    --liushen-text: #4c4948;
    +    --liushen-button-bg: #f1f3f8;
    +    --liushen-fancybox-bg: rgba(255,255,255,0.5);
    +}
    +
    +:root, [data-theme=dark] {
    +    --liushen-card-bg: #181818;
    +    --liushen-card-secondbg: #30343f;
    +    --liushen-card-border: 1px solid #42444a;
    +    --card-box-shadow: 0 3px 8px 6px rgba(7,17,27,0.09);
    +    --card-hover-box-shadow: 0 3px 8px 6px rgba(7,17,27,0.2);
    +    --liushen-button-bg: #30343f;
    +    --liushen-button-hover-bg: #2679cc;
    +    --liushen-text: rgba(255,255,255,0.702);
    +    --liushen-fancybox-bg: rgba(0,0,0,0.5);
    +}
    +
    +/* 卡片初始化 */
    +#talk .talk_item {
    +    width: calc(33.333% - 6px);
    +    background: var(--liushen-card-bg);
    +    border: var(--liushen-card-border);
    +    box-shadow: var(--card-box-shadow);
    +    transition: box-shadow .3s ease-in-out;
    +    border-radius: 12px;
    +    display: flex;
    +    flex-direction: column;
    +    padding: 20px;
    +    margin-bottom: 9px;
    +    margin-right: 9px;
    +}
    +#talk .talk_item:hover {
    +    box-shadow: var(--card-hover-box-shadow);
    +}
    +
    +@media (max-width: 900px) {
    +    #talk .talk_item {
    +      width: calc(50% - 5px);
    +    }
    +}
    +@media (max-width: 450px) {
    +    #talk .talk_item {
    +      width: calc(100%);
    +    }
    +}
    +
    +#talk{
    +    position: relative;
    +    width: 100%;
    +    box-sizing: border-box;
    +}
    +
    +#talk .talk_meta .avatar {
    +    margin: 0 !important;
    +    width: 60px;
    +    height: 60px;
    +    border-radius: 12px;
    +}
    +#talk .talk_bottom,
    +#talk .talk_meta {
    +    display: flex;
    +    align-items: center;
    +}
    +#talk .talk_meta {
    +    display: flex;
    +    align-items: center;
    +    width: 100%;
    +    padding-bottom: 10px;
    +    border-bottom: 1px dashed grey; /* 添加灰色虚线边框 */
    +}
    +#talk .talk_bottom {
    +    margin-top: 15px;
    +    padding-top: 10px;
    +    border-top: 1px dashed grey; /* 添加灰色虚线边框 */
    +    justify-content: space-between;
    +}
    +#talk .talk_meta .info {
    +    display: flex;
    +    flex-direction: column;
    +    margin-left: 10px;
    +}
    +#talk .talk_meta .info .talk_nick {
    +    color: #6dbdc3;
    +    font-size: 1.2rem;
    +}
    +#talk .talk_meta .info svg.is-badge.icon {
    +    width: 15px;
    +    padding-top: 3px;
    +}
    +#talk .talk_meta .info span.talk_date {
    +    opacity: .6;
    +}
    +#talk .talk_item .talk_content {
    +    margin-top: 10px;
    +}
    +#talk .talk_item .talk_content .zone_imgbox {
    +    display: flex;
    +    flex-wrap: wrap;
    +    --w: calc(25% - 8px);
    +    gap: 10px;
    +    margin-top: 10px;
    +}
    +#talk .talk_item .talk_content .zone_imgbox a {
    +    display: block;
    +    border-radius: 12px;
    +    width: var(--w);
    +    aspect-ratio: 1/1;
    +    position: relative;
    +}
    +#talk .talk_item .talk_content .zone_imgbox a:first-child {
    +    width: 100%;
    +    aspect-ratio: 1.8;
    +}
    +#talk .talk_item .talk_content .zone_imgbox img {
    +    border-radius: 10px;
    +    width: 100%;
    +    height: 100%;
    +    margin: 0 !important;
    +    object-fit: cover;
    +}
    +/* 底部 */
    +#talk .talk_item .talk_bottom {
    +    opacity: .9;
    +}
    +#talk .talk_item .talk_bottom .icon {
    +    float: right;
    +    transition: all .3s;
    +}
    +#talk .talk_item .talk_bottom .icon:hover {
    +    color: #49b1f5;
    +}
    +#talk .talk_item .talk_bottom span.talk_tag,
    +#talk .talk_item .talk_bottom span.location_tag {
    +    font-size: 14px;
    +    background-color: var(--liushen-card-secondbg);
    +    border-radius: 12px;
    +    padding: 3px 15px 3px 10px;
    +    transition: box-shadow 0.3s ease;
    +    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    +}
    +
    +#talk .talk_item .talk_bottom span.location_tag {
    +    margin-left: 5px;
    +}
    +
    +#talk .talk_item .talk_bottom span.talk_tag:hover,
    +#talk .talk_item .talk_bottom span.location_tag:hover {
    +    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);
    +}
    +#talk .talk_item .talk_content>a {
    +    margin: 0 3px;
    +    color: #ff7d73 !important;
    +}
    +#talk .talk_item .talk_content>a:hover{
    +    text-decoration: none !important;
    +    color: #ff5143 !important
    +}
    +
    +@media screen and (max-width: 900px) {
    +    #talk .talk_item .talk_content .zone_imgbox {
    +        --w: calc(33% - 5px);
    +    }
    +    #talk .talk_item #post-comment{
    +        margin: 0 3px
    +    }
    +}
    +@media screen and (max-width: 768px) {
    +    .zone_imgbox {
    +        gap: 6px;
    +    }
    +    .zone_imgbox {
    +        --w: calc(50% - 3px);
    +    }
    +    span.talk_date {
    +        font-size: 14px;
    +    }
    +}
    +
    +#talk .talk_item .talk_content .douban-card {
    +    margin-top: 10px !important;
    +    text-decoration: none;
    +    align-items: center;
    +    border-radius: 12px;
    +    color: #faebd7;
    +    display: flex;
    +    justify-content: center;
    +    margin: 10px;
    +    max-width: 400px;
    +    overflow: hidden;
    +    padding: 15px;
    +    position: relative;
    +}
    +
    +.douban-card .douban-card-bgimg {
    +    background-position: 50%;
    +    background-repeat: no-repeat;
    +    background-size: 100%;
    +    filter: blur(15px) brightness(.6);
    +    height: 115%;
    +    position: absolute;
    +    width: 115%;
    +}
    +
    +.douban-card .douban-card-left {
    +    align-items: center;
    +    display: flex;
    +    flex-direction: column;
    +    position: relative;
    +}
    +
    +.douban-card .douban-card-left .douban-card-img {
    +    transition: all .5s ease;
    +    height: 130px;
    +    position: relative;
    +    width: 80px;
    +    background-position: 50%;
    +    background-repeat: no-repeat;
    +    background-size: 100%;
    +}
    +
    +.douban-card .douban-card-left:hover .douban-card-img {
    +    filter: blur(5px) brightness(.6);
    +    transform: perspective(800px) rotateX(180deg);
    +}
    +
    +.douban-card .douban-card-right {
    +    color: #faebd7;
    +    display: flex;
    +    flex-direction: column;
    +    font-size: 14px;
    +    line-height: 1.5;
    +    margin-left: 12px;
    +    position: relative;
    +}
    +
    +.douban-card .douban-card-right .douban-card-item  {
    +    margin-top: 4px;
    +    max-width: 95%;
    +    overflow: hidden;
    +    text-overflow: ellipsis;
    +    white-space: nowrap;
    +}
    +
    +/* 外链卡片 */
    +#talk .talk_item .talk_content .shuoshuo-external-link {
    +    /* 无下划线 */
    +    width: 100%;
    +    height: 80px;
    +    margin-top: 10px;
    +    border-radius: 12px;
    +    background-color: var(--liushen-card-secondbg);
    +    color: var(--liushen-card-text);
    +    border: var(--liushen-card-border);
    +    transition: background-color .3s ease-in-out;
    +}
    +
    +.shuoshuo-external-link:hover {
    +    background-color: var(--liushen-button-hover-bg);
    +}
    +
    +.shuoshuo-external-link .external-link {
    +    display: flex;
    +    color: var(--liushen-text) !important;
    +    width: 100%;
    +    height: 100%;
    +}
    +
    +.shuoshuo-external-link .external-link:hover {
    +    color: white !important;
    +}
    +
    +.shuoshuo-external-link .external-link:hover {
    +    text-decoration: none !important;
    +}
    +
    +.shuoshuo-external-link .external-link-left {
    +    width: 60px;
    +    height: 60px;
    +    margin: 10px;
    +    border-radius: 12px;
    +    background-size: cover;
    +    background-position: center;
    +}
    +
    +.shuoshuo-external-link .external-link-right {
    +    display: flex;
    +    flex-direction: column;
    +    justify-content: center;
    +    width: calc(100% - 80px);
    +    padding: 10px;
    +}
    +
    +.shuoshuo-external-link .external-link-right .external-link-title {
    +    font-size: 1.0rem;
    +    font-weight: 800;
    +    white-space: nowrap;
    +    overflow: hidden;
    +    text-overflow: ellipsis;
    +}
    +
    +.shuoshuo-external-link .external-link-right i {
    +    margin-left: 5px;
    +}
    +
    +.limit {
    +    width: 100%;
    +    text-align: center;
    +    margin-top: 30px;
    +}
    +

    如果一切正常,应该就可以显示了,但是我在使用时发现卡片是黑色的,把前面的root内容删除之后就好了。

    +

    参考内容

    + + + + liushen的博客 + liushen · blog.liushen.fun + + +

    当然还有chatgpt的支持

    配置说说页面

    /posts/ad244066/
    作者
    biss
    发布于
    许可协议
    CC BY-NC-SA 4.0
    网站
    订阅 打赏

    Comments

    配置说说页面

    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/posts/b559997d/index.html b/posts/b559997d/index.html new file mode 100644 index 0000000..8f80241 --- /dev/null +++ b/posts/b559997d/index.html @@ -0,0 +1,930 @@ + opencv应用-算术运算 | Bi's Blog

    opencv应用-算术运算

    +文章导读 + 摘要由 Qwen 生成

    这篇文章介绍了如何使用OpenCV进行图像的加法运算。首先,通过包含OpenCV和iostream头文件,并使用std命名空间,开始编写代码。主函数中,读取两张图片,检查是否成功加载,并确保它们的尺寸相同。如果尺寸不同,将第二张图片调整为与第一张相同的大小。然后,调用add函数对两幅图片进行加法运算,并将结果存储在result矩阵中。最后,显示原始图片和加法运算的结果,并等待按键关闭窗口。代码已上传至自建的git仓库。

    ARTICLE SERIES

    OpenCV 学习笔记

    第 3 / 3 篇
    1. 01 配置opencv
    2. 02 opencv应用-基础操作
    3. 03 opencv应用-算术运算

    opencv对图像的算数运算,感觉都大同小异,分为以下几种:加减乘除和位运算。

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    函数功能应用场景
    cv2.bitwise_and()按位与操作掩码操作、图像分割
    cv2.bitwise_or()按位或操作图像叠加
    cv2.bitwise_not()按位取反操作图像反色
    cv2.bitwise_xor()按位异或操作图像差异检测
    +

    因为感觉都差不多,所以只把加法运算代码搬过来

    +
    // 加法
    +#include <opencv2/opencv.hpp>
    +#include <iostream>
    +
    +using namespace std;
    +using namespace cv;
    +
    +int main()
    +{
    +    string path1 = "../img/2.jpg";
    +    string path2 = "../img/3.jpg";
    +
    +    Mat img1 = imread(path1);
    +    Mat img2 = imread(path2);
    +
    +    if (img1.empty() || img2.empty())
    +    {
    +        cout << "无法读取图片,请检查路径!" << endl;
    +        return -1;
    +    }
    +
    +    if (img1.size() != img2.size())
    +    {
    +        cout << "尺寸不一致,正在自动调整 img2 的尺寸..." << endl;
    +        // 将 img2 缩放到与 img1 相同的尺寸
    +        resize(img2, img2, img1.size());
    +    }
    +
    +    Mat result;
    +    add(img1, img2, result);
    +
    +    imshow("Original Image 1", img1);
    +    imshow("Original Image 2", img2);
    +    imshow("Add Result", result);
    +
    +    // 等待按键后关闭窗口
    +    waitKey(0);
    +    destroyAllWindows();
    +
    +    return 0;
    +}
    +另外,把代码上传到了自建的git中 + + + + opencv-learning + opencv-learning · git.biss.click + +

    opencv应用-算术运算

    /posts/b559997d/
    作者
    biss
    发布于
    许可协议
    CC BY-NC-SA 4.0
    opencv
    订阅 打赏

    Comments

    opencv应用-算术运算

    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/posts/b5601a7e/index.html b/posts/b5601a7e/index.html new file mode 100644 index 0000000..f7df923 --- /dev/null +++ b/posts/b5601a7e/index.html @@ -0,0 +1,907 @@ + 自定义字体 | Bi's Blog

    自定义字体

    发布于 2026/01/16 建站手札 总字数:641 阅读时长:2 分钟
    +文章导读 + 摘要由 Qwen 生成

    这篇文章讨论了如何自定义网站字体,以提升网站的美观性和用户体验。作者首先提到了在移动端和电脑上使用woff或woff2字体能够完美显示的重要性,并提到谷歌字体库可能已经可以直接在中国大陆访问,这使得自定义字体的需求可能不再那么迫切。接着,文章详细介绍了如何在网上寻找并下载喜欢的字体,包括字体格式的转换方法。然后,展示了如何在CSS文件中添加字体,包括如何声明字体族和指定字体文件的路径。最后,文章还提供了关于其他字体格式的参考,并指导如何在主题文件的font配置区域修改字体设置。

    ARTICLE SERIES

    博客定制手记

    第 12 / 14 篇
    1. 01 配置说说页面
    2. 02 在侧边栏中添加欢迎信息
    3. 03 自定义右键菜单
    4. 04 利用插件自定义页脚菜单
    5. 05 博客添加AI总结
    6. 06 利用 SiteMap 随机访问站内页面
    7. 07 自定义导航栏
    8. 08 自定义分类条
    9. 09 自定义页脚(新)
    10. 10 使用GitHub推送Hexo到服务器
    11. 11 在侧边栏添加日历和倒计时
    12. 12 自定义字体
    13. 13 添加typesense搜索
    14. 14 添加网站左上角菜单

    注意:本文为早期 Hexo / Butterfly 魔改记录,本站现已迁移到 Astro,相关代码、路径或插件可能已经失效,仅作历史参考。

    +今天感觉网站的字体有些不好看,想换一下,搜索发现网站用woff或者woff2字体,在手机端和电脑都能完美显示 +

    2026年2月3日更新:好像谷歌字体库可以在大陆直连了,速度也很快,所以这篇文章好像没什么必要了。

    +

    选择字体

    +首先在网上查找自己喜欢的字体,这里有一个网站 + + + + 中文开源字体集 Open Source Fonts Collection for Chinese + 开源字体 · drxie.github.io + + +找到一个自己喜欢的,如果有woff或者woff2格式下载下载保存。没有也没关系,转换网站: + + + + 转换网站 + ttf2woff2 · products.groupdocs.app + + +利用这个网站把下载的ttf字体文件转换成woff2格式。 +

    添加字体

    +

    新建一个css文件

    +
    @font-face {
    +  font-family: 'CascadiaCodePL';
    +  font-display: swap;
    +  src: url('/butterflyChange/fonts/font.woff2') format("woff2");
    +}
    +

    其中 font.woff2改成自己的文件名。 +其他字体格式参考

    +
    @font-face {
    +   font-family: 'webfont';
    +   font-display: swap;
    +   src: url('.eot');  /*IE9*/
    +   src: url('.eot') format('embedded-opentype'),  /* IE6-IE8 */
    +        url('.woff2') format('woff2'),
    +        url('.woff') format('woff'),  /*chrome、firefox */
    +        url('.ttf') format('truetype'),  /* chrome、firefox、opera、Safari, Android, iOS 4.2+*/
    +        url('.svg') format('svg');  /* iOS 4.1- */
    +}```
    +然后在`_config.butterfly.yml`里面引用这个css
    +```yml
    +- <link rel="stylesheet" href="/css/font.css">
    +

    在主题文件的font配置区域修改字体:

    +
    font:
    +  global_font_size:  110%
    +  code_font_size: 100%
    +  font_family:  # ,全局字体,不带后缀名
    +  code_font_family: # 这是代码使用的字体
    +

    参考链接

    + + + + Ordis的博客 + ordis · blog.imbhj.com + +

    自定义字体

    /posts/b5601a7e/
    作者
    biss
    发布于
    许可协议
    CC BY-NC-SA 4.0
    网站
    订阅 打赏

    Comments

    自定义字体

    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/posts/b57500e9/index.html b/posts/b57500e9/index.html new file mode 100644 index 0000000..d801638 --- /dev/null +++ b/posts/b57500e9/index.html @@ -0,0 +1,870 @@ + 在Openwrt上安装AdguardHome | Bi's Blog

    在Openwrt上安装AdguardHome

    发布于 2025/09/29 技术 总字数:434 阅读时长:2 分钟
    +文章导读 + 摘要由 Qwen 生成

    这篇文章介绍了在OpenWrt上安装AdguardHome的过程。首先,作者提到由于luci-app-adguardhome软件源的问题,选择了其他途径获取软件包并进行安装。接着,详细说明了安装步骤,包括下载、上传和运行安装命令。在配置部分,作者强调了更新核心版本的重要性,并提供了配置AdguardHome的具体步骤,如关闭路由器自带DNS/DHCP服务器,并建议设置AdguardHome的DHCP服务器。最后,作者提醒用户在完成配置后点击“保存并应用”,并通过AdGuardHome Web界面进行验证。

    接续前言,AdguardHome是一款广告拦截软件,有了一台小软路由后就开始折腾了。

    +

    安装

    +

    首先要下载软件包,但是经过尝试,软件源里面的luci-app-adguardhome不太好用~~(也可能是我不会用)~~ ,所以我用的下面的包:

    + + + + luci-app-adguardhome + rufengsuixing · github.com + + +

    虽然好几年没更新了,但还是能用。下载之后上传到路由器,使用opkg install命令安装,或者可以直接通过网页安装:

    +
    image
    +

    配置

    +

    如下图所示进行操作,如果更新核心版本失败,考虑更换升级用的下载链接,使用镜像源,或者科学上网,错号框内的非必要不修改;

    +
    Screenshot of the AdGuard Home configuration page in the OpenWrt web interface. The left sidebar menu is expanded to highlight the Services section and AdGuard Home submenu. The main panel displays configuration options including enable checkbox, web management port, update core version button, executable file path, compressed file option, configuration file path, working directory, and log file path. A large red X marks the configuration file path field, indicating it should not be modified. Visible text includes AdGuard Home, OpenClash, miniDLNA, UPnP IGD and PCP, enable, update core version, executable file path, configuration file path, working directory, log file path, and other related options. The interface is clean and instructional, with a neutral tone.
    +

    最后点击“保存并应用”,然后点击AdGuardHome Web:3000,进行安装,建议关闭路由器自带DNS/DHCP服务器,AdguardHome直接替代

    +
    Screenshot of the OpenWrt web interface showing the DHCP/DNS settings page. The left sidebar menu is expanded to highlight the network section and DHCP/DNS submenu. The main panel displays the General tab with options for enabling exclusive authorization and DNS redirect, both with checkboxes. The interface is clean and organized, with navigation tabs for additional settings such as DNS records, filters, logs, and PXE/TFTP. The overall tone is neutral and instructional. Visible text includes DHCP/DNS, 常规, 唯一授权, DNS redirect, 本地解析这些项目, 本地域名, and other configuration options.
    +
    alt=Screenshot of the OpenWrt web interface focused on DHCP/DNS settings. The left sidebar menu highlights the network section and DHCP/DNS submenu. Red arrows guide the user through selecting DHCP/DNS, then the settings and port tab, and finally entering 5353 in the DNS server port field. The main panel displays options for specifying interface addresses, listening interfaces, excluded interfaces, and DNS server port. Visible text includes DHCP/DNS, 设置及端口, 5353, 监听接口, 排除接口, DNS服务器端口, DNS查询端口, and related configuration options. The interface is clean and instructional, with a neutral and helpful tone.
    +

    然后,设置AdguardHome的DHCP服务器,注意要先检查配置,再启用

    +
    image

    在Openwrt上安装AdguardHome

    /posts/b57500e9/
    作者
    biss
    发布于
    许可协议
    CC BY-NC-SA 4.0
    OpenwrtAdguardHome
    订阅 打赏

    Comments

    在Openwrt上安装AdguardHome

    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/posts/b5866b9e/index.html b/posts/b5866b9e/index.html new file mode 100644 index 0000000..5aea97f --- /dev/null +++ b/posts/b5866b9e/index.html @@ -0,0 +1,889 @@ + 利用 SiteMap 随机访问站内页面 | Bi's Blog

    利用 SiteMap 随机访问站内页面

    发布于 2025/08/12 建站手札 总字数:300 阅读时长:1 分钟
    +文章导读 + 摘要由 Qwen 生成

    提供了一个很好的解决方案,通过使用 Hexo 的 sitemap 生成器和 JavaScript 代码来实现随机访问站内页面的功能 以下是你提供的步骤的详细解释:

    ARTICLE SERIES

    博客定制手记

    第 6 / 14 篇
    1. 01 配置说说页面
    2. 02 在侧边栏中添加欢迎信息
    3. 03 自定义右键菜单
    4. 04 利用插件自定义页脚菜单
    5. 05 博客添加AI总结
    6. 06 利用 SiteMap 随机访问站内页面
    7. 07 自定义导航栏
    8. 08 自定义分类条
    9. 09 自定义页脚(新)
    10. 10 使用GitHub推送Hexo到服务器
    11. 11 在侧边栏添加日历和倒计时
    12. 12 自定义字体
    13. 13 添加typesense搜索
    14. 14 添加网站左上角菜单

    注意:本文为早期 Hexo / Butterfly 魔改记录,本站现已迁移到 Astro,相关代码、路径或插件可能已经失效,仅作历史参考。

    +

    在网上查找博客美化过程时发现基本上都有“随便逛逛”的功能,于是自己也添加一个。 +比较简单只有js代码,但是先要安装插件

    +

    前置条件

    +
    npm install hexo-generator-sitemap --save
    +

    在站点配置文件 _config.yaml中添加:

    +
    sitemap:
    +  path: 
    +    - sitemap.xml
    +    - sitemap.txt
    +  rel: false
    +  tags: true
    +  categories: true
    +

    添加js

    +

    在主题目录下添加·\themes\butterfly\source\js\random.js

    +
    function randomPost() {
    +    fetch('/sitemap.xml').then(res => res.text()).then(str => (new window.DOMParser()).parseFromString(str, "text/xml")).then(data => {
    +        let ls = data.querySelectorAll('url loc');
    +        let locationHref,locSplit;
    +        do {
    +            locationHref = ls[Math.floor(Math.random() * ls.length)].innerHTML
    +            locSplit = locationHref.split('/')[3] || ''
    +        } while (locSplit == '' || locSplit == 'tags');
    +        //若所有文章都如 https://…….com/posts/2022/07/…… 格式,主域名后字符是 posts,则循环条件改为:
    +        //while (locSplit !== 'posts');
    +        location.href = locationHref
    +    })
    +}
    +

    使用

    +

    使用,在菜单栏上添加

    +
    <a href="javascript:;" onclick="randomPost()" title="随机访问一篇文章">随机</a>
    +

    参考

    + + + + 木木木木木的博客 + 木木木木木 · immmmm.com + +

    利用 SiteMap 随机访问站内页面

    /posts/b5866b9e/
    作者
    biss
    发布于
    许可协议
    CC BY-NC-SA 4.0
    网站
    订阅 打赏

    Comments

    利用 SiteMap 随机访问站内页面

    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/posts/bb18d851/index.html b/posts/bb18d851/index.html new file mode 100644 index 0000000..cf4c2ad --- /dev/null +++ b/posts/bb18d851/index.html @@ -0,0 +1,1277 @@ + 为1Panel添加自己想要的应用 | Bi's Blog

    为1Panel添加自己想要的应用

    发布于 2025/08/19 技术 总字数:1.5k 阅读时长:4 分钟
    +文章导读 + 摘要由 Qwen 生成

    这篇文章详细介绍了如何为1Panel添加自定义应用的过程,包括预准备工作、创建文件和配置应用声明文件等步骤。首先,作者强调了Fork仓库和创建新分支的重要性。接着,文章逐步讲解了如何在应用目录下创建所需的文件和子目录,如halo、logo.png、data.yml、README.md等。特别详细地说明了应用声明文件data.yml的构成,包括基本信息、应用标签、类型等关键配置。此外,还解释了关于端口字段和type字段的具体使用方法,提供了实际安装时填写form表单的示例。整个过程不仅清晰易懂,而且为开发者提供了一套完整的操作指南,有助于他们更好地理解和实施应用添加到1Panel的过程。

    记录一下自己为1Panel贡献自己应用的经历

    +

    预准备

    +
      +
    1. +Fork仓库 + + + + 1Panel appstore 仓库 + 1panel appstore · github.com + + +把仓库fork到自己的仓库 +
    2. +
    3. pull +
      git clone -b dev https://<your-github-username>/appstore
      +创建新分支 +
      cd appstore
      +git checkout -b app/<app-name>
      +
    4. +
    +

    创建文件

    +

    文件目录

    +
    ├──halo // 以 halo 的 key 命名 ,下面解释什么是 key 
    +	├── logo.png // 应用 logo , 最好是 180 * 180 px 不要超过 10 KB 
    +	├── data.yml // 应用声明文件
    +	├── README.md // 应用的 README
    +	├── 2.2.0 // 应用版本 注意不要以 v 开头
    +	│   ├── data.yml // 应用的参数配置,下面有详细介绍
    +	│   ├── data // 挂载出来的目录 
    +	|   ├── scripts // 脚本目录 存放 init.sh upgrade.sh uninstall.sh
    +	│   └── docker-compose.yml // docker-compose 文件
    +	└── 2.3.2
    +	    ├── data.yml
    +	    ├── data
    +	    └── docker-compose.yml
    +

    应用声明文件data.yml

    +

    本文件主要用于声明应用的一些信息

    +
    additionalProperties:  #固定参数
    +    key: halo   #应用的 key ,仅限英文,用于在 Linux 创建文件夹
    +    name: Halo  #应用名称
    +    tags:  
    +        - WebSite #应用标签,可以有多个,请参照下方的标签列表 
    +	description:  
    +	  en: Powerful and easy-to-use open source website builder
    +	  zh: 强大易用的开源建站工具 #应用中文描述,不要超过30个字
    +	  zh-Hant:
    +	  ja:   
    +	  ms: 
    +	  pt-br: 
    +	  ru:  
    +	  ko: 
    +    type: website  #应用类型,区别于应用分类,只能有一个,请参照下方的类型列表
    +    crossVersionUpdate: true  #是否可以跨大版本升级
    +    limit: 0  #应用安装数量限制,0 代表无限制
    +    website: https://halo.run/  #官网地址
    +    github: https://github.com/halo-dev/halo #github 地址 
    +    document: https://docs.halo.run/ #文档地址
    +

    应用标签 - tags 字段

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    keyname
    WebSite建站
    ServerWeb 服务器
    Runtime运行环境
    Database数据库
    Tool工具
    CI/CDCI/CD
    Local本地
    +

    应用类型 - type 字段

    + + + + + + + + + + + + + + + + + + + + + +
    type说明
    websitewebsite 类型在 1Panel 中支持在网站中一键部署,wordpress halo 都是此 type
    runtimemysql openresty redis 等类型的应用
    toolphpMyAdmin redis-commander jenkins 等类型的应用
    +

    应用参数配置文件 data.yml

    +

    (注意区分于应用主目录下面的 data.yaml

    +

    本文件主要用于生成安装时要填写的 form 表单,在应用版本文件夹下面 可以无表单,但是需要有这个 data.yml文件,并且包含 formFields 字段

    +

    以安装 halo 时的 form 表单 为例

    +

    如果要生成上面的表单,需要这么填写 data.yml

    +
    	additionalProperties:  #固定参数
    +	    formFields:  
    +	        - default: ""  
    +	          envKey: PANEL_DB_HOST  #docker-compose 文件中的参数
    +	          key: mysql  #依赖应用的 key , 例如 mysql
    +		  label:  
    +		   en: Database Service  
    +	           ja: データベースサービス  
    +		   ms: Perkhidmatan Pangkalan Data  
    +		   pt-br: Serviço de Banco de Dados  
    +		   ru: Сервис базы данных  
    +		   ko: 데이터베이스 서비스  
    +		   zh: 数据库服务  
    +		   zh-Hant: 數據庫 服務
    +		  required: true  #是否必填
    +	          type: service  #如果需要依赖其他应用,例如数据库,使用此 type 
    +	        - default: halo  
    +	          envKey: PANEL_DB_NAME  
    +	          label:  
    +	            en: Database  
    +		    ja: データベース  
    +		    ms: Pangkalan Data  
    +		    pt-br: Banco de Dados  
    +		    ru: База данных  
    +		    ko: 데이터베이스  
    +		    zh: 数据库名  
    +		    zh-Hant: 資料庫名稱
    +	          random: true  #是否在 default 文字后面,增加随机字符串
    +	          required: true  
    +	          rule: paramCommon  #校验规则
    +	          type: text  #需要手动填写的,使用此 type
    +	        - default: halo  
    +	          envKey: PANEL_DB_USER  
    +		  label:  
    +		    en: User  
    +		    ja: ユーザー  
    +		    ms: Pengguna  
    +		    pt-br: Usuário  
    +		    ru: Пользователь  
    +		    ko: 사용자  
    +		    zh: 数据库用户  
    +		    zh-Hant: 資料庫使用者
    +	          random: true  
    +	          required: true  
    +	          rule: paramCommon  
    +	          type: text  
    +	        - default: halo  
    +	          envKey: PANEL_DB_USER_PASSWORD  
    +		  label:  
    +		    en: Password  
    +		    ja: パスワード  
    +		    ms: Kata laluan  
    +		    pt-br: Senha  
    +		    ru: Пароль  
    +		    ko: 비밀번호  
    +		    zh: 数据库用户密码  
    +		    zh-Hant: 資料庫使用者密碼 
    +	          random: true  
    +	          required: true  
    +	          rule: paramComplexity  
    +	          type: password  #密码字段使用此 type
    +	        - default: admin  
    +	          envKey: HALO_ADMIN  
    +	          labelEn: Admin Username  
    +	          labelZh: 超级管理员用户名  
    +	          required: true  
    +	          rule: paramCommon  
    +	          type: text 
    +	        - default: http://localhost:8080  
    +	          edit: true  
    +	          envKey: HALO_EXTERNAL_URL  
    +		  label:  
    +		    en: External URL  
    +		    ja: 外部URL  
    +		    ms: URL Luaran  
    +		    pt-br: URL Externa  
    +		    ru: Внешний URL  
    +		    ko: 외부 URL  
    +		    zh: 外部访问地址  
    +		    zh-Hant: 外部訪問地址 
    +	          required: true  
    +	          rule: paramExtUrl  
    +	          type: text  
    +	        - default: 8080  
    +	          edit: true  
    +	          envKey: PANEL_APP_PORT_HTTP  
    +		  label:  
    +		    en: Port  
    +		    ja: ポート  
    +		    ms: Port  
    +		    pt-br: Porta  
    +		    ru: Порт  
    +		    ko: 포트  
    +		    zh: 端口  
    +		    zh-Hant: 
    +	          required: true  
    +	          rule: paramPort  
    +	          type: number #端口使用此 type 
    +

    关于端口字段:

    +

    PANEL_APP_PORT_HTTPweb 访问端口的优先使用此 envKey +envKey 中包含 PANEL_APP_PORT 前缀会被认定为端口类型,并且用于安装前的端口占用校验。注意:端口需要是外部端口

    +

    关于 type 字段:

    + + + + + + + + + + + + + + + + + + + + + + + + + +
    type说明
    servicetype: service 如果该应用需要依赖其他组件,如 mysql redis 等,可以通过 key: mysql 定义依赖的名称,在创建应用时会要求先创建依赖的应用。
    passwordtype: password 敏感信息,如密码相关的字段会默认不显示明文。
    texttype: text 一般内容,比如数据库名称,默认明文显示。
    numbertype: number 一般用在端口相关的配置上,只允许输入数字。
    +

    简单的例子

    +
    # type: service,定义一个 mysql 的 service 依赖。
    +- child:  
    +    default: ""  
    +    envKey: PANEL_DB_HOST  
    +    required: true  
    +    type: service  
    +  default: mysql  
    +  envKey: PANEL_DB_TYPE  
    +  label:  
    +    en: Database Service  
    +    ja: データベースサービス  
    +    ms: Perkhidmatan Pangkalan Data  
    +    pt-br: Serviço de Banco de Dados  
    +    ru: Сервис баз данных  
    +    ko: 데이터베이스 서비스  
    +    zh-hant: 資料庫服務  
    +    zh: 数据库服务  
    +  required: true  
    +  type: apps  
    +  values:  
    +    - label: MySQL  
    +      value: mysql  
    +    - label: MariaDB  
    +      value: mariadb
    +
    +# type: password
    +- default: word  
    +  envKey: PANEL_DB_USER_PASSWORD  
    +  labelEn: Database Password  
    +  labelZh: 数据库密码  
    +  label:  
    +    en: Database Password  
    +    ja: データベースのパスワード  
    +    ms: Kata Laluan Pangkalan Data  
    +    pt-br: Senha do Banco de Dados  
    +    ru: Пароль базы данных  
    +    ko: 데이터베이스 비밀번호  
    +    zh-hant: 資料庫密碼  
    +    zh: 数据库密码  
    +  random: true  
    +  required: true  
    +  type: password
    +
    +# type: text
    +- default: ""  
    +  edit: true  
    +  envKey: REDIS_HOST  
    +  key: redis  
    +  required: true  
    +  type: service  
    +  label:  
    +    en: Redis Service  
    +    ja: Redis サービス  
    +    ms: Perkhidmatan Redis  
    +    pt-br: Serviço Redis  
    +    ru: Сервис Redis  
    +    ko: Redis 서비스  
    +    zh-Hant: Redis 服務  
    +    zh: Redis 服务
    +    
    +# type: number
    +- default: ""  
    +  edit: true  
    +  envKey: DBHUB_DB_PORT  
    +  required: true  
    +  type: text  
    +  label:  
    +    en: Database Port  
    +    ja: データベースのポート  
    +    ms: Pangkalan Data Port  
    +    pt-br: Porta do Banco de Dados  
    +    ru: Порт базы данных  
    +    ko: 데이터베이스 포트  
    +    zh-hant: 資料庫端口  
    +    zh: 数据库端口
    +
    +# type: select
    +- default: "ERROR"  
    +  envKey: LOG_LEVEL  
    +  required: true  
    +  type: select  
    +  values:  
    +    - label: DEBUG  
    +      value: "DEBUG"  
    +    - label: INFO  
    +      value: "INFO"  
    +    - label: WARNING  
    +      value: "WARNING"  
    +    - label: ERROR  
    +      value: "ERROR"  
    +    - label: CRITICAL  
    +      value: "CRITICAL"
    +

    rule 字段目前支持的几种校验

    + + + + + + + + + + + + + + + + + + + + + + + + + +
    rule规则
    paramPort用于限制端口范围为 1-65535
    paramExtUrl格式为 http(s)://(域名/ip):(端口)
    paramCommon英文、数字、.-和_,长度2-30
    paramComplexity支持英文、数字、.%@$!&~_-,长度6-30,特殊字符不能在首尾
    +

    应用 docker-compose.yml 文件

    +

    ${PANEL_APP_PORT_HTTP} 类型的参数,都在 data.yml 中有声明

    +
    version: "3"  
    +services:  
    +  halo:  
    +    image: halohub/halo:2.2.0  
    +    container_name: ${CONTAINER_NAME}  // 固定写法,勿改
    +    restart: always  
    +    networks:  
    +      - 1panel-network  // 1Panel 创建的应用都在此网络下
    +    volumes:  
    +      - ./data:/root/.halo2  
    +    ports:  
    +      - ${PANEL_APP_PORT_HTTP}:8090  
    +    command:  
    +      - --spring.r2dbc.url=r2dbc:pool:${HALO_PLATFORM}://${PANEL_DB_HOST}:${HALO_DB_PORT}/${PANEL_DB_NAME}  
    +      - --spring.r2dbc.username=${PANEL_DB_USER}  
    +      - --spring.r2dbc.password=${PANEL_DB_USER_PASSWORD}  
    +      - --spring.sql.init.platform=${HALO_PLATFORM}  
    +      - --halo.external-url=${HALO_EXTERNAL_URL}  
    +      - --halo.security.initializer.superadminusername=${HALO_ADMIN}  
    +      - --halo.security.initializer.superadminpassword=${HALO_ADMIN_PASSWORD}  
    +    labels:  
    +      createdBy: "Apps"  
    +  
    +networks:  
    +  1panel-network:  
    +    external: true
    +

    脚本

    +

    1Panel 在 安装之前、升级之前、卸载之后支持执行 .sh 脚本 +分别对应 init.sh upgrade.sh uninstall.sh +存放目录(以halo为例) : halo/2.2.0/scripts

    +

    本地测试

    +

    将应用目录上传到 1Panel 的 /opt/1panel/resource/apps/local 文件夹下 +注意:/opt 为 1Panel 默认安装目录,请根据自己的实际情况修改 +上传完成后,目录结构如下

    +
    ├──halo 
    +	├── logo.png 
    +	├── data.yml
    +	├── README.md 
    +	├── 2.2.0 
    +	    ├── data.yml 
    +	    ├── data  
    +	    └── docker-compose.yml
    +

    在 1Panel 应用商店中,点击更新应用列表按钮同步本地应用

    +

    v1.2 版本及之前版本的本地应用,请参考这个文档修改

    +

    提交文件

    +
    git add .
    +git commit -m "Add my-app"
    +git push origin dev
    +

    提交 Pull Request

    +

    在你的仓库点击 Pull requests 菜单 +点击 New pull request ,填写标题和描述 +选择由你的分支提交到 1Panel-dev/appstore

    为1Panel添加自己想要的应用

    /posts/bb18d851/
    作者
    biss
    发布于
    许可协议
    CC BY-NC-SA 4.0
    1panel
    订阅 打赏

    Comments

    为1Panel添加自己想要的应用

    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/posts/bc56f789/index.html b/posts/bc56f789/index.html new file mode 100644 index 0000000..1da6f1d --- /dev/null +++ b/posts/bc56f789/index.html @@ -0,0 +1,879 @@ + C# 入门 | Bi's Blog

    C# 入门

    发布于 2025/08/15 学习 总字数:159 阅读时长:1 分钟
    +文章导读 + 摘要由 Qwen 生成

    这篇文章指导初学者在Windows上安装C#开发环境:先下载Visual Studio社区版安装器并勾选“.NET桌面开发”工作负载,可自定义安装路径;随后通过HelloWorld演示C#基础结构,包含命名空间、类、Main入口及Console输出,帮助读者完成首个程序并熟悉默认模板。

    ARTICLE SERIES

    C#

    第 1 / 2 篇
    1. 01 C# 入门
    2. 02 C# 基本语法

    今天开始学习C#

    +

    环境安装

    +下载Visual Studio,社区版就可以 + + + + Visual Studio + Visual Studio · visualstudio.microsoft.com + + +下载的是安装器选择.Net桌面开发,注意修改安装位置 +
    .Net 桌面开发
    +

    第一个程序

    +
    using System;
    +namespace HelloWorldApplication
    +{
    +    /* 类名为 HelloWorld */
    +    class HelloWorld
    +    {
    +        /* main函数 */
    +        static void Main(string[] args)
    +        {
    +            /* 我的第一个 C# 程序 */
    +            Console.WriteLine("Hello World!");
    +            Console.ReadKey();
    +        }
    +    }
    +}
    +

    这也是一个默认的格式

    C# 入门

    /posts/bc56f789/
    作者
    biss
    发布于
    许可协议
    CC BY-NC-SA 4.0
    C#
    订阅 打赏

    Comments

    C# 入门

    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/posts/c4477b0c/index.html b/posts/c4477b0c/index.html new file mode 100644 index 0000000..fb6b71d --- /dev/null +++ b/posts/c4477b0c/index.html @@ -0,0 +1,979 @@ + 配置OpenGL环境 | Bi's Blog

    配置OpenGL环境

    发布于 2026/04/02 技术 总字数:985 阅读时长:3 分钟
    +文章导读 + 摘要由 Qwen 生成

    这篇文章详细介绍了配置OpenGL环境所需步骤,包括安装Visual Studio、CMake和GLFW等关键组件,并提供了具体的配置方法和测试代码,旨在帮助读者顺利开始计算机图形学的学习之旅。

    ARTICLE SERIES

    OpenGL 学习笔记

    第 1 / 4 篇
    1. 01 配置OpenGL环境
    2. 02 OpenGL-基础程序
    3. 03 OpenGL-直线的扫描转换
    4. 04 OpenGL- Cohen-Sutherland 编码裁剪算法

    最近要学计算机图形学,所以会用到OpenGL,配置环境有点繁琐,记录了下来。

    +

    安装Visual Studio

    +

    现在我们先来安装Visual Studiovisual studio,下载后安装即可|在安装时选择“使用C++的桌面开发”,这样安装时就会安装C++的编译器了。

    +

    +

    安装 Cmake

    +

    这个可选,因为我们可以使用Visual Studio的编译器MSVC来编译项目。 +Cmake是一个开源的跨平台软件构建工具,它可以生成不同系统的构建文件,比如MakefileNinjaVS项目文件等等。 +我们可以下载Cmakecmake,下载后安装即可。

    +

    安装GLFW

    +

    OpenGL有许多工具,比如GLFW,GLEW等等,这里我们安装GLFW。

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    工具类别主要职责特点
    GLUT窗口管理 + 工具库创建窗口、处理鼠标键盘、提供内置渲染循环。古老、简单。使用“固定管线”(老旧技术),适合教学。
    GLFW窗口管理库创建窗口、处理输入、管理多个上下文。现代、轻量。只管窗口和输入,不负责渲染逻辑,是目前的主流。
    GLAD配置/加载库加载 OpenGL 函数指针(连接驱动)。底层必备。因为 OpenGL 函数在显卡驱动里,需要它来“找”函数地址。
    +

    下载GLFW 和 glad

    +

    GLFW是一个开源的跨平台C/C++窗口管理库,它可以创建窗口、处理输入、管理多个上下文。 +下载GLFWglfw,下载后解压即可。

    +

    创建项目与配置

    +

    Visual Studio创建一个空的C++项目,然后添加GLFW的目录到项目中。 +在项目属性中添加GLFW的目录到“C/C++->General->Additional Include Directories”中。 +如图所示: +

    +

    测试

    +

    创建一个main.cpp文件,内容如下:

    +
    #include <glad/glad.h>
    +#include <GLFW/glfw3.h>
    +#include <iostream>
    +
    +// 顶点着色器源码
    +const char* vertexShaderSource = "#version 330 core\n"
    +    "layout (location = 0) in vec3 aPos;\n"
    +    "void main() {\n"
    +    "   gl_Position = vec4(aPos.x, aPos.y, aPos.z, 1.0);\n"
    +    "}\0";
    +
    +// 片段着色器源码
    +const char* fragmentShaderSource = "#version 330 core\n"
    +    "out vec4 FragColor;\n"
    +    "void main() {\n"
    +    "   FragColor = vec4(1.0f, 1.0f, 1.0f, 1.0f);\n" // 白色
    +    "}\n\0";
    +
    +int main() {
    +    // 1. 初始化 GLFW
    +    glfwInit();
    +    glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
    +    glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
    +    glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
    +
    +    // 2. 创建窗口
    +    GLFWwindow* window = glfwCreateWindow(800, 600, "Simple OpenGL", NULL, NULL);
    +    glfwMakeContextCurrent(window);
    +    gladLoadGLLoader((GLADloadproc)glfwGetProcAddress);
    +
    +    // 3. 编译着色器
    +    unsigned int vertexShader = glCreateShader(GL_VERTEX_SHADER);
    +    glShaderSource(vertexShader, 1, &vertexShaderSource, NULL);
    +    glCompileShader(vertexShader);
    +
    +    unsigned int fragmentShader = glCreateShader(GL_FRAGMENT_SHADER);
    +    glShaderSource(fragmentShader, 1, &fragmentShaderSource, NULL);
    +    glCompileShader(fragmentShader);
    +
    +    unsigned int shaderProgram = glCreateProgram();
    +    glAttachShader(shaderProgram, vertexShader);
    +    glAttachShader(shaderProgram, fragmentShader);
    +    glLinkProgram(shaderProgram);
    +
    +    // 4. 定义三角形顶点数据
    +    float vertices[] = {
    +        -0.5f, -0.5f, 0.0f, // 左下
    +         0.5f, -0.5f, 0.0f, // 右下
    +         0.0f,  0.5f, 0.0f  // 顶部
    +    };
    +
    +    unsigned int VBO, VAO;
    +    glGenVertexArrays(1, &VAO);
    +    glGenBuffers(1, &VBO);
    +
    +    glBindVertexArray(VAO);
    +    glBindBuffer(GL_ARRAY_BUFFER, VBO);
    +    glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW);
    +
    +    glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 3 * sizeof(float), (void*)0);
    +    glEnableVertexAttribArray(0);
    +
    +    // 5. 渲染循环
    +    while (!glfwWindowShouldClose(window)) {
    +        glClearColor(0.2f, 0.3f, 0.3f, 1.0f); // 深青色背景
    +        glClear(GL_COLOR_BUFFER_BIT);
    +
    +        glUseProgram(shaderProgram);
    +        glBindVertexArray(VAO);
    +        glDrawArrays(GL_TRIANGLES, 0, 3);
    +
    +        glfwSwapBuffers(window);
    +        glfwPollEvents();
    +    }
    +
    +    glfwTerminate();
    +    return 0;
    +}
    +

    如果能运行成功应该就没问题了。

    配置OpenGL环境

    /posts/c4477b0c/
    作者
    biss
    发布于
    许可协议
    CC BY-NC-SA 4.0
    OpenGL
    订阅 打赏

    Comments

    配置OpenGL环境

    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/posts/c6143ad3/index.html b/posts/c6143ad3/index.html new file mode 100644 index 0000000..6d5bdc8 --- /dev/null +++ b/posts/c6143ad3/index.html @@ -0,0 +1,1360 @@ + 自定义页脚(新) | Bi's Blog

    自定义页脚(新)

    发布于 2025/08/15 建站手札 总字数:255 阅读时长:1 分钟
    +文章导读 + 摘要由 Qwen 生成

    您提供的代码是一个自定义页脚的HTML和CSS代码 要在您的网站中使用这个自定义页脚,请按照以下步骤操作: 1. 首先,将提供的CSS代码复制到您网站的CSS文件中。如果您没有单独的CSS文件,可以在HTML文件的`<head>`部分添加`<style>`标签,并将CSS代码粘贴到其中。 2. 接下来,将提供的HTML代码复制到您网站的HTML文件中。将其放置在`<body>`标签内,最好在页面的底部。 3. 根据需要自定义页脚内容,例如更改版权信息、菜单链接、社交链接等。 4. 保存更改并在浏览器中查看您的网站,您应该能看到自定义页脚。

    ARTICLE SERIES

    博客定制手记

    第 9 / 14 篇
    1. 01 配置说说页面
    2. 02 在侧边栏中添加欢迎信息
    3. 03 自定义右键菜单
    4. 04 利用插件自定义页脚菜单
    5. 05 博客添加AI总结
    6. 06 利用 SiteMap 随机访问站内页面
    7. 07 自定义导航栏
    8. 08 自定义分类条
    9. 09 自定义页脚(新)
    10. 10 使用GitHub推送Hexo到服务器
    11. 11 在侧边栏添加日历和倒计时
    12. 12 自定义字体
    13. 13 添加typesense搜索
    14. 14 添加网站左上角菜单

    注意:本文为早期 Hexo / Butterfly 魔改记录,本站现已迁移到 Astro,相关代码、路径或插件可能已经失效,仅作历史参考。

    +

    添加CSS

    +

    修改有风险,注意备份

    +
    /*https://codepen.io/poojanahelia/pen/Exabvdy*/
    +
    +#footer {
    +    background-color: rgba(0, 0, 0, 0); /* 修改透明色 */
    +    color: #fff;
    +    padding: 0;
    +}
    +
    +#footer .footer-other {
    +    padding: 0;
    +}
    +
    +.footer-copyright{
    +    padding: 0;
    +}
    +
    +.my-footer-logo {
    +    color: white;
    +}
    +
    +.my-footer-wave-svg {
    +    height: 50px;
    +    width: 100%;
    +    transform: scale(-1, -1) translateY(-10px); /*;*/
    +}
    +
    +.my-footer-wave-path {
    +    fill: #177ecd;
    +}
    +
    +.my-footer-content {
    +    margin-left: auto;
    +    margin-right: auto;
    +    max-width: 1230px;
    +    padding: 40px 15px 450px;
    +    position: relative;
    +}
    +
    +.my-footer-content-column {
    +    box-sizing: border-box;
    +    float: left;
    +    padding-left: 15px;
    +    padding-right: 15px;
    +    width: 100%;
    +    color: #fff;
    +}
    +
    +.my-footer-content-column ul li a {
    +    color: #fff;
    +    text-decoration: none;
    +}
    +
    +.my-footer-logo-link {
    +    display: inline-block;
    +}
    +
    +.my-footer-menu {
    +    margin-top: 15px;
    +}
    +
    +.my-footer-menu-name {
    +    color: #fffff2;
    +    font-size: 15px;
    +    font-weight: 900;
    +    letter-spacing: .1em;
    +    line-height: 18px;
    +    margin-bottom: 0;
    +    margin-top: 0;
    +    text-transform: uppercase;
    +}
    +
    +.my-footer-menu-list {
    +    list-style: none;
    +    margin-bottom: 0;
    +    margin-top: 10px;
    +    padding-left: 0;
    +}
    +
    +.my-footer-menu-list li {
    +    margin-top: 5px;
    +}
    +
    +.my-footer-call-to-action-description {
    +    color: #fffff2;
    +    margin-top: 10px;
    +    margin-bottom: 20px;
    +}
    +
    +.my-footer-call-to-action-button:hover {
    +    background-color: #fffff2;
    +    color: #00bef0;
    +}
    +
    +.button:last-of-type {
    +    margin-right: 0;
    +}
    +
    +.my-footer-call-to-action-button {
    +    background-color: #03708c;
    +    border-radius: 21px;
    +    color: #fffff2;
    +    display: inline-block;
    +    font-size: 11px;
    +    font-weight: 900;
    +    letter-spacing: .1em;
    +    line-height: 18px;
    +    padding: 12px 30px;
    +    margin: 0 10px 10px 0;
    +    text-decoration: none;
    +    text-transform: uppercase;
    +    transition: background-color .2s;
    +    cursor: pointer;
    +    position: relative;
    +}
    +
    +.my-footer-call-to-action {
    +    margin-top: 17px;
    +}
    +
    +.my-footer-call-to-action-title {
    +    color: #fffff2;
    +    font-size: 14px;
    +    font-weight: 900;
    +    letter-spacing: .1em;
    +    line-height: 18px;
    +    margin-bottom: 0;
    +    margin-top: 0;
    +    text-transform: uppercase;
    +}
    +
    +.my-footer-call-to-action-link-wrapper {
    +    margin-bottom: 0;
    +    margin-top: 10px;
    +    color: #fff;
    +    text-decoration: none;
    +}
    +
    +.my-footer-call-to-action-link-wrapper a {
    +    color: #fff;
    +    text-decoration: none;
    +}
    +
    +
    +.my-footer-social-links {
    +    bottom: -1px;
    +    height: 54px;
    +    position: absolute;
    +    right: 0;
    +    width: 236px;
    +}
    +
    +.my-footer-social-amoeba-svg {
    +    height: 54px;
    +    left: 0;
    +    display: block;
    +    position: absolute;
    +    top: 0;
    +    width: 236px;
    +}
    +
    +.my-footer-social-amoeba-path {
    +    fill: #03708c;
    +}
    +
    +.my-footer-social-link.email {
    +    height: 41px;
    +    left: 5px;
    +    top: 14px;
    +    width: 41px;
    +}
    +
    +.my-footer-social-link {
    +    display: block;
    +    padding: 10px;
    +    position: absolute;
    +}
    +
    +.hidden-link-text {
    +    position: absolute;
    +    clip: rect(1px 1px 1px 1px);
    +    clip: rect(1px, 1px, 1px, 1px);
    +    -webkit-clip-path: inset(0px 0px 99.9% 99.9%);
    +    clip-path: inset(0px 0px 99.9% 99.9%);
    +    overflow: hidden;
    +    height: 1px;
    +    width: 1px;
    +    padding: 0;
    +    border: 0;
    +    top: 50%;
    +}
    +
    +.my-footer-social-icon-svg {
    +    display: block;
    +}
    +
    +.my-footer-social-icon-path {
    +    fill: #fffff2;
    +    transition: fill .2s;
    +}
    +
    +.my-footer-social-link.follow {
    +    height: 42px;
    +    left: 124px;
    +    top: 13px;
    +    width: 42px;
    +}
    +
    +.my-footer-social-link.rss {
    +    height: 43px;
    +    left: 178px;
    +    top: 10px;
    +    width: 43px;
    +}
    +
    +.my-footer-social-link.github {
    +    height: 62px;
    +    left: 54px;
    +    top: -4px;
    +    width: 62px;
    +}
    +
    +.my-footer-copyright {
    +    background-color: #03708c;
    +    color: #fff;
    +    padding: 15px 30px;
    +    text-align: center;
    +}
    +
    +.my-footer-copyright-wrapper {
    +    margin-left: auto;
    +    margin-right: auto;
    +    max-width: 1200px;
    +}
    +
    +.my-footer-copyright-text {
    +    color: #fff;
    +    font-size: 13px;
    +    font-weight: 400;
    +    line-height: 18px;
    +    margin-bottom: 0;
    +    margin-top: 0;
    +}
    +
    +.my-footer-copyright-link {
    +    color: #fff;
    +    text-decoration: none;
    +}
    +
    +.my-footer-content-div {
    +    background: #177ecd
    +}
    +
    +.my-footer-svg-div {
    +    width: 100%;
    +    max-height: 200px;
    +}
    +
    +/* Media Query For different screens */
    +@media (min-width: 320px) and (max-width: 479px) {
    +    /* smartphones, portrait iPhone, portrait 480x320 phones (Android) */
    +    .my-footer-content {
    +        margin-left: auto;
    +        margin-right: auto;
    +        max-width: 1230px;
    +        padding: 40px 15px 649px;
    +        position: relative;
    +    }
    +
    +    /* 不展示logo */
    +    .my-footer-logo {
    +        display: none;
    +    }
    +}
    +
    +@media (min-width: 480px) and (max-width: 599px) {
    +    /* smartphones, Android phones, landscape iPhone */
    +    .my-footer-content {
    +        margin-left: auto;
    +        margin-right: auto;
    +        max-width: 1230px;
    +        padding: 40px 15px 738px;
    +        position: relative;
    +    }
    +
    +    .my-footer-logo {
    +        padding-left: 177px; /* Qlogo 稍微偏移一点 */
    +        padding-right: 170px;
    +    }
    +}
    +
    +@media (min-width: 600px) and (max-width: 800px) {
    +    /* portrait tablets, portrait iPad, e-readers (Nook/Kindle), landscape 800x480 phones (Android) */
    +    .my-footer-content {
    +        margin-left: auto;
    +        margin-right: auto;
    +        max-width: 1230px;
    +        padding: 40px 15px 758px;
    +        position: relative;
    +    }
    +
    +
    +}
    +
    +@media (min-width: 801px) {
    +    /* tablet, landscape iPad, lo-res laptops ands desktops */
    +
    +}
    +
    +@media (min-width: 1025px) {
    +    /* big landscape tablets, laptops, and desktops */
    +
    +}
    +
    +@media (min-width: 1281px) {
    +    /* hi-res laptops and desktops */
    +
    +}
    +
    +
    +@media (min-width: 760px) {
    +    .my-footer-content {
    +        margin-left: auto;
    +        margin-right: auto;
    +        max-width: 1230px;
    +        padding: 10px 15px 237px;
    +        position: relative;
    +    }
    +
    +
    +    .my-footer-content-column {
    +        /*五列的话 19.99 %*/
    +        width: 24.99%;
    +    }
    +}
    +
    +@media (min-width: 568px) {
    +
    +}
    +
    +@media (min-width: 600px) and (max-width: 760px) {
    +    /* 在这里编写适用于小屏幕的样式 */
    +    .my-footer-logo {
    +        padding-left: 212px; /* Qlogo 稍微偏移一点 */
    +        padding-right: 204px;
    +    }
    +}
    +/* 页脚波浪的颜色 */
    +[data-theme='dark'] .my-footer-wave-path {
    +    fill: #0f3858;
    +}
    +[data-theme='dark'] .my-footer-content-div {
    +    background-color: #0f3858;
    +}
    +
    +/* 页脚海底的颜色 */
    +[data-theme='dark'] .my-footer-copyright {
    +    background-color: #2b3f49;
    +}
    +[data-theme='dark'] .my-footer-social-amoeba-path {
    +    fill: #2b3f49;
    +}
    +
    +

    注入

    +

    打开主题配置文件 _config.butterfly.yml,写入以下内容(以目前我的页脚为例,具体内容请自行修改):

    +
    # Footer Settings
    +# --------------------------------------
    +footer:
    +  custom_text: |
    +    <div class="my-footer-svg-div">
    +      <svg class="my-footer-wave-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 100" preserveAspectRatio="none">
    +      <path class="my-footer-wave-path" d="M851.8,100c125,0,288.3-45,348.2-64V0H0v44c3.7-1,7.3-1.9,11-2.9C80.7,22,151.7,10.8,223.5,6.3C276.7,2.9,330,4,383,9.8 c52.2,5.7,103.3,16.2,153.4,32.8C623.9,71.3,726.8,100,851.8,100z"></path>
    +      </svg>    
    +    </div>
    +    <div class="my-footer-content-div" >
    +    <div class="my-footer-content">
    +        <div class="my-footer-content-column">
    +            <div class="my-footer-logo">
    +                <a class="my-footer-logo-link" href="#">
    +                    <span class="hidden-link-text">LOGO</span>
    +                    <img src="/image/footer/qlogo_white_no_words.png" style="height:40%; width:40%">
    +                </a>
    +            </div>
    +            <div class="my-footer-menu">
    +                <h2 class="my-footer-menu-name">开始</h2>
    +                <ul id="menu-get-started" class="my-footer-menu-list">
    +                    <li class="menu-item menu-item-type-post_type menu-item-object-product">
    +                        <a href="/pages/about.html">关于本站</a>
    +                    </li>
    +                </ul>
    +            </div>
    +        </div>
    +        <div class="my-footer-content-column">
    +            <div class="my-footer-menu">
    +                <h2 class="my-footer-menu-name">快速链接</h2>
    +                <ul id="menu-company" class="my-footer-menu-list">
    +                    <li class="menu-item menu-item-type-post_type menu-item-object-product">
    +                        <a href="https://hexo.io/zh-cn/">Hexo</a>&nbsp;&nbsp;<a href="https://github.com/jerryc127/hexo-theme-butterfly">Butterfly</a>
    +                    </li>
    +                    <li class="menu-item menu-item-type-taxonomy menu-item-object-category">
    +                        <a href="/archives/">时间轴</a>&nbsp;|&nbsp;<a href="/DO_NOT_render/cosmoscope/cosmoscope_trim.html">关系图</a>&nbsp;|&nbsp;<a href="/pages/categories/">分类</a>
    +                    </li>
    +                    <li class="menu-item menu-item-type-post_type menu-item-object-product">
    +                        <a href="/p/91b7dad/">同款页脚</a>
    +                    </li>
    +                    <li class="menu-item menu-item-type-post_type menu-item-object-product">
    +                        <a href="https://www.foreverblog.cn/" rel="noopener external nofollow noreferrer" target="_blank" > <img class="img-foreverblog" src="/image/footer/forever_logo_en_default_white.png" alt="" style="width:auto;height:21px;margin-top:6px"> </a>
    +                    </li>
    +                </ul>
    +            </div>
    +    
    +        </div>
    +
    +        <div class="my-footer-content-column">
    +            <div class="my-footer-menu">
    +                <h2 class="my-footer-menu-name">法律声明</h2>
    +                <ul id="menu-legal" class="my-footer-menu-list">
    +                    <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-privacy-policy menu-item-170434">
    +                        <a href="/pages/privacy.html">隐私政策</a>
    +                    </li>
    +                </ul>
    +            </div>
    +            <div class="my-footer-call-to-action">
    +                <h2 class="my-footer-call-to-action-title">联系本站</h2>
    +                <ul id="menu-legal" class="my-footer-menu-list">
    +                    <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-privacy-policy menu-item-170434">
    +                        <a href="/DO_NOT_render/wechatOA/index.html">微信公众号</a>
    +                    </li>
    +    
    +                    <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-privacy-policy menu-item-170434">
    +                        <a class="my-footer-call-to-action-link" href="mailto:uuanqin@uuanqin.top" target="_self">
    +                            uuan<span style="display:none">@</span>qi<!-- >@ -->n@<span style="display:none">@</span>uu<!-- >@. -->an<span style="display:none">@</span>qin.top
    +                        </a>
    +                    </li>
    +    
    +                </ul>
    +            </div>
    +    
    +        </div>
    +        <div class="my-footer-content-column">
    +            <ul id="menu-get-started" class="my-footer-menu-list">
    +                <li class="menu-item menu-item-type-post_type menu-item-object-product">
    +                    <a href="https://notbyai.fyi/" target="_blank" rel="external nofollow noopener noreferrer"><img class="img-not-ai" src="/image/footer/Written-By-Human-Not-By-AI-Badge-white.svg" alt="Written by Human, Not by AI"></a>
    +                </li>
    +                <li class="menu-item menu-item-type-post_type menu-item-object-product">
    +                    <a href="/pages/cc.html" ><img src="/image/footer/by-nc-sa.svg" alt="署名-非商业性使用-相同方式共享 4.0 国际"></a>
    +                </li>
    +    
    +                <li class="menu-item menu-item-type-post_type menu-item-object-product">
    +                    ©2022-2025 By wuanqin
    +                </li>
    +            </ul>
    +        </div>
    +    
    +        <div class="my-footer-social-links"> <svg class="my-footer-social-amoeba-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 236 54">
    +            <path class="my-footer-social-amoeba-path" d="M223.06,43.32c-.77-7.2,1.87-28.47-20-32.53C187.78,8,180.41,18,178.32,20.7s-5.63,10.1-4.07,16.7-.13,15.23-4.06,15.91-8.75-2.9-6.89-7S167.41,36,167.15,33a18.93,18.93,0,0,0-2.64-8.53c-3.44-5.5-8-11.19-19.12-11.19a21.64,21.64,0,0,0-18.31,9.18c-2.08,2.7-5.66,9.6-4.07,16.69s.64,14.32-6.11,13.9S108.35,46.5,112,36.54s-1.89-21.24-4-23.94S96.34,0,85.23,0,57.46,8.84,56.49,24.56s6.92,20.79,7,24.59c.07,2.75-6.43,4.16-12.92,2.38s-4-10.75-3.46-12.38c1.85-6.6-2-14-4.08-16.69a21.62,21.62,0,0,0-18.3-9.18C13.62,13.28,9.06,19,5.62,24.47A18.81,18.81,0,0,0,3,33a21.85,21.85,0,0,0,1.58,9.08,16.58,16.58,0,0,1,1.06,5A6.75,6.75,0,0,1,0,54H236C235.47,54,223.83,50.52,223.06,43.32Z"></path>
    +        </svg>
    +            <a class="my-footer-social-link github" href="https://github.com/uuanqin" target="_blank" rel="external nofollow noopener noreferrer">
    +                <span class="hidden-link-text">Github</span>
    +                <svg class="my-footer-social-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
    +                    <path class="my-footer-social-icon-path" d="M 16 4 C 9.371094 4 4 9.371094 4 16 C 4 21.300781 7.4375 25.800781 12.207031 27.386719 C 12.808594 27.496094 13.027344 27.128906 13.027344 26.808594 C 13.027344 26.523438 13.015625 25.769531 13.011719 24.769531 C 9.671875 25.492188 8.96875 23.160156 8.96875 23.160156 C 8.421875 21.773438 7.636719 21.402344 7.636719 21.402344 C 6.546875 20.660156 7.71875 20.675781 7.71875 20.675781 C 8.921875 20.761719 9.554688 21.910156 9.554688 21.910156 C 10.625 23.746094 12.363281 23.214844 13.046875 22.910156 C 13.15625 22.132813 13.46875 21.605469 13.808594 21.304688 C 11.144531 21.003906 8.34375 19.972656 8.34375 15.375 C 8.34375 14.0625 8.8125 12.992188 9.578125 12.152344 C 9.457031 11.851563 9.042969 10.628906 9.695313 8.976563 C 9.695313 8.976563 10.703125 8.65625 12.996094 10.207031 C 13.953125 9.941406 14.980469 9.808594 16 9.804688 C 17.019531 9.808594 18.046875 9.941406 19.003906 10.207031 C 21.296875 8.65625 22.300781 8.976563 22.300781 8.976563 C 22.957031 10.628906 22.546875 11.851563 22.421875 12.152344 C 23.191406 12.992188 23.652344 14.0625 23.652344 15.375 C 23.652344 19.984375 20.847656 20.996094 18.175781 21.296875 C 18.605469 21.664063 18.988281 22.398438 18.988281 23.515625 C 18.988281 25.121094 18.976563 26.414063 18.976563 26.808594 C 18.976563 27.128906 19.191406 27.503906 19.800781 27.386719 C 24.566406 25.796875 28 21.300781 28 16 C 28 9.371094 22.628906 4 16 4 Z "></path>
    +                </svg>
    +            </a>
    +            <a class="my-footer-social-link email" href="mailto:uuanqin@uuanqin.top" target="_blank" rel="external nofollow noopener noreferrer">
    +                <span class="hidden-link-text">Email</span>
    +                <svg class="my-footer-social-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
    +                    <!--! Font Awesome Free 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. -->
    +                    <path class="my-footer-social-icon-path" d="M48 64C21.5 64 0 85.5 0 112c0 15.1 7.1 29.3 19.2 38.4L236.8 313.6c11.4 8.5 27 8.5 38.4 0L492.8 150.4c12.1-9.1 19.2-23.3 19.2-38.4c0-26.5-21.5-48-48-48H48zM0 176V384c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V176L294.4 339.2c-22.8 17.1-54 17.1-76.8 0L0 176z"/>
    +                </svg>
    +            </a>
    +            <a class="my-footer-social-link follow" href="https://app.follow.is/share/users/uuanqin" target="_blank" rel="external nofollow noopener noreferrer">
    +                <span class="hidden-link-text">Follow</span>
    +                <svg class="my-footer-social-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">
    +                  <!--!Font Awesome Free 6.7.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.-->
    +                  <path class="my-footer-social-icon-path" d="M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM96 136c0-13.3 10.7-24 24-24c137 0 248 111 248 248c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-110.5-89.5-200-200-200c-13.3 0-24-10.7-24-24zm0 96c0-13.3 10.7-24 24-24c83.9 0 152 68.1 152 152c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-57.4-46.6-104-104-104c-13.3 0-24-10.7-24-24zm0 120a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"/>
    +                </svg>
    +            </a>
    +            <a class="my-footer-social-link rss" href="/atom.xml" target="_blank" rel="external nofollow noopener noreferrer">
    +                <span class="hidden-link-text">RSS</span>
    +                <svg class="my-footer-social-icon-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">
    +                    <!--! Font Awesome Free 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. -->
    +                    <path class="my-footer-social-icon-path" d="M0 64C0 46.3 14.3 32 32 32c229.8 0 416 186.2 416 416c0 17.7-14.3 32-32 32s-32-14.3-32-32C384 253.6 226.4 96 32 96C14.3 96 0 81.7 0 64zM0 416a64 64 0 1 1 128 0A64 64 0 1 1 0 416zM32 160c159.1 0 288 128.9 288 288c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-123.7-100.3-224-224-224c-17.7 0-32-14.3-32-32s14.3-32 32-32z"/>
    +                </svg>
    +            </a>
    +    
    +        </div>
    +    </div>
    +    </div>
    +    <div class="my-footer-copyright">
    +        <div class="my-footer-copyright-wrapper">
    +            <p class="my-footer-copyright-text">
    +                <a href="https://beian.miit.gov.cn/" rel="noopener external nofollow noreferrer"><img class="icp-icon" src="/image/footer/icp.ico"><span>津ICP备2022002156号-1</span></a>
    +                &nbsp;|&nbsp;<a href="http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=12011202000621" rel="noopener external nofollow noreferrer"><img class="icp-icon" src="/image/footer/beian_logo.png"><span>津公网安备 12011202000621号</span></a>
    +                &nbsp;|&nbsp;&nbsp;
    +                <span>违法与不良信息举报邮箱&nbsp;
    +                  j<span style="display:none">@</span><!-- >@ -->b@<span style="display:none">@</span>uu<!-- >@. -->an<span style="display:none">@</span>q.in
    +                </span>
    +            </p>
    +        </div>
    +    </div>
    +

    参考

    + + + + Wuanqin的博客 + Wuanqin · blog.uuanqin.top + +

    自定义页脚(新)

    /posts/c6143ad3/
    作者
    biss
    发布于
    许可协议
    CC BY-NC-SA 4.0
    网站
    订阅 打赏

    Comments

    自定义页脚(新)

    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/posts/ce1ec3fe/index.html b/posts/ce1ec3fe/index.html new file mode 100644 index 0000000..0825e91 --- /dev/null +++ b/posts/ce1ec3fe/index.html @@ -0,0 +1,979 @@ + 使用GitHub推送Hexo到服务器 | Bi's Blog

    使用GitHub推送Hexo到服务器

    发布于 2025/08/19 更新于 2026/07/17 建站手札 总字数:716 阅读时长:2 分钟
    +文章导读 + 摘要由 Qwen 生成

    这篇文章介绍了如何使用GitHub推送Hexo到服务器,包括建立GitHub仓库、上传文件、创建Action以及配置环境变量等步骤。首先,文章提供了在香港直连GitHub的方法,并指导如何在本地安装git、配置用户名和邮箱、创建SSH Key并在GitHub上上传公钥。接着,文章详细说明了如何在自己的hexo根目录下初始化git仓库,并使用PowerShell将文件推送到新建的私有仓库。此外,文章还创建了一个Action,用于自动化部署过程,包括检查分支、缓存项目、安装Node和Hexo、安装依赖、清理文件树、生成静态文件并压缩、部署到服务器等环节。最后,文章列出了需要配置的环境变量,如服务器IP、用户名、密钥密码、私钥和SSH登录端口,并强调了测试的重要性,以确保整个部署流程无报错。

    ARTICLE SERIES

    博客定制手记

    第 10 / 14 篇
    1. 01 配置说说页面
    2. 02 在侧边栏中添加欢迎信息
    3. 03 自定义右键菜单
    4. 04 利用插件自定义页脚菜单
    5. 05 博客添加AI总结
    6. 06 利用 SiteMap 随机访问站内页面
    7. 07 自定义导航栏
    8. 08 自定义分类条
    9. 09 自定义页脚(新)
    10. 10 使用GitHub推送Hexo到服务器
    11. 11 在侧边栏添加日历和倒计时
    12. 12 自定义字体
    13. 13 添加typesense搜索
    14. 14 添加网站左上角菜单

    注意:本文为早期 Hexo / Butterfly 魔改记录,本站现已迁移到 Astro,相关代码、路径或插件可能已经失效,仅作历史参考。

    +

    1panel没有宝塔的webhook功能,之前一直使用在服务器上建立裸仓库,直接推送到服务器的方法。现在找到一种新的方法。

    +

    建立GitHub仓库

    +

    因为服务器部署在香港,可以直连GitHub,国内可以使用gitee或者GitHub镜像加速。

    +
      +
    1. +

      在本地安装git

      +
    2. +
    3. +

      打开git bash配置用户名和邮箱

      +
      git config --global user.name "yourname"
      +git config --global user.email "youremail"
      +

      可以使用 git config —list查看当前所有的配置

      +
    4. +
    5. +

      在github上创建自己的账号(在自己的电脑和服务器上)

      +
    6. +
    7. +

      创建SSH Key +a:打开Git Bash,输入pwd查看当前路径 +b.输入ssh-keygen -t rsa –C “youremail@example.com” +(输入完毕后程序同时要求输入一个密语字符串(passphrase),空表示没有密语。接着会让输入2次口令(password),空表示没有口令。3次回车即可完成当前步骤)

      +
      + 924058.webp +
      +
    8. +
    9. +

      在GitHub上传自己的公钥

      +
      946620.webp
      +
    10. +
    11. +

      新建一个私有仓库

      +
    12. +
    +

    上传文件到仓库

    +

    在自己hexo根目录下使用powershell,输入git init,然后git push到之前自己新建的仓库。

    +

    创建Action

    +

    创建Action

    +
    name: 自动部署
    +
    +on:
    +  push:
    +    branches:
    +      - main 
    +
    +  release:
    +    types:
    +      - published
    +
    +  workflow_dispatch:
    +
    +env:
    +  TZ: Asia/Shanghai
    +
    +jobs:
    +  deploy:
    +    runs-on: ubuntu-latest
    +    steps:
    +    - name: 检查分支
    +      uses: actions/checkout@v3
    +      with:
    +        ref: main
    +
    +    - name: 缓存项目 npm 包
    +      id: cache-node-modules
    +      uses: actions/cache@v3
    +      with:
    +        path: node_modules
    +        key: ${{ runner.os }}-nodeModules-${{ hashFiles('package-lock.json') }}-${{ hashFiles('package.json') }}
    +        restore-keys: |
    +          ${{ runner.os }}-nodeModules-
    +
    +    - name: 安装 Node
    +      uses: actions/setup-node@v3
    +      with:
    +        node-version: "20.x"
    +
    +    - name: 安装 Hexo
    +      run: |
    +        npm install hexo-cli --global
    +
    +    - name: 安装依赖
    +      if: steps.cache-node-modules.outputs.cache-hit != 'true'
    +      run: |
    +        npm install
    +
    +    - name: 清理文件树
    +      run: |
    +        npm run clean
    +
    +    - name: 生成静态文件并压缩
    +      run: |
    +        npm run build
    +
    +    - name: 部署
    +      run: |
    +        cd ./public
    +        git init
    +        git config user.name "${{ github.actor }}"
    +        git config user.email "${{ github.actor }}@users.noreply.github.com"
    +        git add .
    +        git commit -m "${{ github.event.head_commit.message }}··[$(date +"%Z %Y-%m-%d %A %H:%M:%S")]"
    +        git push --force --quiet "https://${{ github.actor }}:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}.git" master:page
    +    - name: 服务器执行拉取命令
    +        uses: appleboy/ssh-action@v1
    +        with:
    +            host: ${{ secrets.SERVER_IP }}
    +            username: ${{ secrets.USERNAME }}
    +            key: ${{ secrets.KEY }}
    +            passphrase: ${{ secrets.PASSPHRASE }}
    +            port: ${{ secrets.PORT }}
    +            script: |
    +            cd /opt/1panel/apps/openresty/openresty/www/sites/blog.liushen.fun/index/
    +            git config --global --add safe.directory "$(pwd)"
    +            git fetch --all --depth=1
    +            git reset --hard origin/main
    +            git pull --depth=1
    +            echo "✅ 已拉取 page 分支最新内容"
    +

    环境变量

    +

    此次添加变量较多,有:SERVER_IPUSERNAMEPASSPHRASEKEYPORT五个变量,如下:

    +

    SERVER_IP:服务器IP +USERNAME:SSH链接用户名,一般为root +PASSPHRASE:密钥密码,用来提升强度用 +KEY:密钥(私钥) +PORT:SSH登录端口,一般为22

    +

    测试

    +

    运行一下这个Action无报错即可。

    REVISION HISTORY

    文章修订记录

    1 次
    1. 增加新版入口

      标记本文为早期 Hexo 部署记录,并补充当前 Astro 版本的网站迁移日志入口。

    使用GitHub推送Hexo到服务器

    /posts/ce1ec3fe/
    作者
    biss
    发布于
    许可协议
    CC BY-NC-SA 4.0
    网站
    订阅 打赏

    Comments

    使用GitHub推送Hexo到服务器

    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/posts/d2c8521/index.html b/posts/d2c8521/index.html new file mode 100644 index 0000000..767bad4 --- /dev/null +++ b/posts/d2c8521/index.html @@ -0,0 +1,908 @@ + 将博客仓库转移到gitea | Bi's Blog

    将博客仓库转移到gitea

    发布于 2026/02/07 技术 总字数:95 阅读时长:1 分钟
    +文章导读 + 摘要由 Qwen 生成

    这篇文章详细介绍了如何将博客仓库从现有的平台转移到Gitea。首先,确保已经成功安装了Gitea。接着,文章重点讲解了action文件的修改,包括检查分支、缓存项目、安装Node和Hexo、安装依赖、清理文件树、生成静态文件并压缩、部署到本地仓库以及Webhook的配置。这些步骤确保了博客能够顺利迁移到Gitea,并且保持了原有的功能和结构。需要注意的是,文章中的action文件包含了一些具体的指令和变量,如ref: master、cache-node-modules等,这些在实际操作时需要替换为具体的值。此外,文章还提到了Webhook的配置,这是一个可选但推荐的自定义事件触发器,用于在特定事件发生时自动触发部署流程。

    在上一篇文章中已经完成了gitea的安装 +那么博客源码迁移倒是没问题,直接git remote add origin就行,但是action文件就有些变更。 +这是我修改的action文件:

    +
    name: 自动部署
    +on:
    +  push:
    +    branches:
    +      - master
    +  release:
    +    types:
    +      - published
    +  workflow_dispatch:
    +env:
    +  TZ: Asia/Shanghai
    +jobs:
    +  deploy:
    +    runs-on: ubuntu-latest
    +    steps:
    +    - name: 检查分支
    +      uses: actions/checkout@v4
    +      with:
    +        ref: master
    +    - name: 缓存项目 npm 包
    +      id: cache-node-modules
    +      uses: actions/cache@v3
    +      with:
    +        path: node_modules
    +        key: ${{ runner.os }}-nodeModules-${{ hashFiles('package-lock.json') }}-${{ hashFiles('package.json') }}
    +        restore-keys: |
    +          ${{ runner.os }}-nodeModules-
    +    - name: 安装 Node
    +      uses: actions/setup-node@v4
    +      with:
    +        node-version: "22.x"
    +    - name: 安装 Hexo
    +      run: |
    +        npm install hexo-cli --global
    +    - name: 安装依赖
    +      if: steps.cache-node-modules.outputs.cache-hit != 'true'
    +      run: |
    +        npm install
    +    - name: 清理文件树
    +      run: |
    +        npm run clean
    +    - name: 生成静态文件并压缩
    +      run: |
    +        npm run build
    +    - name: 部署
    +      run: |
    +        cd ./public
    +        git init
    +        git config user.name "${{ gitea.actor }}"
    +        git config user.email "${{ gitea.actor }}@noreply.gitea.io"
    +        git add .
    +        git commit -m "${{ gitea.event.head_commit.message }}··[$(date +"%Z %Y-%m-%d %A %H:%M:%S")]"
    +        git push --force --quiet "https://${{ gitea.actor }}:${{ secrets.DEPLOY_TOKEN }}@git.biss.click/biss/blog.git" master:page
    +    - name: Deploy to Server
    +      run: |
    +        curl -k -X POST 
    +

    仅供参考吧,最后面是webhook,可以自己改改。

    将博客仓库转移到gitea

    /posts/d2c8521/
    作者
    biss
    发布于
    许可协议
    CC BY-NC-SA 4.0
    gitea
    订阅 打赏

    Comments

    将博客仓库转移到gitea

    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/posts/da17d00/index.html b/posts/da17d00/index.html new file mode 100644 index 0000000..979c375 --- /dev/null +++ b/posts/da17d00/index.html @@ -0,0 +1,1177 @@ + 在侧边栏中添加欢迎信息 | Bi's Blog

    在侧边栏中添加欢迎信息

    发布于 2025/08/11 建站手札 总字数:580 阅读时长:2 分钟
    +文章导读 + 摘要由 Qwen 生成

    这篇文章介绍了如何在侧边栏中添加欢迎信息,包括申请腾讯地图API key、添加js脚本以及根据用户的地理位置显示个性化欢迎语。首先,文章指导读者如何申请腾讯地图API key,并提醒注意填写信任域名时不要包含'https://'。接着,文章说明了在主题的js目录下添加txmap.js脚本的过程,并提到了一个更完善的js脚本。最后,文章详细描述了如何使用获取到的地理位置信息,通过switch语句根据不同的国家、省份和城市显示相应的欢迎语。

    ARTICLE SERIES

    博客定制手记

    第 2 / 14 篇
    1. 01 配置说说页面
    2. 02 在侧边栏中添加欢迎信息
    3. 03 自定义右键菜单
    4. 04 利用插件自定义页脚菜单
    5. 05 博客添加AI总结
    6. 06 利用 SiteMap 随机访问站内页面
    7. 07 自定义导航栏
    8. 08 自定义分类条
    9. 09 自定义页脚(新)
    10. 10 使用GitHub推送Hexo到服务器
    11. 11 在侧边栏添加日历和倒计时
    12. 12 自定义字体
    13. 13 添加typesense搜索
    14. 14 添加网站左上角菜单

    注意:本文为早期 Hexo / Butterfly 魔改记录,本站现已迁移到 Astro,相关代码、路径或插件可能已经失效,仅作历史参考。

    +

    效果展示

    +
    效果展示
    +

    开始折腾

    +

    申请腾讯地图的api key

    + + + + 腾讯地图 + Tencent · lbs.qq.com + + +自行查看文档,要注意在填写信任域名时不填 https:// +

    添加js

    +

    在主题 /source/js/目录下添加 txmap.js

    +

    有一个更完善的js脚本

    + + + + txmap.js + github · github.com + + +
    //get请求
    +$.ajax({
    +    type: 'get',
    +    url: 'https://apis.map.qq.com/ws/location/v1/ip',
    +    data: {
    +        key: '你的key',
    +        output: 'jsonp',
    +        callback: '?',
    +    },
    +    dataType: 'jsonp',
    +    success: function (res) {
    +        window.ipLocation = res;
    +    }
    +})
    +function getDistance(e1, n1, e2, n2) {
    +    const R = 6371
    +    const { sin, cos, asin, PI, hypot } = Math
    +    let getPoint = (e, n) => {
    +        e *= PI / 180
    +        n *= PI / 180
    +        return { x: cos(n) * cos(e), y: cos(n) * sin(e), z: sin(n) }
    +    }
    +
    +    let a = getPoint(e1, n1)
    +    let b = getPoint(e2, n2)
    +    let c = hypot(a.x - b.x, a.y - b.y, a.z - b.z)
    +    let r = asin(c / 2) * 2 * R
    +    return Math.round(r);
    +}
    +
    +function showWelcome() {
    +
    +    let dist = getDistance(112.92358, 35.79807, ipLocation.result.location.lng, ipLocation.result.location.lat); //这里记得换成自己的经纬度
    +    let pos = ipLocation.result.ad_info.nation;
    +    let ip;
    +    let posdesc;
    +    //根据国家、省份、城市信息自定义欢迎语
    +    switch (ipLocation.result.ad_info.nation) {
    +        case "日本":
    +            posdesc = "よろしく,一起去看樱花吗";
    +            break;
    +        case "美国":
    +            posdesc = "Let us live in peace!";
    +            break;
    +        case "英国":
    +            posdesc = "想同你一起夜乘伦敦眼";
    +            break;
    +        case "俄罗斯":
    +            posdesc = "干了这瓶伏特加!";
    +            break;
    +        case "法国":
    +            posdesc = "C'est La Vie";
    +            break;
    +        case "德国":
    +            posdesc = "Die Zeit verging im Fluge.";
    +            break;
    +        case "澳大利亚":
    +            posdesc = "一起去大堡礁吧!";
    +            break;
    +        case "加拿大":
    +            posdesc = "拾起一片枫叶赠予你";
    +            break;
    +        case "中国":
    +            pos = ipLocation.result.ad_info.province + " " + ipLocation.result.ad_info.city + " " + ipLocation.result.ad_info.district;
    +            ip = ipLocation.result.ip;
    +            switch (ipLocation.result.ad_info.province) {
    +                case "北京市":
    +                    posdesc = "北——京——欢迎你~~~";
    +                    break;
    +                case "天津市":
    +                    posdesc = "讲段相声吧";
    +                    break;
    +                case "河北省":
    +                    posdesc = "山势巍巍成壁垒,天下雄关铁马金戈由此向,无限江山";
    +                    break;
    +                case "山西省":
    +                    switch (ipLocation.result.ad_info.city) {
    +                        case "太原市":
    +                            posdesc = "秋叶蓝不城";
    +                            break;
    +                        case "晋城市":
    +                            posdesc = "一方水土养一方人,晋城话说给晋城人...";
    +                            break;
    +                        default:
    +                            posdesc = "展开坐具长三尺,已占山河五百余";
    +                            break;
    +                    }
    +                    break;
    +                case "内蒙古自治区":
    +                    posdesc = "天苍苍,野茫茫,风吹草低见牛羊";
    +                    break;
    +                case "辽宁省":
    +                    posdesc = "我想吃烤鸡架!";
    +                    break;
    +                case "吉林省":
    +                    posdesc = "状元阁就是东北烧烤之王";
    +                    break;
    +                case "黑龙江省":
    +                    posdesc = "很喜欢哈尔滨大剧院";
    +                    break;
    +                case "上海市":
    +                    posdesc = "众所周知,中国只有两个城市";
    +                    break;
    +                case "江苏省":
    +                    switch (ipLocation.result.ad_info.city) {
    +                        case "南京市":
    +                            posdesc = "这是我挺想去的城市啦";
    +                            break;
    +                        case "苏州市":
    +                            posdesc = "上有天堂,下有苏杭";
    +                            break;
    +                        default:
    +                            posdesc = "散装是必须要散装的";
    +                            break;
    +                    }
    +                    break;
    +                case "浙江省":
    +                    posdesc = "东风渐绿西湖柳,雁已还人未南归";
    +                    break;
    +                case "河南省":
    +                    switch (ipLocation.result.ad_info.city) {
    +                        case "郑州市":
    +                            posdesc = "豫州之域,天地之中";
    +                            break;
    +                        case "南阳市":
    +                            posdesc = "臣本布衣,躬耕于南阳此南阳非彼南阳!";
    +                            break;
    +                        case "驻马店市":
    +                            posdesc = "峰峰有奇石,石石挟仙气嵖岈山的花很美哦!";
    +                            break;
    +                        case "开封市":
    +                            posdesc = "刚正不阿包青天";
    +                            break;
    +                        case "洛阳市":
    +                            posdesc = "洛阳牡丹甲天下";
    +                            break;
    +                        default:
    +                            posdesc = "可否带我品尝河南烩面啦?";
    +                            break;
    +                    }
    +                    break;
    +                case "安徽省":
    +                    posdesc = "蚌埠住了,芜湖起飞";
    +                    break;
    +                case "福建省":
    +                    posdesc = "井邑白云间,岩城远带山";
    +                    break;
    +                case "江西省":
    +                    posdesc = "落霞与孤鹜齐飞,秋水共长天一色";
    +                    break;
    +                case "山东省":
    +                    posdesc = "遥望齐州九点烟,一泓海水杯中泻";
    +                    break;
    +                case "湖北省":
    +                    switch (ipLocation.result.ad_info.city) {
    +                        case "黄冈市":
    +                            posdesc = "红安将军县!辈出将才!";
    +                            break;
    +                        default:
    +                            posdesc = "来碗热干面~";
    +                            break;
    +                    }
    +                    break;
    +                case "湖南省":
    +                    posdesc = "74751,长沙斯塔克";
    +                    break;
    +                case "广东省":
    +                    switch (ipLocation.result.ad_info.city) {
    +                        case "广州市":
    +                            posdesc = "看小蛮腰,喝早茶了嘛~";
    +                            break;
    +                        case "深圳市":
    +                            posdesc = "今天你逛商场了嘛~";
    +                            break;
    +                        case "阳江市":
    +                            posdesc = "阳春合水!博主家乡~ 欢迎来玩~";
    +                            break;
    +                        default:
    +                            posdesc = "来两斤福建人~";
    +                            break;
    +                    }
    +                    break;
    +                case "广西壮族自治区":
    +                    posdesc = "桂林山水甲天下";
    +                    break;
    +                case "海南省":
    +                    posdesc = "朝观日出逐白浪,夕看云起收霞光";
    +                    break;
    +                case "四川省":
    +                    posdesc = "康康川妹子";
    +                    break;
    +                case "贵州省":
    +                    posdesc = "茅台,学生,再塞200";
    +                    break;
    +                case "云南省":
    +                    posdesc = "玉龙飞舞云缠绕,万仞冰川直耸天";
    +                    break;
    +                case "西藏自治区":
    +                    posdesc = "躺在茫茫草原上,仰望蓝天";
    +                    break;
    +                case "陕西省":
    +                    posdesc = "来份臊子面加馍";
    +                    break;
    +                case "甘肃省":
    +                    posdesc = "羌笛何须怨杨柳,春风不度玉门关";
    +                    break;
    +                case "青海省":
    +                    posdesc = "牛肉干和老酸奶都好好吃";
    +                    break;
    +                case "宁夏回族自治区":
    +                    posdesc = "大漠孤烟直,长河落日圆";
    +                    break;
    +                case "新疆维吾尔自治区":
    +                    posdesc = "驼铃古道丝绸路,胡马犹闻唐汉风";
    +                    break;
    +                case "台湾省":
    +                    posdesc = "我在这头,大陆在那头";
    +                    break;
    +                case "香港特别行政区":
    +                    posdesc = "永定贼有残留地鬼嚎,迎击光非岁玉";
    +                    break;
    +                case "澳门特别行政区":
    +                    posdesc = "性感荷官,在线发牌";
    +                    break;
    +                default:
    +                    posdesc = "带我去你的城市逛逛吧!";
    +                    break;
    +            }
    +            break;
    +        default:
    +            posdesc = "带我去你的国家逛逛吧";
    +            break;
    +    }
    +
    +    //根据本地时间切换欢迎语
    +    let timeChange;
    +    let date = new Date();
    +    if (date.getHours() >= 5 && date.getHours() < 11) timeChange = "<span>🌤️ 早上好,一日之计在于晨</span>";
    +    else if (date.getHours() >= 11 && date.getHours() < 13) timeChange = "<span>☀️ 中午好,记得午休喔~</span>";
    +    else if (date.getHours() >= 13 && date.getHours() < 17) timeChange = "<span>🕞 下午好,饮茶先啦!</span>";
    +    else if (date.getHours() >= 17 && date.getHours() < 19) timeChange = "<span>🚶‍♂️ 即将下班,记得按时吃饭~</span>";
    +    else if (date.getHours() >= 19 && date.getHours() < 24) timeChange = "<span>🌙 晚上好,夜生活嗨起来!</span>";
    +    else timeChange = "夜深了,早点休息,少熬夜";
    +
    +// 新增ipv6显示为指定内容
    +    if (ip.includes(":")) {
    +        ip = "<br>好复杂,咱看不懂~(ipv6)";
    +    }
    +    try {
    +        //自定义文本和需要放的位置
    +        document.getElementById("welcome-info").innerHTML =
    +            `欢迎来自 <b><span style="color: var(--kouseki-ip-color);font-size: var(--kouseki-gl-size)">${pos}</span></b> 的小友💖<br>${posdesc}🍂<br>当前位置距博主约 <b><span style="color: var(--kouseki-ip-color)">${dist}</span></b> 公里!<br>您的IP地址为:<b><span class="ip-mask">${ip}</span></b><br>${timeChange} <br>`;
    +    } catch (err) {
    +         console.log("Pjax无法获取元素")
    +    }
    +}
    +window.onload = showWelcome;
    +// 如果使用了pjax在加上下面这行代码
    +document.addEventListener('pjax:complete', showWelcome);
    +

    添加css文件

    +

    在主题文件夹/source/css/在这里我添加了模糊IP地址。

    +
    #welcome-info {
    +    overflow: hidden;
    +    border-radius: 14px;
    +    --kouseki-welcome-color: #49B1F5;
    +    --kouseki-ip-color: #49B1F5;
    +    --kouseki-gl-size: 16px!important;
    +  }
    +/* 给 IP 地址的 span 再包一层,便于选择器定位 */
    +/* JS 原文已经生成 <b><span>IP</span></b>,这里我们给这个 span 加类名 ip-mask */
    +/* 如果你不方便改 HTML,可直接用属性选择器:#welcome-info b span:nth-child(1) */
    +#welcome-info b span.ip-mask {
    +    display: inline-block;
    +    filter: blur(6px);
    +    transition: filter .3s ease;
    +    cursor: pointer;
    +    user-select: none;   /* 防止复制到模糊文本 */
    +}
    +
    +/* 鼠标悬停或点击时(:active)立即清晰 */
    +#welcome-info b span.ip-mask:hover,
    +#welcome-info b span.ip-mask:active {
    +    filter: blur(0);
    +}
    +
    +/* 如果想做成「必须点一下才永久清晰」,把 :hover 去掉即可 */
    +

    引用

    +

    在主题配置文件中添加

    +
    inject: 
    +  bottom: 
    ++    - <script src="https://cdn.staticfile.org/jquery/3.6.3/jquery.min.js"></script> # jQuery
    ++    - <script async data-pjax src="/js/txmap.js"></script> # 腾讯位置API
    +

    在需要展示文本的容器上添加相应id(welcome-info)就可以了,例如我想添加在网站公告栏信息的下方,于是就在 [BlogRoot]\themes\butterfly\layout\includes\widget\card_announcement.pug的最后一行加上这个,缩进与上一行相同即可

    +
        .announcement_content!= theme.aside.card_announcement.content
    +    //- 添加欢迎访客的信息
    ++    #welcome-info
    +

    参考内容

    + + + + Ganzhe的博文 + Ganzhe · ganzhe2028.github.io + +

    在侧边栏中添加欢迎信息

    /posts/da17d00/
    作者
    biss
    发布于
    许可协议
    CC BY-NC-SA 4.0
    网站
    订阅 打赏

    Comments

    在侧边栏中添加欢迎信息

    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/posts/e8f95ead/index.html b/posts/e8f95ead/index.html new file mode 100644 index 0000000..9aa7e0a --- /dev/null +++ b/posts/e8f95ead/index.html @@ -0,0 +1,1001 @@ + opencv应用-基础操作 | Bi's Blog

    opencv应用-基础操作

    +文章导读 + 摘要由 Qwen 生成

    这篇文章介绍了使用C++和OpenCV库进行图像处理的基础操作,包括图片的读取与展示、像素的读取与修改、图像的基本变换(缩放、旋转、平移、翻转)、以及图像通道的分离与合并。文章详细讲解了每个操作的代码实现,并展示了如何通过OpenCV库提供的函数来完成这些任务。这对于初学者来说是非常有用的,因为它帮助他们理解如何使用OpenCV进行图像处理。

    ARTICLE SERIES

    OpenCV 学习笔记

    第 2 / 3 篇
    1. 01 配置opencv
    2. 02 opencv应用-基础操作
    3. 03 opencv应用-算术运算

    这里用C++进行编程,发现菜鸟教程只有python的版本,那就记录一下。

    +

    图片读取与展示

    +
    // 读取图像
    +#include<opencv2/opencv.hpp>
    +#include<iostream>
    +
    +using namespace std;
    +using namespace cv;
    +
    +int main(){
    +    Mat src = imread("../img/1.png");
    +    imshow("input",src);
    +    waitKey(0);
    +    destroyAllWindows();
    +    return 0;
    +}
    +

    图像基本操作

    +

    读取像素

    +

    需要用到三维向量数组Vect3b,这里需要注意的是,Opencv是BGR而不是我们常用的RGB。

    +
    // 读取像素
    +#include<opencv2/opencv.hpp>
    +#include<iostream>
    +
    +using namespace std;
    +using namespace cv;
    +
    +int main()
    +{
    +    string image_path = "../img/1.png";
    +    Mat image = imread(image_path);
    +
    +    if (image.empty()) {
    +        cout << "错误:无法加载图像,请检查路径是否正确。" << endl;
    +        return -1;
    +    }
    +
    +    Vec3b pixel_value = image.at<Vec3b>(100, 150);
    +
    +    cout << "B: " << (int)pixel_value[0] << " "
    +         << "G: " << (int)pixel_value[1] << " "
    +         << "R: " << (int)pixel_value[2] << endl;
    +
    +}
    +

    修改像素

    +
    // 修改像素
    +#include<opencv2/opencv.hpp>
    +#include<iostream>
    +
    +using namespace std;
    +using namespace cv;
    +
    +int main()
    +{
    +    string image_path = "../img/1.png";
    +    Mat image = imread(image_path);
    +    Mat result = image.clone();
    +
    +    if (image.empty()) {
    +        cout << "错误:无法加载图像,请检查路径是否正确。" << endl;
    +        return -1;
    +    }
    +
    +    Rect roi_rect(0, 0, 100, 100);
    +    Mat roi = result(roi_rect);
    +    roi.setTo(Scalar(0, 255, 0));
    +    imshow("Original (Unchanged)", image);
    +    imshow("Modified Copy", result);
    +    waitKey(0);
    +
    +    return 0;
    +
    +}
    +
    #include <opencv2/opencv.hpp>
    +#include <iostream>
    +
    +int main() {
    +    // 读取图像
    +    cv::Mat img = cv::imread("../img/1.png");
    +    if (img.empty()) {
    +        std::cout << "无法读取图像" << std::endl;
    +        return -1;
    +    }
    +
    +    // 1. 缩放
    +    cv::Mat resized_img;
    +    cv::resize(img, resized_img, cv::Size(200, 200));
    +    cv::imshow("resized_img", resized_img);
    +
    +    // 2. 旋转
    +    cv::Mat rotated_img, M_rot;
    +    cv::Point2f center(img.cols / 2.0, img.rows / 2.0);
    +    M_rot = cv::getRotationMatrix2D(center, 45, 1.0);
    +    cv::warpAffine(img, rotated_img, M_rot, img.size());
    +    cv::imshow("rotated_img", rotated_img);
    +
    +    // 3. 平移
    +    cv::Mat translated_img;
    +    cv::Mat M_trans = (cv::Mat_<float>(2, 3) << 1, 0, 100, 0, 1, 50);
    +    cv::warpAffine(img, translated_img, M_trans, img.size());
    +    cv::imshow("translated_img", translated_img);
    +
    +    // 4. 翻转
    +    cv::Mat flipped_img;
    +    cv::flip(img, flipped_img, 1);
    +    cv::imshow("flipped", flipped_img);
    +
    +    // 显示结果
    +    cv::imshow("Original", img);
    +    cv::waitKey(0);
    +
    +    return 0;
    +}
    +
    // 图像通道分离与合并
    +#include<opencv2/opencv.hpp>
    +#include<iostream>
    +
    +using namespace std;
    +using namespace cv;
    +
    +int main()
    +{
    +    string image_path = "../img/1.png";
    +    Mat image = imread(image_path);
    +    Mat result = image.clone();
    +    // 定义向量数组接收通道
    +    vector<Mat> channels;
    +    // 拆分
    +    split(result,channels);
    +
    +    Mat b = channels[0];
    +    Mat g = channels[1];
    +    Mat r = channels[2];
    +
    +    imshow("Blue Channel (Grayscale)", channels[0]);
    +    imshow("Green Channel (Grayscale)", channels[1]);
    +    imshow("Red Channel (Grayscale)", channels[2]);
    +
    +    // merge
    +    Mat merged_img;
    +    vector<cv::Mat> channels_to_merge;
    +    channels_to_merge.push_back(b);
    +    channels_to_merge.push_back(g);
    +    channels_to_merge.push_back(r);
    +
    +    merge(channels_to_merge, merged_img);
    +    imshow("merged",merged_img);
    +
    +    waitKey(0);
    +
    +    return(0);
    +}

    opencv应用-基础操作

    /posts/e8f95ead/
    作者
    biss
    发布于
    许可协议
    CC BY-NC-SA 4.0
    opencv
    订阅 打赏

    Comments

    opencv应用-基础操作

    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/posts/e9a8e898/index.html b/posts/e9a8e898/index.html new file mode 100644 index 0000000..359b866 --- /dev/null +++ b/posts/e9a8e898/index.html @@ -0,0 +1,987 @@ + C# 基本语法 | Bi's Blog

    C# 基本语法

    +文章导读 + 摘要由 Qwen 生成

    这篇文章通过Rectangle示例讲解C#面向对象基础,展示类与对象如何封装数据及行为,并输出面积15.75。随后介绍using引入命名空间、class声明类、注释、成员变量与函数、实例化流程及标识符规则。重点解析C#9顶级语句,无需Main方法即可在文件顶层直接写代码,编译器自动生成入口,适合脚本化开发,示例演示变量、方法、LINQ与异常处理,简化小型项目结构。

    ARTICLE SERIES

    C#

    第 2 / 2 篇
    1. 01 C# 入门
    2. 02 C# 基本语法

    简介

    +

    C# 是一种面向对象的编程语言。在面向对象的程序设计方法中,程序由各种相互交互的对象组成。相同种类的对象通常具有相同的类型,或者说,是在相同的 class 中。

    +

    例如,以 Rectangle(矩形)对象为例。它具有 length 和 width 属性。根据设计,它可能需要接受这些属性值、计算面积和显示细节。

    +

    实例

    +
    using System;
    +namespace RectangleApplication
    +{
    +    class Rectangle
    +    {
    +        // 成员变量
    +        double length;
    +        double width;
    +        public void Acceptdetails()
    +        {
    +            length = 4.5;    
    +            width = 3.5;
    +        }
    +        public double GetArea()
    +        {
    +            return length * width;
    +        }
    +        public void Display()
    +        {
    +            Console.WriteLine("Length: {0}", length);
    +            Console.WriteLine("Width: {0}", width);
    +            Console.WriteLine("Area: {0}", GetArea());
    +        }
    +    }
    +   
    +    class ExecuteRectangle
    +    {
    +        static void Main(string[] args)
    +        {
    +            Rectangle r = new Rectangle();
    +            r.Acceptdetails();
    +            r.Display();
    +            Console.ReadLine();
    +        }
    +    }
    +}
    +

    尝试一下 » +当上面的代码被编译和执行时,它会产生下列结果:

    +
    Length: 4.5
    +Width: 3.5
    +Area: 15.75
    +

    using 关键字

    +

    在任何 C# 程序中的第一条语句都是:

    +

    using System; +using 关键字用于在程序中包含命名空间。一个程序可以包含多个 using 语句。

    +

    class 关键字

    +

    class 关键字用于声明一个类。

    +

    C# 中的注释

    +

    注释是用于解释代码。编译器会忽略注释的条目。在 C# 程序中,多行注释以 /* 开始,并以字符 */ 终止,如下所示:

    +
    /* 这个程序演示
    +C# 的注释
    +使用 */
    +

    单行注释是用 // 符号表示。例如:

    +
    // 这一行是注释 
    +

    成员变量

    +

    变量是类的属性或数据成员,用于存储数据。在上面的程序中,Rectangle 类有两个成员变量,名为 length 和 width。

    +

    成员函数 +函数是一系列执行指定任务的语句。类的成员函数是在类内声明的。我们举例的类 Rectangle 包含了三个成员函数: AcceptDetails、GetArea 和 Display。

    +

    实例化一个类 +在上面的程序中,类 ExecuteRectangle 是一个包含 Main() 方法和实例化 Rectangle 类的类。

    +

    标识符

    +

    标识符是用来识别类、变量、函数或任何其它用户定义的项目。在 C# 中,类的命名必须遵循如下基本规则:

    +
      +
    • 标识符必须以字母、下划线或 @ 开头,后面可以跟一系列的字母、数字( 0 - 9 )、下划线( _ )、@。
    • +
    • 标识符中的第一个字符不能是数字。
    • +
    • 标识符必须不包含任何嵌入的空格或符号,比如 ? - +! # % ^ & * ( ) [ ] { } . ; : ” ’ / \。
    • +
    • 标识符不能是 C# 关键字。除非它们有一个 @ 前缀。 例如,@if 是有效的标识符,但 if 不是,因为 if 是关键字。
    • +
    • 标识符必须区分大小写。大写字母和小写字母被认为是不同的字母。
    • +
    • 不能与C#的类库名称相同。
    • +
    +

    C# 关键字

    +

    关键字是 C# 编译器预定义的保留字。这些关键字不能用作标识符,但是,如果您想使用这些关键字作为标识符,可以在关键字前面加上 @ 字符作为前缀。

    +

    在 C# 中,有些关键字在代码的上下文中有特殊的意义,如 get 和 set,这些被称为上下文关键字(contextual keywords)。

    +

    顶级语句(Top-Level Statements)

    +

    在 C# 9.0 版本中,引入了顶级语句(Top-Level Statements)的概念,这是一种新的编程范式,允许开发者在文件的顶层直接编写语句,而不需要将它们封装在方法或类中。

    +

    特点:

    +

    无需类或方法:顶级语句允许你直接在文件的顶层编写代码,无需定义类或方法。

    +

    文件作为入口点:包含顶级语句的文件被视为程序的入口点,类似于 C# 之前的 Main 方法。

    +

    自动 Main 方法:编译器会自动生成一个 Main 方法,并将顶级语句作为 Main 方法的主体。

    +

    支持局部函数:尽管不需要定义类,但顶级语句的文件中仍然可以定义局部函数。

    +

    更好的可读性:对于简单的脚本或工具,顶级语句提供了更好的可读性和简洁性。

    +

    适用于小型项目:顶级语句非常适合小型项目或脚本,可以快速编写和运行代码。

    +

    与现有代码兼容:顶级语句可以与现有的 C# 代码库一起使用,不会影响现有代码。

    +

    传统 C# 代码 - 在使用顶级语句之前,你必须像这样编写一个 C# 程序:

    +

    实例

    +
    using System;
    +
    +namespace MyApp
    +{
    +    class Program
    +    {
    +        static void Main(string[] args)
    +        {
    +            Console.WriteLine("Hello, World!");
    +        }
    +    }
    +}
    +

    使用顶级语句的 C# 代码 - 使用顶级语句,可以简化为:

    +

    实例

    +
    using System;
    +
    +Console.WriteLine("Hello, World!");
    +

    顶级语句支持所有常见的 C# 语法,包括声明变量、定义方法、处理异常等。

    +

    实例

    +
    using System;
    +using System.Linq;
    +
    +// 顶级语句中的变量声明
    +int number = 42;
    +string message = "The answer to life, the universe, and everything is";
    +
    +// 输出变量
    +Console.WriteLine($"{message} {number}.");
    +
    +// 定义和调用方法
    +int Add(int a, int b) => a + b;
    +Console.WriteLine($"Sum of 1 and 2 is {Add(1, 2)}.");
    +
    +// 使用 LINQ
    +var numbers = new[] { 1, 2, 3, 4, 5 };
    +var evens = numbers.Where(n => n % 2 == 0).ToArray();
    +Console.WriteLine("Even numbers: " + string.Join(", ", evens));
    +
    +// 异常处理
    +try
    +{
    +    int zero = 0;
    +    int result = number / zero;
    +}
    +catch (DivideByZeroException ex)
    +{
    +    Console.WriteLine("Error: " + ex.Message);
    +}

    C# 基本语法

    /posts/e9a8e898/
    作者
    biss
    发布于
    许可协议
    CC BY-NC-SA 4.0
    C#
    订阅 打赏

    Comments

    C# 基本语法

    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/posts/efe1e805/index.html b/posts/efe1e805/index.html new file mode 100644 index 0000000..9b37e16 --- /dev/null +++ b/posts/efe1e805/index.html @@ -0,0 +1,858 @@ + 把普通的一天过成自己的节奏 | Bi's Blog

    把普通的一天过成自己的节奏

    +文章导读 + 摘要由 Qwen 生成

    有时候,我们会把“好好生活”想得太大,好像它必须绑定某个明确的目标:换一份更好的工作,去一个更远的地方,学会一项很厉害的技能,或者在某个时间节点之前完成别人眼里的成功。 可真正能把日子托住的,往往不是这些很大的东西,而是一些小到容易被忽略的

    有时候,我们会把“好好生活”想得太大,好像它必须绑定某个明确的目标:换一份更好的工作,去一个更远的地方,学会一项很厉害的技能,或者在某个时间节点之前完成别人眼里的成功。

    +

    可真正能把日子托住的,往往不是这些很大的东西,而是一些小到容易被忽略的瞬间。

    +

    比如早上醒来后,没有立刻被消息推着跑,而是先喝一口水,慢慢把自己放回这一天里。比如走在路上时,发现今天的风刚好不冷不热,树影落在地上,像一张没人署名的明信片。比如晚上回到房间,给桌面留出一点空白,也给心里留出一点空白。

    +

    生活当然不会因为这些细节就变得没有压力。该做的事情还在那里,该面对的问题也不会自动消失。但这些小事会提醒我们:我不是只在处理任务,我也正在经历自己的人生。

    +

    很多时候,人会被“必须更快一点”的感觉追着走。快一点回复,快一点完成,快一点变好。久而久之,我们甚至忘了问自己:我到底想把时间用成什么样子?

    +

    也许答案并不复杂。

    +

    可以是认真吃一顿饭,不一边刷手机一边把味道错过。可以是把拖了很久的小事做完,让它别再占用心里的后台。可以是读几页书,听一首歌,散一会儿步,或者只是安静地发一会儿呆。

    +

    这些事情看起来不够“高效”,却很像给生活校准方向。它们让人重新感觉到,日子不是一条只能向前赶的进度条,也可以是一段可以被感受、被整理、被轻轻收藏的时间。

    +

    普通的一天并不会自动变得特别。但如果我们愿意在里面放进一点自己的节奏,它就会慢慢变得有辨识度。

    +

    不是为了把每一天都过得闪闪发光,而是为了在平凡里仍然知道:这是我的一天,我在里面认真地活过。

    把普通的一天过成自己的节奏

    /posts/efe1e805/
    作者
    biss
    发布于
    许可协议
    CC BY-NC-SA 4.0
    随笔生活
    订阅 打赏

    Comments

    把普通的一天过成自己的节奏

    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/posts/f0a1a1f4/index.html b/posts/f0a1a1f4/index.html new file mode 100644 index 0000000..903fb7b --- /dev/null +++ b/posts/f0a1a1f4/index.html @@ -0,0 +1,879 @@ + 英语文章分享-去奋力生活吧,就好像死亡近在咫尺 | Bi's Blog

    英语文章分享-去奋力生活吧,就好像死亡近在咫尺

    发布于 2025/08/12 学习 总字数:3.4k 阅读时长:9 分钟
    +文章导读 + 摘要由 Qwen 生成

    这篇文章讨论了在生活中追求意义的重要性,特别是在面对死亡时。作者作为一名临终关怀医生,见证了无数病人对未实现目标的遗憾。文章指出,许多人因感到精力不足或时间不够而未能追求自己的目标。然而,研究表明,拥有强烈目标感的人实际上更有活力,更容易被激励。目的不在于做出巨大贡献,而在于找到能激发内心火花的小目标,如阅读、散步或重拾儿时的爱好。文章强调,勇气是追求目标的关键,而不仅仅是勇敢。最后,作者警告说,如果不在有生之年追求目标,可能会在死亡时后悔莫及。

    As a hospice doctor, I often have the privilege of being at the bedside of dying patients.Over the years, I’ve had countless conversations about lives well lived, and more often, about regrets.Many of my patients express a strikingly similar sentiment: +I really regret that I never had the energy or time to… +The rest of the sentence varies.For one, it might be writing a book.For another, traveling to a far-off land.For someone else, maybe it’s training for a favorite sport.The specifics change, but the underlying theme is always the same: they missed out on what I call little p purpose — the process-oriented kind of purpose that comes from doing things that light us up from within. +The heartbreaking truth about these deathbed epiphanies is that the dying no longer have the agency to make things right.They’ve run out of time, or strength, or both.What they once could have done, they no longer can. +A large part of my work, and of the books I write, is trying to convince the living to adopt this mindset before it’s too late.To offer the lens of the dying as a kind of instruction manual for how to live now. +We must live as if death is just a breath away. +And yet, again and again, I hear the same explanations for why people don’t prioritize purpose in their daily lives. +I Don’t Have Enough Energy +This one comes up often, especially among young people, busy with careers and raising children.They feel completely depleted by the demands of work and family.The idea of mustering up extra energy to pursue something just for them seems laughable. +But research tells us something interesting.Studies on motivation and physical activity have shown that people with a stronger sense of purpose are actually more likely to feel energized.They experience fewer barriers to action and develop more intrinsic motivation to engage with life. +In other words, energy isn’t necessarily a finite pie.It can grow, especially when we’re engaging with activities that matter to us. +And “purpose” doesn’t have to mean starting a nonprofit or launching a million-dollar business.Little p purpose is smaller.Simpler.It could be reading a good book, taking a walk by the lake, or tinkering with a hobby you loved as a kid.It’s not about the size of the act, it’s about the spark. +I Don’t Have Enough Time +This one may feel especially true.We’re busier than ever, no doubt bombarded by the demands of work, family, texts, emails, and social media.It’s one of the most common objections I hear. +But data paints a different picture. +The Bureau of Labor Statistics conducts the American Time Use Survey every year, collecting insights from thousands of participants.The most recent findings?Americans spend an average of five hours a day on leisure and sports activities.That’s across all socioeconomic backgrounds.Rich or poor, employed or not — most people have more discretionary time than they realize. +So, if we do have the time, the question becomes: what’s really stopping us? +Purpose Demands Courage +In my years of working with the dying, I’ve learned something unexpected.The true barrier to purpose isn’t energy, money, or time. +It’s courage. +Not bravery in the way we typically define it.I’ve had this conversation with war heroes and daredevil athletes.It’s not about fearlessness.It’s not about skill either.I’ve cared for world-class artisans and bestselling authors.It’s not about knowledge — most of them knew what mattered to them. +What they lacked was the courage to choose those things.(他们缺乏的是选择那些的勇气) +It’s easier to focus on building wealth, pursuing a career, or raising kids.Those are important, yes, but they’re also the low-hanging fruit.They come with clear milestones and societal validation. +Turning toward what lights you up is a much scarier proposition. +What if I’m not good enough? +What if I fail? +What if it doesn’t turn out how I hoped? +What if people laugh at me? +The list of reasons not to pursue your purpose is long. +But there’s one reason that matters more than all the rest: +You might regret it on your deathbed if you don’t.

    英语文章分享-去奋力生活吧,就好像死亡近在咫尺

    /posts/f0a1a1f4/
    作者
    biss
    发布于
    许可协议
    CC BY-NC-SA 4.0
    英语
    订阅 打赏

    Comments

    英语文章分享-去奋力生活吧,就好像死亡近在咫尺

    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/posts/f287c563/index.html b/posts/f287c563/index.html new file mode 100644 index 0000000..834f3d8 --- /dev/null +++ b/posts/f287c563/index.html @@ -0,0 +1,1524 @@ + 添加typesense搜索 | Bi's Blog

    添加typesense搜索

    +文章导读 + 摘要由 Qwen 生成

    这篇文章介绍了如何在博客中集成Typesense搜索引擎,包括安装Typesense、添加数据集以及同步数据的详细步骤。首先,通过命令行安装Typesense并配置相关参数,如API密钥和数据目录。接着,安装必要的npm包,并在Hexo博客中配置搜索功能,指定存储搜索数据的JSON文件路径。然后,编写了一个同步脚本,用于读取XML文件、解析数据、检查或创建集合以及导入数据到Typesense。最后,在博客底部添加了InstantSearch和Typesense的JavaScript库,并根据实际情况修改了配置。

    ARTICLE SERIES

    博客定制手记

    第 13 / 14 篇
    1. 01 配置说说页面
    2. 02 在侧边栏中添加欢迎信息
    3. 03 自定义右键菜单
    4. 04 利用插件自定义页脚菜单
    5. 05 博客添加AI总结
    6. 06 利用 SiteMap 随机访问站内页面
    7. 07 自定义导航栏
    8. 08 自定义分类条
    9. 09 自定义页脚(新)
    10. 10 使用GitHub推送Hexo到服务器
    11. 11 在侧边栏添加日历和倒计时
    12. 12 自定义字体
    13. 13 添加typesense搜索
    14. 14 添加网站左上角菜单

    注意:本文为早期 Hexo / Butterfly 魔改记录,本站现已迁移到 Astro,相关代码、路径或插件可能已经失效,仅作历史参考。

    +

    最近在构建班级博客,用ghost cms,在构建搜索时发现了typesense,所以把他移植到这个博客上。

    +

    安装typesense

    +

    直接用docker-compose:

    +
    
    +services:
    +  typesense:
    +    image: typesense/typesense:30.1
    +    restart: always
    +    ports:
    +      - "8108:8108"
    +    volumes:
    +      - ./typesense-data:/data
    +    command: '--data-dir /data --api-key=填写key --enable-cors'
    +
    +

    然后就是反向代理之类的,不过多写了。

    +

    添加数据集

    +
    # 先安装库
    +npm install hexo-generator-search
    +npm install typesense xml2js
    +

    然后在config.yml配置(就是把文章生成json):

    +
    search:
    +  path: search.json
    +  field: post
    +  content: true
    +

    创建一个数据同步脚本sync_typesense.js:

    +
    const Typesense = require('typesense');
    +const fs = require('fs');
    +const xml2js = require('xml2js');
    +
    +// --- 配置区域 ---
    +const CONFIG = {
    +  apiKey: '你的Admin-API-Key', // 必须是 Admin Key
    +  host: '你的Typesense主机地址', 
    +  port: 443,
    +  protocol: 'https',
    +  collectionName: 'blogs'
    +};
    +
    +const client = new Typesense.Client({
    +  'nodes': [{ 'host': CONFIG.host, 'port': CONFIG.port, 'protocol': CONFIG.protocol }],
    +  'apiKey': CONFIG.apiKey,
    +  'connectionTimeoutSeconds': 5
    +});
    +
    +async function sync() {
    +  try {
    +    // 1. 读取并解析 XML
    +    const xml = fs.readFileSync('./public/search.xml', 'utf8');
    +    const parser = new xml2js.Parser({ explicitArray: false });
    +    const result = await parser.parseStringPromise(xml);
    +    
    +    // 提取文章列表 (处理单篇文章和多篇文章的情况)
    +    let entries = result.search.entry;
    +    if (!Array.isArray(entries)) entries = [entries];
    +
    +    // 格式化数据以适配 Typesense
    +    const documents = entries.map(post => ({
    +      title: post.title,
    +      url: post.url,
    +      content: post.content,
    +      categories: post.categories ? (Array.isArray(post.categories.category) ? post.categories.category : [post.categories.category]) : [],
    +      tags: post.tags ? (Array.isArray(post.tags.tag) ? post.tags.tag : [post.tags.tag]) : [],
    +    }));
    +
    +    // 2. 检查或创建 Collection (Schema)
    +    try {
    +      await client.collections(CONFIG.collectionName).retrieve();
    +    } catch (err) {
    +      const schema = {
    +        name: CONFIG.collectionName,
    +        fields: [
    +          { name: 'title', type: 'string', locale: 'zh'},
    +          { name: 'content', type: 'string', locale: 'zh'},
    +          { name: 'url', type: 'string' },
    +          { name: 'categories', type: 'string[]', facet: true },
    +          { name: 'tags', type: 'string[]', facet: true }
    +        ]
    +      };
    +      await client.collections().create(schema);
    +      console.log('Collection created!');
    +    }
    +
    +    // 3. 导入数据 (使用 upsert 模式:存在则更新,不存在则创建)
    +    console.log(`Syncing ${documents.length} posts to Typesense...`);
    +    await client.collections(CONFIG.collectionName).documents().import(documents, { action: 'upsert' });
    +    console.log('Sync complete!');
    +
    +  } catch (error) {
    +    console.error('Sync failed:', error);
    +  }
    +}
    +
    +sync();
    +

    然后运行node sync_typesense.js

    +

    创建只读key

    +

    把下面代码存储成js,node运行就行。

    +
    const http = require('https');
    +
    +const data = JSON.stringify({
    +  "description": "Public search only key",
    +  "actions": ["documents:search"],
    +  "collections": ["blogs"]
    +});
    +
    +const options = {
    +  hostname: '', // 不要带 https://
    +  port: 443,
    +  path: '/keys',
    +  method: 'POST',
    +  headers: {
    +    'X-TYPESENSE-API-KEY': '你的admin key',
    +    'Content-Type': 'application/json',
    +    'Content-Length': data.length
    +  }
    +};
    +
    +const req = http.request(options, res => {
    +  res.on('data', d => { process.stdout.write(d); });
    +});
    +
    +req.on('error', error => { console.error(error); });
    +req.write(data);
    +req.end();
    +

    博客添加搜索

    +

    config.yamlinject bottom添加:

    +
        - <script src="https://cdn.jsdmirror.com/npm/instantsearch.js@4.56.0"></script>
    +    - <script src="https://cdn.jsdmirror.com/npm/typesense-instantsearch-adapter@2.7.0/dist/typesense-instantsearch-adapter.min.js"></script>
    +

    为了方便,我直接修改了\themes\butterfly\source\js\search\local_search.js

    +
    (function () {
    +  'use strict';
    +
    +  // ============================================================================
    +  // 配置区域 - 请根据实际情况修改
    +  // ============================================================================
    +  const CONFIG = {
    +    apiKey: "", // ⚠️ 建议使用 Search-Only API Key
    +    server: {
    +      host: "host",
    +      port: "443",
    +      protocol: "https"
    +    },
    +    indexName: "blogs",
    +    searchParams: {
    +      query_by: "title,content",
    +      highlight_full_fields: "title,content",
    +      per_page: 8,
    +      num_typos: 1,
    +      typo_tokens_threshold: 1,
    +      prefix: true
    +    },
    +    ui: {
    +      maxRetries: 10,
    +      retryDelay: 100,
    +      animationDuration: 300
    +    }
    +  };
    +
    +  // ============================================================================
    +  // 状态管理
    +  // ============================================================================
    +  let searchInstance = null;
    +  let isInitialized = false;
    +  let isSearchOpen = false;
    +  let initRetryCount = 0;
    +  const MAX_INIT_RETRIES = 30; // 最多重试30次 (3秒)
    +
    +  // ============================================================================
    +  // 错误提示函数
    +  // ============================================================================
    +  function showErrorMessage() {
    +    const hitsContainer = document.getElementById('hits');
    +    if (!hitsContainer) return;
    +    
    +    hitsContainer.innerHTML = 
    +      '<div class="ts-empty">' +
    +        '<div style="color: #f44336;"><i class="fas fa-exclamation-triangle" style="font-size: 3rem;"></i></div>' +
    +        '<div style="font-size: 1.1rem; font-weight: bold; margin: 15px 0;">搜索服务加载失败</div>' +
    +        '<div style="font-size: 0.9rem; color: #666; line-height: 1.8;">' +
    +          '<p>依赖库未能正确加载,请检查以下配置:</p>' +
    +          '<ol style="text-align: left; max-width: 500px; margin: 15px auto;">' +
    +            '<li>确认已在 <code>_config.butterfly.yml</code> 中正确引入依赖</li>' +
    +            '<li>检查 JS 文件加载顺序(先 instantsearch.js,再 adapter)</li>' +
    +            '<li>尝试更换 CDN 或使用本地文件</li>' +
    +            '<li>打开浏览器控制台查看详细错误信息</li>' +
    +          '</ol>' +
    +        '</div>' +
    +        '<div style="margin-top: 20px;">' +
    +          '<button onclick="location.reload()" style="padding: 10px 20px; background: #49b1f5; color: white; border: none; border-radius: 5px; cursor: pointer;">重新加载页面</button>' +
    +        '</div>' +
    +      '</div>';
    +  }
    +
    +  // ============================================================================
    +  // 1. 动态插入 HTML 结构
    +  // ============================================================================
    +  const searchHTML = `
    +    <div id="typesense-search-mask" class="ts-mask" style="display:none;">
    +      <div id="typesense-search-container" class="ts-container">
    +        <div class="ts-header">
    +          <span class="ts-title">
    +            <i class="fas fa-search"></i> 本站搜索
    +          </span>
    +          <span id="close-typesense" class="ts-close" aria-label="关闭搜索">&times;</span>
    +        </div>
    +        <div id="searchbox"></div>
    +        <div id="stats" class="ts-stats"></div>
    +        <div id="hits" class="ts-hits"></div>
    +        <div id="pagination" class="ts-pagination"></div>
    +        <div class="ts-footer">
    +          <small>Search powered by <strong>Typesense</strong></small>
    +        </div>
    +      </div>
    +    </div>
    +
    +    <style>
    +      .ts-mask {
    +        position: fixed;
    +        top: 0;
    +        left: 0;
    +        width: 100%;
    +        height: 100%;
    +        background: rgba(0, 0, 0, 0.7);
    +        z-index: 10000;
    +        backdrop-filter: blur(5px);
    +        -webkit-backdrop-filter: blur(5px);
    +        opacity: 0;
    +        transition: opacity 300ms ease;
    +      }
    +      .ts-mask.active { opacity: 1; }
    +      .ts-container {
    +        margin: 5% auto;
    +        width: 90%;
    +        max-width: 650px;
    +        background: var(--search-bg, var(--card-bg, #fff));
    +        padding: 25px;
    +        border-radius: 12px;
    +        box-shadow: 0 15px 35px rgba(0, 0, 0, 0.3);
    +        position: relative;
    +        z-index: 10001;
    +        transform: translateY(-50px);
    +        opacity: 0;
    +        transition: all 300ms ease;
    +      }
    +      .ts-mask.active .ts-container {
    +        transform: translateY(0);
    +        opacity: 1;
    +      }
    +      .ts-header {
    +        display: flex;
    +        justify-content: space-between;
    +        align-items: center;
    +        margin-bottom: 20px;
    +        border-bottom: 2px solid var(--text-highlight-color, #49b1f5);
    +        padding-bottom: 10px;
    +      }
    +      .ts-title {
    +        font-size: 1.2rem;
    +        font-weight: bold;
    +        color: var(--text-highlight-color, #49b1f5);
    +      }
    +      .ts-close {
    +        cursor: pointer;
    +        font-size: 28px;
    +        color: var(--font-color, #333);
    +        line-height: 1;
    +        transition: color 0.2s, transform 0.2s;
    +      }
    +      .ts-close:hover {
    +        color: var(--text-highlight-color, #49b1f5);
    +        transform: scale(1.1);
    +      }
    +      .ais-SearchBox-input {
    +        position: relative;
    +        z-index: 10002;
    +        cursor: text;
    +        padding: 12px 40px 12px 15px !important;
    +        border-radius: 8px !important;
    +        border: 2px solid #eee !important;
    +        width: 100%;
    +        outline: none;
    +        transition: border-color 0.3s, box-shadow 0.3s;
    +        background: var(--card-bg, #fff);
    +        color: var(--font-color, #333);
    +        font-size: 1rem;
    +      }
    +      .ais-SearchBox-input:focus {
    +        border-color: var(--text-highlight-color, #49b1f5) !important;
    +        box-shadow: 0 0 0 3px rgba(73, 177, 245, 0.1);
    +      }
    +      .ts-stats {
    +        margin: 10px 0;
    +        font-size: 0.85rem;
    +        color: var(--font-color, #666);
    +        opacity: 0.8;
    +      }
    +      .ts-hits {
    +        max-height: 55vh;
    +        overflow-y: auto;
    +        margin-top: 15px;
    +        padding-right: 5px;
    +      }
    +      .ts-hits::-webkit-scrollbar { width: 6px; }
    +      .ts-hits::-webkit-scrollbar-track {
    +        background: var(--card-bg, #f1f1f1);
    +        border-radius: 10px;
    +      }
    +      .ts-hits::-webkit-scrollbar-thumb {
    +        background: var(--text-highlight-color, #49b1f5);
    +        border-radius: 10px;
    +      }
    +      .ts-empty {
    +        text-align: center;
    +        padding: 40px 20px;
    +        color: var(--font-color, #999);
    +      }
    +      .ts-empty i {
    +        font-size: 3rem;
    +        margin-bottom: 15px;
    +        opacity: 0.3;
    +      }
    +      .ts-empty code {
    +        background: #f5f5f5;
    +        padding: 2px 6px;
    +        border-radius: 3px;
    +        font-family: monospace;
    +        color: #e91e63;
    +      }
    +      .ts-empty ol {
    +        padding-left: 20px;
    +      }
    +      .ts-empty li {
    +        margin: 8px 0;
    +      }
    +      .ts-result-item {
    +        border-radius: 8px;
    +        transition: all 0.2s ease;
    +        margin-bottom: 10px;
    +        padding: 15px;
    +        border: 1px solid transparent;
    +        text-decoration: none;
    +        display: block;
    +        background: var(--card-bg, #fff);
    +      }
    +      .ts-result-item:hover {
    +        background: var(--text-bg-hover, rgba(73, 177, 245, 0.05));
    +        border-color: var(--text-highlight-color, #49b1f5);
    +        transform: translateX(5px);
    +        box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    +      }
    +      .ts-result-title {
    +        font-weight: bold;
    +        color: var(--text-highlight-color, #49b1f5);
    +        font-size: 1.1rem;
    +        margin-bottom: 8px;
    +        display: block;
    +        line-height: 1.4;
    +      }
    +      .ts-result-content {
    +        font-size: 0.9rem;
    +        color: var(--font-color, #666);
    +        line-height: 1.6;
    +        opacity: 0.85;
    +        display: -webkit-box;
    +        -webkit-line-clamp: 2;
    +        -webkit-box-orient: vertical;
    +        overflow: hidden;
    +      }
    +      .ts-result-item mark {
    +        background: #ffeb3b;
    +        color: #000;
    +        padding: 2px 4px;
    +        border-radius: 3px;
    +        font-weight: 500;
    +      }
    +      .ts-pagination {
    +        margin-top: 20px;
    +        display: flex;
    +        justify-content: center;
    +        gap: 5px;
    +      }
    +      .ais-Pagination-list {
    +        display: flex;
    +        list-style: none;
    +        padding: 0;
    +        margin: 0;
    +        gap: 5px;
    +      }
    +      .ais-Pagination-link {
    +        display: block;
    +        padding: 8px 12px;
    +        border: 1px solid #ddd;
    +        border-radius: 5px;
    +        color: var(--font-color, #333);
    +        text-decoration: none;
    +        transition: all 0.2s;
    +        background: var(--card-bg, #fff);
    +      }
    +      .ais-Pagination-link:hover {
    +        background: var(--text-highlight-color, #49b1f5);
    +        color: #fff;
    +      }
    +      .ais-Pagination-item--selected .ais-Pagination-link {
    +        background: var(--text-highlight-color, #49b1f5);
    +        color: #fff;
    +      }
    +      .ts-footer {
    +        text-align: right;
    +        margin-top: 15px;
    +        border-top: 1px solid var(--border-color, #eee);
    +        padding-top: 10px;
    +      }
    +      @media (max-width: 768px) {
    +        .ts-container {
    +          margin: 10px;
    +          width: calc(100% - 20px);
    +          padding: 20px 15px;
    +        }
    +        .ts-hits { max-height: 50vh; }
    +      }
    +      [data-theme="dark"] .ts-mask,
    +      .dark-mode .ts-mask {
    +        background: rgba(0, 0, 0, 0.85);
    +      }
    +    </style>
    +  `;
    +
    +  document.body.insertAdjacentHTML('beforeend', searchHTML);
    +
    +  const mask = document.getElementById('typesense-search-mask');
    +  const closeBtn = document.getElementById('close-typesense');
    +  const container = document.getElementById('typesense-search-container');
    +
    +  // ============================================================================
    +  // 搜索控制
    +  // ============================================================================
    +  function openSearch() {
    +    if (isSearchOpen) return;
    +    isSearchOpen = true;
    +    mask.style.display = 'block';
    +    void mask.offsetWidth;
    +    mask.classList.add('active');
    +    document.body.style.overflow = 'hidden';
    +
    +    if (!isInitialized) {
    +      initTypesense();
    +    }
    +    focusSearchInput();
    +  }
    +
    +  function closeSearch() {
    +    if (!isSearchOpen) return;
    +    isSearchOpen = false;
    +    mask.classList.remove('active');
    +    setTimeout(function() {
    +      mask.style.display = 'none';
    +      document.body.style.overflow = '';
    +    }, CONFIG.ui.animationDuration);
    +  }
    +
    +  function focusSearchInput(retryCount) {
    +    retryCount = retryCount || 0;
    +    const input = document.querySelector('.ais-SearchBox-input');
    +    if (input) {
    +      input.focus();
    +      input.select();
    +    } else if (retryCount < CONFIG.ui.maxRetries) {
    +      setTimeout(function() {
    +        focusSearchInput(retryCount + 1);
    +      }, CONFIG.ui.retryDelay);
    +    }
    +  }
    +
    +  // ============================================================================
    +  // 事件监听
    +  // ============================================================================
    +  document.addEventListener('click', function(e) {
    +    if (e.target.closest('.search-typesense-trigger')) {
    +      e.preventDefault();
    +      openSearch();
    +    }
    +  });
    +
    +  closeBtn.addEventListener('click', closeSearch);
    +  mask.addEventListener('click', function(e) {
    +    if (e.target === mask) closeSearch();
    +  });
    +  container.addEventListener('click', function(e) {
    +    e.stopPropagation();
    +  });
    +  window.addEventListener('keydown', function(e) {
    +    if (e.key === 'Escape' && isSearchOpen) {
    +      closeSearch();
    +    }
    +    if ((e.ctrlKey || e.metaKey) && e.key === 'k') {
    +      e.preventDefault();
    +      openSearch();
    +    }
    +  });
    +
    +  // ============================================================================
    +  // Typesense 初始化(带重试限制)
    +  // ============================================================================
    +  function initTypesense() {
    +    if (isInitialized || searchInstance) {
    +      console.warn('Typesense 搜索已初始化');
    +      return;
    +    }
    +
    +    var instantsearchLoaded = typeof instantsearch !== 'undefined';
    +    var adapterLoaded = typeof TypesenseInstantSearchAdapter !== 'undefined' || 
    +                        typeof window.TypesenseInstantSearchAdapter !== 'undefined';
    +    
    +    console.log('📦 依赖库检查 (' + (initRetryCount + 1) + '/' + MAX_INIT_RETRIES + '):');
    +    console.log('  instantsearch.js:', instantsearchLoaded ? '✅ 已加载' : '❌ 未加载');
    +    console.log('  TypesenseAdapter:', adapterLoaded ? '✅ 已加载' : '❌ 未加载');
    +    
    +    if (!instantsearchLoaded || !adapterLoaded) {
    +      initRetryCount++;
    +      
    +      if (initRetryCount >= MAX_INIT_RETRIES) {
    +        console.error('');
    +        console.error('❌ Typesense 依赖库加载失败!');
    +        console.error('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
    +        console.error('');
    +        console.error('🔧 请检查 _config.butterfly.yml 配置:');
    +        console.error('');
    +        console.error('inject:');
    +        console.error('  bottom:  # ⚠️ 使用 bottom 而不是 head');
    +        console.error('    - <script src="https://cdn.jsdelivr.net/npm/instantsearch.js@4.56.0"></script>');
    +        console.error('    - <script src="https://cdn.jsdelivr.net/npm/typesense-instantsearch-adapter@2.7.0/dist/typesense-instantsearch-adapter.min.js"></script>');
    +        console.error('    - <script src="/js/typesense-search-fixed.js"></script>');
    +        console.error('');
    +        console.error('💡 或在控制台手动检查:');
    +        console.error('   typeof instantsearch');
    +        console.error('   typeof TypesenseInstantSearchAdapter');
    +        console.error('');
    +        console.error('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
    +        
    +        showErrorMessage();
    +        return;
    +      }
    +      
    +      console.warn('⏳ 100ms 后重试...');
    +      setTimeout(initTypesense, 100);
    +      return;
    +    }
    +    
    +    initRetryCount = 0;
    +    console.log('🚀 开始初始化 Typesense...');
    +
    +    try {
    +      const typesenseAdapter = new TypesenseInstantSearchAdapter({
    +        server: {
    +          apiKey: CONFIG.apiKey,
    +          nodes: [{
    +            host: CONFIG.server.host,
    +            port: CONFIG.server.port,
    +            protocol: CONFIG.server.protocol
    +          }],
    +          cacheSearchResultsForSeconds: 120
    +        },
    +        additionalSearchParameters: CONFIG.searchParams
    +      });
    +
    +      searchInstance = instantsearch({
    +        searchClient: typesenseAdapter.searchClient,
    +        indexName: CONFIG.indexName,
    +        routing: false
    +      });
    +
    +      searchInstance.addWidgets([
    +        instantsearch.widgets.searchBox({
    +          container: '#searchbox',
    +          placeholder: '输入关键词寻找故事...',
    +          autofocus: true,
    +          showReset: true,
    +          showSubmit: false,
    +          showLoadingIndicator: true
    +        }),
    +        instantsearch.widgets.stats({
    +          container: '#stats',
    +          templates: {
    +            text: function(data) {
    +              if (!data.query) return '';
    +              return '找到 <strong>' + data.nbHits + '</strong> 条结果 (' + data.processingTimeMS + 'ms)';
    +            }
    +          }
    +        }),
    +        instantsearch.widgets.hits({
    +          container: '#hits',
    +          templates: {
    +            empty: function(results) {
    +              return '<div class="ts-empty">' +
    +                '<div><i class="fas fa-search"></i></div>' +
    +                '<div>找不到与 "<strong>' + results.query + '</strong>" 相关的内容</div>' +
    +                '<div style="margin-top: 10px;">试试其他关键词吧 (´·ω·`)</div>' +
    +                '</div>';
    +            },
    +            item: function(hit) {
    +              // 使用 _highlightResult 获取高亮文本
    +              var titleHighlight = hit._highlightResult && hit._highlightResult.title 
    +                ? hit._highlightResult.title.value 
    +                : (hit.title || '');
    +              
    +              var contentHighlight = hit._highlightResult && hit._highlightResult.content 
    +                ? hit._highlightResult.content.value 
    +                : (hit.content || '');
    +              
    +              // 截取内容长度
    +              if (contentHighlight.length > 200) {
    +                contentHighlight = contentHighlight.substring(0, 200) + '...';
    +              }
    +              
    +              return '<a href="' + hit.url + '" class="ts-result-item">' +
    +                '<div class="ts-result-title">' + titleHighlight + '</div>' +
    +                '<div class="ts-result-content">' + contentHighlight + '</div>' +
    +                '</a>';
    +            }
    +          }
    +        }),
    +        instantsearch.widgets.pagination({
    +          container: '#pagination',
    +          padding: 2,
    +          showFirst: false,
    +          showLast: false
    +        })
    +      ]);
    +
    +      searchInstance.start();
    +      isInitialized = true;
    +      
    +      console.log('✅ Typesense 初始化成功!');
    +
    +      searchInstance.on('render', function() {
    +        if (isSearchOpen) {
    +          const input = document.querySelector('.ais-SearchBox-input');
    +          if (input && document.activeElement !== input) {
    +            input.focus();
    +          }
    +        }
    +      });
    +
    +    } catch (error) {
    +      console.error('❌ 初始化失败:', error);
    +      showErrorMessage();
    +    }
    +  }
    +
    +  // ============================================================================
    +  // 初始化
    +  // ============================================================================
    +  function init() {
    +    console.log('🔍 Typesense 搜索已准备就绪');
    +    console.log('💡 快捷键: Ctrl/Cmd + K');
    +  }
    +
    +  if (document.readyState === 'loading') {
    +    document.addEventListener('DOMContentLoaded', init);
    +  } else {
    +    init();
    +  }
    +
    +  // ============================================================================
    +  // 全局接口
    +  // ============================================================================
    +  window.TypesenseSearch = {
    +    open: openSearch,
    +    close: closeSearch,
    +    isOpen: function() { return isSearchOpen; },
    +    getInstance: function() { return searchInstance; }
    +  };
    +
    +})();
    +

    注意

    +

    indexName: “blogs” 和 collectionName: ‘posts’ 要一致!!!

    添加typesense搜索

    /posts/f287c563/
    作者
    biss
    发布于
    许可协议
    CC BY-NC-SA 4.0
    订阅 打赏

    Comments

    添加typesense搜索

    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/privacy/index.html b/privacy/index.html new file mode 100644 index 0000000..2f28d66 --- /dev/null +++ b/privacy/index.html @@ -0,0 +1,382 @@ + 隐私政策 | Bi's Blog

    Bi's Blog

    隐私政策

    说明访问本站时可能涉及的数据收集与使用方式。

    +本站重视访问者的隐私。为了提供基础访问、评论、防滥用和体验优化能力,本站及其第三方服务可能会处理少量访问数据。 +

    可能收集的信息

    • 访问日志:IP 地址、浏览器 User-Agent、访问时间、请求路径等。
    • 设备与浏览信息:页面加载情况、访问来源、基础性能数据等。
    • 评论信息:你主动填写的昵称、邮箱、站点地址和评论内容。
    • 本地存储:主题偏好、评论状态等保存在浏览器中的数据。

    使用目的

    • 保障网站安全,识别异常请求和垃圾评论。
    • 优化页面性能、文章分类和搜索体验。
    • 在有回复时通过评论系统通知你。
    • 展示必要的评论头像、昵称和站点链接。

    第三方服务

    +本站可能使用 CDN、评论、头像、搜索或统计分析服务。第三方服务会根据其自身政策处理数据,建议你阅读对应服务的隐私说明。 +

    Cookie 与本地存储

    +关于 Cookie 和 LocalStorage 的更多说明,请查看 Cookies 页面。你可以在浏览器中清除这些数据。 +

    联系

    如果你希望删除评论或询问隐私相关问题,可以发送邮件至 bishsh2006@gmail.com

    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/rss.xml b/rss.xml new file mode 100644 index 0000000..cb62c61 --- /dev/null +++ b/rss.xml @@ -0,0 +1 @@ +Bi's BlogPersonal blog by biss.https://blog.biss.click/网站迁移日志https://blog.biss.click/posts/8f3b9d21/https://blog.biss.click/posts/8f3b9d21/这篇文章记录一次个人网站迁移过程:为什么要从旧的博客构建流程迁到 Astro,迁移时处理了哪些内容、路由、评论、统计和搜索问题,以及这次折腾之后留下的一些经验。Fri, 19 Jun 2026 16:45:00 GMT用 Umami 分享链接给网站信息卡提供统计数据https://blog.biss.click/posts/4c91a8f2/https://blog.biss.click/posts/4c91a8f2/这篇文章记录如何通过 Umami 的分享链接获取公开统计数据,再用 Cloudflare Worker 做一层缓存代理,最后把访客数和访问量显示到博客侧边栏的网站信息卡里。Fri, 19 Jun 2026 08:58:00 GMT把普通的一天过成自己的节奏https://blog.biss.click/posts/efe1e805/https://blog.biss.click/posts/efe1e805/有时候,我们会把“好好生活”想得太大,好像它必须绑定某个明确的目标:换一份更好的工作,去一个更远的地方,学会一项很厉害的技能,或者在某个时间节点之前完成别人眼里的成功。 可真正能把日子托住的,往往不是这些很大的东西,而是一些小到容易被忽略的Fri, 29 May 2026 18:09:40 GMTGPT Image2 初试https://blog.biss.click/posts/3f8de22/https://blog.biss.click/posts/3f8de22/这篇文章介绍了作者最近试用gpt img2之后的一些直观感受。文章没有从技术角度展开,而是以普通用户的体验为主,聊了它适合做什么、哪些地方比以前的AI绘图更顺手、哪些地方依然不太稳定,以及在日常做头像、壁纸、封面图和改图时的一些实际体会。整体来看,它确实比以前更听话一些,但也还没有到可以完全省心的地步。Sat, 25 Apr 2026 15:00:00 GMT电子价签玩法https://blog.biss.click/posts/8712baaa/https://blog.biss.click/posts/8712baaa/这篇文章介绍了作者在逛咸鱼时发现并购买了两个改造二手电子价签的过程,这些电子价签由tsl0922开发的开源固件提供支持,具备日历、传图、文字功能,并且可以在网页端进行便捷的配置。尽管开源版固件功能有限,作者选择自行编写所需功能,目前已经实现了待办事项和倒计时功能,并能生成图片后上传至网络。Sun, 19 Apr 2026 13:46:25 GMTOpenGL- Cohen-Sutherland 编码裁剪算法https://blog.biss.click/posts/9b2ef00a/https://blog.biss.click/posts/9b2ef00a/这篇文章介绍了Cohen-Sutherland编码裁剪算法,这是一种在计算机图形学中常用的图像裁剪方法。裁剪的目的是从一个大场景中提取所需信息,例如在浏览地图时放大显示特定区域。Cohen-Sutherland算法通过空间划分和编码方案来判断线段与矩形窗口的位置关系,从而决定线段的哪部分在窗口内、哪部分在窗口外。算法的核心在于计算线段端点的区域编码,并根据编码值来确定线段的裁剪结果。文章还提供了具体的代码实现,包括初始化设置、窗口大小调整和主函数等,展示了如何在实际应用中使用该算法进行图像裁剪。Wed, 15 Apr 2026 19:34:23 GMTOpenGL-直线的扫描转换https://blog.biss.click/posts/7207243b/https://blog.biss.click/posts/7207243b/这篇文章介绍了三种直线扫描转换算法:DDA算法、中点画线算法和Bresenham算法。 DDA算法通过计算直线起点和终点的坐标差值来确定步数和增量,依次绘制直线上的点。算法实现简单,适用于任意直线,但精度较低。 中点画线算法仅适用于斜率为0或1的直线,通过计算中点和斜率来确定直线上的像素点,效率较高。 Bresenham算法根据直线的斜率和误差项来确定像素点的位置,适用于任意直线,且精度高,但实现稍复杂。Sat, 11 Apr 2026 19:01:02 GMTOpenGL-基础程序https://blog.biss.click/posts/437a5198/https://blog.biss.click/posts/437a5198/这篇文章详细介绍了OpenGL的基础程序,包括代码展示和代码解释两部分。代码展示部分呈现了一个简单的OpenGL程序,涵盖了初始化与窗口管理、状态设置与缓冲区操作、矩阵与坐标变换以及几何图形绘制等关键步骤。代码解释则将这些步骤按照功能类别进行了归纳,帮助读者更好地理解OpenGL的渲染流程。通过这个示例,读者可以初步掌握OpenGL的基本操作和概念。Sat, 11 Apr 2026 18:20:34 GMT配置OpenGL环境https://blog.biss.click/posts/c4477b0c/https://blog.biss.click/posts/c4477b0c/这篇文章详细介绍了配置OpenGL环境所需步骤,包括安装Visual Studio、CMake和GLFW等关键组件,并提供了具体的配置方法和测试代码,旨在帮助读者顺利开始计算机图形学的学习之旅。Thu, 02 Apr 2026 04:52:16 GMTopencv应用-算术运算https://blog.biss.click/posts/b559997d/https://blog.biss.click/posts/b559997d/这篇文章介绍了如何使用OpenCV进行图像的加法运算。首先,通过包含OpenCV和iostream头文件,并使用std命名空间,开始编写代码。主函数中,读取两张图片,检查是否成功加载,并确保它们的尺寸相同。如果尺寸不同,将第二张图片调整为与第一张相同的大小。然后,调用add函数对两幅图片进行加法运算,并将结果存储在result矩阵中。最后,显示原始图片和加法运算的结果,并等待按键关闭窗口。代码已上传至自建的git仓库。Tue, 17 Mar 2026 13:13:08 GMTopencv应用-基础操作https://blog.biss.click/posts/e8f95ead/https://blog.biss.click/posts/e8f95ead/这篇文章介绍了使用C++和OpenCV库进行图像处理的基础操作,包括图片的读取与展示、像素的读取与修改、图像的基本变换(缩放、旋转、平移、翻转)、以及图像通道的分离与合并。文章详细讲解了每个操作的代码实现,并展示了如何通过OpenCV库提供的函数来完成这些任务。这对于初学者来说是非常有用的,因为它帮助他们理解如何使用OpenCV进行图像处理。Sun, 15 Mar 2026 09:56:51 GMT配置opencvhttps://blog.biss.click/posts/6e3332b/https://blog.biss.click/posts/6e3332b/这篇文章介绍了在Ubuntu和Windows系统上配置OpenCV的过程。在Ubuntu系统中,通过包管理器安装了Visual Studio、GCC、G++、OpenCV以及Python的OpenCV绑定。而在Windows系统中,则通过安装Visual Studio并下载OpenCV的Windows安装包进行配置,包括将安装路径添加到系统环境变量中。Sat, 14 Mar 2026 11:48:36 GMT自建bitwarden服务https://blog.biss.click/posts/7baa41fc/https://blog.biss.click/posts/7baa41fc/这篇文章介绍了如何自建Bitwarden服务,以替代浏览器自带的密码管理器。Bitwarden是一款开源、端到端加密的密码管理器,支持多种操作系统和设备,具有安全存储、自动同步、一键填充、生成随机密码和检测弱密码等功能。文章详细描述了部署Bitwarden服务的步骤,包括安装Vaultwarden、配置Nginx反向代理以及设置域名和数据卷等。通过这些步骤,用户可以轻松搭建一个功能强大的密码管理服务器,提高个人信息安全。Wed, 25 Feb 2026 11:09:23 GMT自建renovate-bothttps://blog.biss.click/posts/56f57c0b/https://blog.biss.click/posts/56f57c0b/这篇文章介绍了如何自建Renovate Bot以自动更新依赖,并通过Docker Compose进行部署。首先,文章提供了Renovate Bot的Docker Compose文件配置,包括使用特定平台(gitea)、设置Git API地址、生成Token以及启用自动发现功能。接着,建议创建一个专门用于管理Renovate Bot的账户,并为其生成登录Token。最后,通过在系统的crontab中设置定时任务,可以自动化运行更新流程。Mon, 23 Feb 2026 10:49:17 GMT新年快乐!https://blog.biss.click/posts/5785bd01/https://blog.biss.click/posts/5785bd01/这篇文章是一则关于新年祝福和幸福指数提升的通知,主要内容包含以下几点:首先,强调在假期期间要确保饮食质量,避免emo情绪的影响;其次,鼓励大家在收到通知后在留言区分享新年愿望,以便后台系统收集并祝愿他们实现愿望;最后,表达了对大家新年的美好祝愿,希望他们身体健康,万事如意,所得皆所愿,所行化坦途。Sat, 14 Feb 2026 06:56:18 GMT添加网站左上角菜单https://blog.biss.click/posts/7e921903/https://blog.biss.click/posts/7e921903/这篇文章详细介绍了如何在柳神的网站上添加一个自定义的左上角菜单,包括菜单的结构、样式以及响应式设计。作者提供了具体的HTML和CSS代码示例,展示了如何实现一个包含多个链接和功能的导航栏,同时确保在不同屏幕尺寸下的适配性。此外,还解释了一些关键的CSS属性和JavaScript交互效果,以实现平滑的菜单显示和隐藏。通过这些步骤,用户可以轻松地自定义和美化网站的顶部导航栏,提升用户体验。Tue, 10 Feb 2026 07:11:14 GMT将博客仓库转移到giteahttps://blog.biss.click/posts/d2c8521/https://blog.biss.click/posts/d2c8521/这篇文章详细介绍了如何将博客仓库从现有的平台转移到Gitea。首先,确保已经成功安装了Gitea。接着,文章重点讲解了action文件的修改,包括检查分支、缓存项目、安装Node和Hexo、安装依赖、清理文件树、生成静态文件并压缩、部署到本地仓库以及Webhook的配置。这些步骤确保了博客能够顺利迁移到Gitea,并且保持了原有的功能和结构。需要注意的是,文章中的action文件包含了一些具体的指令和变量,如ref: master、cache-node-modules等,这些在实际操作时需要替换为具体的值。此外,文章还提到了Webhook的配置,这是一个可选但推荐的自定义事件触发器,用于在特定事件发生时自动触发部署流程。Sat, 07 Feb 2026 12:30:39 GMT安装giteahttps://blog.biss.click/posts/34725d47/https://blog.biss.click/posts/34725d47/这篇文章详细介绍了如何在2C2G的服务器上安装Gitea,包括获取二进制文件、创建用户和工作目录、创建系统服务、创建数据库以及安装Runner等步骤。Gitea作为一个轻量级的自助Git服务,适合用于托管网站源码。文章还提供了关于如何配置反向代理和数据库的信息,以及如何使用Docker运行Gitea Runner以实现GitHub Actions功能。通过这些步骤,用户可以在自己的服务器上成功部署Gitea,并利用其进行版本控制和自动化工作流程。Sat, 07 Feb 2026 06:32:04 GMT添加typesense搜索https://blog.biss.click/posts/f287c563/https://blog.biss.click/posts/f287c563/这篇文章介绍了如何在博客中集成Typesense搜索引擎,包括安装Typesense、添加数据集以及同步数据的详细步骤。首先,通过命令行安装Typesense并配置相关参数,如API密钥和数据目录。接着,安装必要的npm包,并在Hexo博客中配置搜索功能,指定存储搜索数据的JSON文件路径。然后,编写了一个同步脚本,用于读取XML文件、解析数据、检查或创建集合以及导入数据到Typesense。最后,在博客底部添加了InstantSearch和Typesense的JavaScript库,并根据实际情况修改了配置。Thu, 05 Feb 2026 13:14:16 GMT自定义字体https://blog.biss.click/posts/b5601a7e/https://blog.biss.click/posts/b5601a7e/这篇文章讨论了如何自定义网站字体,以提升网站的美观性和用户体验。作者首先提到了在移动端和电脑上使用woff或woff2字体能够完美显示的重要性,并提到谷歌字体库可能已经可以直接在中国大陆访问,这使得自定义字体的需求可能不再那么迫切。接着,文章详细介绍了如何在网上寻找并下载喜欢的字体,包括字体格式的转换方法。然后,展示了如何在CSS文件中添加字体,包括如何声明字体族和指定字体文件的路径。最后,文章还提供了关于其他字体格式的参考,并指导如何在主题文件的font配置区域修改字体设置。Fri, 16 Jan 2026 07:47:15 GMT在侧边栏添加日历和倒计时https://blog.biss.click/posts/5ed2f1e6/https://blog.biss.click/posts/5ed2f1e6/实现了一个侧边栏日历与倒计时卡片,包含以下核心功能:日历展示:显示当前日期(公历与农历)、星期、生肖、干支年份。动态生成当月日历网格,高亮当天日期。倒计时模块:距离除夕倒计时:实时计算并显示剩余天数(示例中为2026年2月16日)。进度条:分别展示本年、本月、本周的已过去进度(百分比)及剩余天数。农历支持:调用 chinese-lunar.js 库将公历转换为农历,格式化显示为“干支年+生肖年+农历月+农历日”。Fri, 16 Jan 2026 07:47:07 GMT和朋友们的故事https://blog.biss.click/posts/a31d95d9/https://blog.biss.click/posts/a31d95d9/这篇文章讲述了作者与朋友们的故事,以及他通过挂号信和电子贺卡与朋友们保持联系的经历。作者描述了自己对这种传统通信方式的喜爱,尽管现在网络发达,但他仍然觉得挂号信具有独特的魅力。文章中提到了作者去年上半年开始给朋友们写信,下半年因忙碌而减少,年底时尝试使用AI工具创作电子贺卡。作者感慨大学时间的快速流逝,以及朋友们之间的疏远。尽管如此,作者认为这是必然的事情,并无悲伤之处,只是单纯的感慨。最后,作者表示下次有时间会在文章中更新更多内容。Mon, 05 Jan 2026 13:14:16 GMTAdguard和Openclash共存https://blog.biss.click/posts/66e66374/https://blog.biss.click/posts/66e66374/这篇文章介绍了如何在已经安装了 OpenWrt 系统并配置好 OpenClash 和 AdguardHome 的情况下,实现这两者的共存。首先简要说明了 AdguardHome 和 OpenClash 的原理,它们都是通过劫持 DNS 来达到特定目的。然后分别介绍了两种配置方式:一种是在 AdguardHome 中将上游 DNS 服务器设置为 127.0.0.1:7874,这种方式相对简单;另一种是将 OpenClash 中的 DNS 指向 AdguardHome,但可能存在拦截失败的情况。Sun, 05 Oct 2025 15:18:00 GMTAdguard规则分享https://blog.biss.click/posts/69b16001/https://blog.biss.click/posts/69b16001/这篇文章分享了关于Adguardhome广告拦截工具的使用经验,特别强调了规则的重要性。作者提到,要达到更好的拦截效果,需要搭配有效的规则,并详细介绍了两个关键方面:一是综合过滤规则的分享,二是广告过滤规则订阅中心的集成。通过添加这些规则,使用Adblocktester工具可以达到74分的拦截效果,认为这基本够用。Sun, 05 Oct 2025 12:18:00 GMT在Openwrt上安装AdguardHomehttps://blog.biss.click/posts/b57500e9/https://blog.biss.click/posts/b57500e9/这篇文章介绍了在OpenWrt上安装AdguardHome的过程。首先,作者提到由于luci-app-adguardhome软件源的问题,选择了其他途径获取软件包并进行安装。接着,详细说明了安装步骤,包括下载、上传和运行安装命令。在配置部分,作者强调了更新核心版本的重要性,并提供了配置AdguardHome的具体步骤,如关闭路由器自带DNS/DHCP服务器,并建议设置AdguardHome的DHCP服务器。最后,作者提醒用户在完成配置后点击“保存并应用”,并通过AdGuardHome Web界面进行验证。Sun, 28 Sep 2025 17:10:18 GMT在Openwrt中安装OpenClashhttps://blog.biss.click/posts/2b2fb1a7/https://blog.biss.click/posts/2b2fb1a7/这篇文章详细介绍了在OpenWrt系统中安装OpenClash的过程。作者通过Web管理页面和终端命令两种方式进行了安装,并强调了推荐启用Smart内核。安装完成后,作者提到了配置步骤,包括下载内核和导入配置文件,最后表达了对于zashboard界面简洁美观的个人喜好。整篇文章内容连贯,条理清晰,为读者提供了完整的安装指南。Tue, 02 Sep 2025 21:00:00 GMTCudy TR3000刷入Openwrt系统https://blog.biss.click/posts/8802e397/https://blog.biss.click/posts/8802e397/这篇文章介绍了如何将Cudy TR3000路由器刷入OpenWrt系统。首先,作者提供了下载中间固件和OpenWrt固件的方法。接着,详细说明了刷入过程的步骤,包括访问不同的IP地址进行固件刷入,并提到了OpenWrt的默认登录密码是root。整个过程旨在使路由器能够支持科学上网功能。Sun, 31 Aug 2025 20:15:00 GMT搭建Owncloud并集成Onlyofficehttps://blog.biss.click/posts/59c8572a/https://blog.biss.click/posts/59c8572a/这篇文章详细介绍了如何搭建Owncloud网盘服务并集成Onlyoffice文档编辑器。首先,作者描述了搭建过程中的基本步骤,包括安装网盘和进行系统调优,其中强调了Redis缓存配置和Cron任务设置的重要性。接着,作者提到了在1panel应用商店安装Onlyoffice的过程,并说明了如何将其反向代理至个人域名。最后,文章指导用户在Owncloud中搜索并安装Onlyoffice插件,确保了整个集成过程的顺利完成。Tue, 26 Aug 2025 14:27:00 GMT为博客添加CMS系统https://blog.biss.click/posts/3a26a97a/https://blog.biss.click/posts/3a26a97a/这篇文章介绍了如何为Hexo博客添加一个基于Sveltia CMS的CMS系统。首先,作者通过npm安装了Sveltia CMS,并在博客源码目录下创建了必要的文件和目录结构。接着,作者详细说明了如何在config.yml文件中配置CMS,包括字段定义、页面和集合的设置。由于作者使用的是自己的服务器,无法使用官方的认证系统,因此他还讲解了如何配置GitHub OAuth应用,并在Cloudflare上设置环境变量以支持CI/CD流程。最后,作者指出完成这些步骤后,可以通过访问博客的admin后台来管理内容。Mon, 25 Aug 2025 22:03:00 GMT为1Panel添加自己想要的应用https://blog.biss.click/posts/bb18d851/https://blog.biss.click/posts/bb18d851/这篇文章详细介绍了如何为1Panel添加自定义应用的过程,包括预准备工作、创建文件和配置应用声明文件等步骤。首先,作者强调了Fork仓库和创建新分支的重要性。接着,文章逐步讲解了如何在应用目录下创建所需的文件和子目录,如halo、logo.png、data.yml、README.md等。特别详细地说明了应用声明文件data.yml的构成,包括基本信息、应用标签、类型等关键配置。此外,还解释了关于端口字段和type字段的具体使用方法,提供了实际安装时填写form表单的示例。整个过程不仅清晰易懂,而且为开发者提供了一套完整的操作指南,有助于他们更好地理解和实施应用添加到1Panel的过程。Tue, 19 Aug 2025 10:43:16 GMT使用GitHub推送Hexo到服务器https://blog.biss.click/posts/ce1ec3fe/https://blog.biss.click/posts/ce1ec3fe/这篇文章介绍了如何使用GitHub推送Hexo到服务器,包括建立GitHub仓库、上传文件、创建Action以及配置环境变量等步骤。首先,文章提供了在香港直连GitHub的方法,并指导如何在本地安装git、配置用户名和邮箱、创建SSH Key并在GitHub上上传公钥。接着,文章详细说明了如何在自己的hexo根目录下初始化git仓库,并使用PowerShell将文件推送到新建的私有仓库。此外,文章还创建了一个Action,用于自动化部署过程,包括检查分支、缓存项目、安装Node和Hexo、安装依赖、清理文件树、生成静态文件并压缩、部署到服务器等环节。最后,文章列出了需要配置的环境变量,如服务器IP、用户名、密钥密码、私钥和SSH登录端口,并强调了测试的重要性,以确保整个部署流程无报错。Mon, 18 Aug 2025 17:10:18 GMTC# 基本语法https://blog.biss.click/posts/e9a8e898/https://blog.biss.click/posts/e9a8e898/这篇文章通过Rectangle示例讲解C#面向对象基础,展示类与对象如何封装数据及行为,并输出面积15.75。随后介绍using引入命名空间、class声明类、注释、成员变量与函数、实例化流程及标识符规则。重点解析C#9顶级语句,无需Main方法即可在文件顶层直接写代码,编译器自动生成入口,适合脚本化开发,示例演示变量、方法、LINQ与异常处理,简化小型项目结构。Sat, 16 Aug 2025 18:01:10 GMTC# 入门https://blog.biss.click/posts/bc56f789/https://blog.biss.click/posts/bc56f789/这篇文章指导初学者在Windows上安装C#开发环境:先下载Visual Studio社区版安装器并勾选“.NET桌面开发”工作负载,可自定义安装路径;随后通过HelloWorld演示C#基础结构,包含命名空间、类、Main入口及Console输出,帮助读者完成首个程序并熟悉默认模板。Fri, 15 Aug 2025 09:56:17 GMT自定义页脚(新)https://blog.biss.click/posts/c6143ad3/https://blog.biss.click/posts/c6143ad3/您提供的代码是一个自定义页脚的HTML和CSS代码 要在您的网站中使用这个自定义页脚,请按照以下步骤操作: 1. 首先,将提供的CSS代码复制到您网站的CSS文件中。如果您没有单独的CSS文件,可以在HTML文件的`<head>`部分添加`<style>`标签,并将CSS代码粘贴到其中。 2. 接下来,将提供的HTML代码复制到您网站的HTML文件中。将其放置在`<body>`标签内,最好在页面的底部。 3. 根据需要自定义页脚内容,例如更改版权信息、菜单链接、社交链接等。 4. 保存更改并在浏览器中查看您的网站,您应该能看到自定义页脚。Thu, 14 Aug 2025 17:05:27 GMT自定义分类条https://blog.biss.click/posts/33249733/https://blog.biss.click/posts/33249733/这篇文章介绍了如何在博客系统中自定义分类栏的设计和实现过程。首先,通过Pug模板语言创建了一个名为categoryBar.pug的文件,用于定义分类栏的结构和样式。接着,在Stylus样式文件category-bar.styl中详细定义了分类栏的样式,包括内边距、背景颜色、边框圆角等,并设置了滚动条的样式。最后,在JavaScript文件main.js中添加了一个setCategoryBarActive函数,用于根据当前页面路径自动激活相应的分类项。此外,还讨论了如何将自定义的分类栏集成到主题中,并提供了相关的Pug混入代码。整个过程确保了分类栏的可定制性和易维护性。Thu, 14 Aug 2025 16:25:49 GMT自定义导航栏https://blog.biss.click/posts/3e61a389/https://blog.biss.click/posts/3e61a389/这篇文章介绍了如何在最新版的Butterfly 5.4中自定义导航栏,包括PC端和PE端的修改方法以及CSS文件的调整。主要内容包括修改header\nav.pug和menu_item.pug文件中的内容,调整head.styl和sidebar.styl中的CSS样式,以及在CSS文件中添加新的样式规则。这些修改旨在实现导航栏的个性化设置,如菜单项的显示、位置调整、背景颜色变化等,以提升网站的用户体验和视觉效果。Wed, 13 Aug 2025 16:12:25 GMT利用 SiteMap 随机访问站内页面https://blog.biss.click/posts/b5866b9e/https://blog.biss.click/posts/b5866b9e/提供了一个很好的解决方案,通过使用 Hexo 的 sitemap 生成器和 JavaScript 代码来实现随机访问站内页面的功能 以下是你提供的步骤的详细解释:Tue, 12 Aug 2025 15:15:32 GMT博客添加AI总结https://blog.biss.click/posts/41b9aff7/https://blog.biss.click/posts/41b9aff7/这篇文章介绍了如何在Hexo博客中添加AI摘要功能,作者寻找并尝试了多个AI摘要插件后,最终选择了hexo-ai-summary-liushen插件。安装过程中,作者详细说明了如何安装额外依赖,并在Hexo配置文件中添加了相关配置。文章还提供了关于内容清洗、摘要字段设置、日志等级、API接口配置、插件适配等方面的详细说明和配置示例。此外,作者还介绍了如何将AI摘要集成到Hexo主题中,并提供了相关的CSS样式和JavaScript动效代码,以实现更加逼真的摘要效果。最后,作者提醒用户在运行插件前注意备份,并介绍了如何处理可能出现的缓存问题。Tue, 12 Aug 2025 09:46:25 GMT利用插件自定义页脚菜单https://blog.biss.click/posts/a6ab0925/https://blog.biss.click/posts/a6ab0925/这篇文章介绍了如何使用插件来自定义Hexo博客的页脚菜单。首先,通过npm安装了hexo-butterfly-footer-marcus插件,并根据需要安装了yamljs插件。接着,在博客的配置文件中添加了相关配置信息,包括页脚美化、图标链接、作者信息等。文章还提供了具体的参数释义和使用方法,指导读者如何填写配置项和修改源码来调整页脚样式和布局。最后,文章还提到了如何解决在黑暗模式下修改按钮层级的问题,并提供了相关的代码修改示例。Tue, 12 Aug 2025 09:19:16 GMT英语文章分享-去奋力生活吧,就好像死亡近在咫尺https://blog.biss.click/posts/f0a1a1f4/https://blog.biss.click/posts/f0a1a1f4/这篇文章讨论了在生活中追求意义的重要性,特别是在面对死亡时。作者作为一名临终关怀医生,见证了无数病人对未实现目标的遗憾。文章指出,许多人因感到精力不足或时间不够而未能追求自己的目标。然而,研究表明,拥有强烈目标感的人实际上更有活力,更容易被激励。目的不在于做出巨大贡献,而在于找到能激发内心火花的小目标,如阅读、散步或重拾儿时的爱好。文章强调,勇气是追求目标的关键,而不仅仅是勇敢。最后,作者警告说,如果不在有生之年追求目标,可能会在死亡时后悔莫及。Mon, 11 Aug 2025 20:59:46 GMT自定义右键菜单https://blog.biss.click/posts/8bdb35fb/https://blog.biss.click/posts/8bdb35fb/这篇文章介绍了如何在自定义右键菜单中添加各种功能,包括返回、前进、刷新、滚动到页面不同位置、复制文本、搜索页面、打开链接、粘贴内容、复制本文地址、在新窗口打开链接、保存图片、随机文章浏览、切换深色模式、繁简转换、阅读模式以及隐私声明、Cookie协议和版权声明等。同时,文章还提供了创建Pug文件和JavaScript文件的步骤,详细说明了如何编写右键菜单的HTML结构和交互逻辑。Mon, 11 Aug 2025 16:02:12 GMT在侧边栏中添加欢迎信息https://blog.biss.click/posts/da17d00/https://blog.biss.click/posts/da17d00/这篇文章介绍了如何在侧边栏中添加欢迎信息,包括申请腾讯地图API key、添加js脚本以及根据用户的地理位置显示个性化欢迎语。首先,文章指导读者如何申请腾讯地图API key,并提醒注意填写信任域名时不要包含'https://'。接着,文章说明了在主题的js目录下添加txmap.js脚本的过程,并提到了一个更完善的js脚本。最后,文章详细描述了如何使用获取到的地理位置信息,通过switch语句根据不同的国家、省份和城市显示相应的欢迎语。Sun, 10 Aug 2025 19:30:40 GMT配置说说页面https://blog.biss.click/posts/ad244066/https://blog.biss.click/posts/ad244066/这段文字看起来是一个部署教程,主要是关于如何在服务器上部署一个名为“Moments”的应用,并将其与网站集成。以下是对这段文字的概括: 1. 介绍了硬件和软件的要求,包括服务器、域名、Docker环境和反向代理工具(如Nginx)。 2. 提供了Moments应用的部署方法,包括使用docker-compose进行部署和配置Nginx反向代理。 3. 介绍了如何在前端集成Moments应用,包括引入必要的CSS和JS文件,以及创建一个新的页面来显示Moments的内容。 需要注意的是,这段文字中的一些链接和代码可能已经过时或者不适用于所有场景,建议在实际操作时参考最新的官方Sun, 10 Aug 2025 08:25:39 GMT部署历程https://blog.biss.click/posts/6e5f5039/https://blog.biss.click/posts/6e5f5039/这篇文章详细介绍了如何部署Hexo博客到Linux服务器,包括前提条件、本地环境准备、SSH密钥认证、配置步骤、工作流程以及故障排除提示。文章首先列出了部署所需满足的条件,然后逐步指导读者如何在服务器上安装Git、创建裸仓库、配置Git钩子以自动部署Hexo博客,并提供了验证部署成功的步骤。最后,文章还给出了一些常见问题的解决建议,帮助读者顺利完成部署。整个过程简单高效,适合需要自动化部署博客的用户。Sat, 02 Aug 2025 19:07:05 GMT \ No newline at end of file diff --git a/rss.xsl b/rss.xsl new file mode 100644 index 0000000..80fe37a --- /dev/null +++ b/rss.xsl @@ -0,0 +1,261 @@ + + + + + + + + + + <xsl:value-of select="/rss/channel/title"/> RSS + + + +
    +
    +
    + + RSS Feed +
    +

    +

    +
    + 返回博客 + 订阅源地址 + 把这个地址添加到 RSS 阅读器,就能持续收到新文章。 +
    +
    + +
    + + + +
    +
    + + +
    +
    diff --git a/shuoshuo/index.html b/shuoshuo/index.html new file mode 100644 index 0000000..8e51912 --- /dev/null +++ b/shuoshuo/index.html @@ -0,0 +1,424 @@ + 说说 | Bi's Blog

    Bi's Blog

    说说

    胡言乱语 ing...

    Comments

    说说

    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/sitemap-0.xml b/sitemap-0.xml new file mode 100644 index 0000000..f24f84b --- /dev/null +++ b/sitemap-0.xml @@ -0,0 +1 @@ +https://blog.biss.click/https://blog.biss.click/about/https://blog.biss.click/archives/https://blog.biss.click/archives/page/2/https://blog.biss.click/archives/page/3/https://blog.biss.click/categories/https://blog.biss.click/categories/life/https://blog.biss.click/categories/notes/https://blog.biss.click/categories/site-notes/https://blog.biss.click/categories/study/https://blog.biss.click/categories/tech/https://blog.biss.click/cc/https://blog.biss.click/cookie/https://blog.biss.click/go/https://blog.biss.click/link/https://blog.biss.click/page/2/https://blog.biss.click/page/3/https://blog.biss.click/posts/2b2fb1a7/https://blog.biss.click/posts/3a26a97a/https://blog.biss.click/posts/3e61a389/https://blog.biss.click/posts/3f8de22/https://blog.biss.click/posts/4c91a8f2/https://blog.biss.click/posts/5ed2f1e6/https://blog.biss.click/posts/6e5f5039/https://blog.biss.click/posts/6e3332b/https://blog.biss.click/posts/7baa41fc/https://blog.biss.click/posts/7e921903/https://blog.biss.click/posts/8bdb35fb/https://blog.biss.click/posts/8f3b9d21/https://blog.biss.click/posts/9b2ef00a/https://blog.biss.click/posts/41b9aff7/https://blog.biss.click/posts/56f57c0b/https://blog.biss.click/posts/59c8572a/https://blog.biss.click/posts/66e66374/https://blog.biss.click/posts/69b16001/https://blog.biss.click/posts/437a5198/https://blog.biss.click/posts/5785bd01/https://blog.biss.click/posts/8712baaa/https://blog.biss.click/posts/8802e397/https://blog.biss.click/posts/34725d47/https://blog.biss.click/posts/7207243b/https://blog.biss.click/posts/33249733/https://blog.biss.click/posts/a6ab0925/https://blog.biss.click/posts/a31d95d9/https://blog.biss.click/posts/ad244066/https://blog.biss.click/posts/b5601a7e/https://blog.biss.click/posts/b5866b9e/https://blog.biss.click/posts/b57500e9/https://blog.biss.click/posts/b559997d/https://blog.biss.click/posts/bb18d851/https://blog.biss.click/posts/bc56f789/https://blog.biss.click/posts/c4477b0c/https://blog.biss.click/posts/c6143ad3/https://blog.biss.click/posts/ce1ec3fe/https://blog.biss.click/posts/d2c8521/https://blog.biss.click/posts/da17d00/https://blog.biss.click/posts/e8f95ead/https://blog.biss.click/posts/e9a8e898/https://blog.biss.click/posts/efe1e805/https://blog.biss.click/posts/f0a1a1f4/https://blog.biss.click/posts/f287c563/https://blog.biss.click/privacy/https://blog.biss.click/shuoshuo/https://blog.biss.click/tags/https://blog.biss.click/tags/%E5%9B%BE%E5%83%8F%E7%94%9F%E6%88%90/https://blog.biss.click/tags/%E7%94%9F%E6%B4%BB/https://blog.biss.click/tags/%E7%BD%91%E7%AB%99/https://blog.biss.click/tags/%E8%8B%B1%E8%AF%AD/https://blog.biss.click/tags/%E8%BF%81%E7%A7%BB/https://blog.biss.click/tags/%E9%9A%8F%E7%AC%94/https://blog.biss.click/tags/1panel/https://blog.biss.click/tags/AdguardHome/https://blog.biss.click/tags/AI/https://blog.biss.click/tags/Astro/https://blog.biss.click/tags/C%23/https://blog.biss.click/tags/Cloudflare%20Worker/https://blog.biss.click/tags/Cudy-TR3000/https://blog.biss.click/tags/gitea/https://blog.biss.click/tags/OpenAI/https://blog.biss.click/tags/Openclash/https://blog.biss.click/tags/opencv/https://blog.biss.click/tags/OpenGL/https://blog.biss.click/tags/Openwrt/https://blog.biss.click/tags/Umami/ \ No newline at end of file diff --git a/sitemap-index.xml b/sitemap-index.xml new file mode 100644 index 0000000..c4ed240 --- /dev/null +++ b/sitemap-index.xml @@ -0,0 +1 @@ +https://blog.biss.click/sitemap-0.xml \ No newline at end of file diff --git a/sw.js b/sw.js new file mode 100644 index 0000000..091d1c1 --- /dev/null +++ b/sw.js @@ -0,0 +1,110 @@ +const CACHE_VERSION = '2026-07-17-v1'; +const CACHE_PREFIX = 'bis-blog-'; +const CORE_CACHE = `${CACHE_PREFIX}core-${CACHE_VERSION}`; +const PAGE_CACHE = `${CACHE_PREFIX}pages-${CACHE_VERSION}`; +const ASSET_CACHE = `${CACHE_PREFIX}assets-${CACHE_VERSION}`; +const IMAGE_CACHE = `${CACHE_PREFIX}images-${CACHE_VERSION}`; + +const CORE_ASSETS = [ + '/', + '/offline.html', + '/manifest.webmanifest', + '/images/Bi.ico', + '/images/pwa-192x192.png', + '/images/pwa-512x512.png', + '/images/pwa-maskable-512x512.png', + '/images/apple-touch-icon.png', +]; + +self.addEventListener('install', (event) => { + event.waitUntil( + caches.open(CORE_CACHE) + .then((cache) => cache.addAll(CORE_ASSETS)) + ); +}); + +self.addEventListener('activate', (event) => { + event.waitUntil((async () => { + const cacheNames = await caches.keys(); + await Promise.all( + cacheNames + .filter((name) => name.startsWith(CACHE_PREFIX) && ![CORE_CACHE, PAGE_CACHE, ASSET_CACHE, IMAGE_CACHE].includes(name)) + .map((name) => caches.delete(name)) + ); + await self.clients.claim(); + const clients = await self.clients.matchAll({ type: 'window' }); + clients.forEach((client) => client.postMessage({ type: 'OFFLINE_READY' })); + })()); +}); + +self.addEventListener('message', (event) => { + if (event.data?.type === 'SKIP_WAITING') self.skipWaiting(); +}); + +async function trimCache(cacheName, maxEntries) { + const cache = await caches.open(cacheName); + const keys = await cache.keys(); + if (keys.length > maxEntries) { + await Promise.all(keys.slice(0, keys.length - maxEntries).map((key) => cache.delete(key))); + } +} + +async function networkFirst(request) { + try { + const response = await fetch(request); + if (response.ok) { + const cache = await caches.open(PAGE_CACHE); + await cache.put(request, response.clone()); + void trimCache(PAGE_CACHE, 40); + } + return response; + } catch { + return (await caches.match(request)) || (await caches.match('/offline.html')); + } +} + +async function cacheFirst(request, cacheName, maxEntries) { + const cached = await caches.match(request); + if (cached) return cached; + + const response = await fetch(request); + if (response.ok || response.type === 'opaque') { + const cache = await caches.open(cacheName); + await cache.put(request, response.clone()); + void trimCache(cacheName, maxEntries); + } + return response; +} + +async function staleWhileRevalidate(request) { + const cache = await caches.open(ASSET_CACHE); + const cached = await cache.match(request); + const network = fetch(request).then((response) => { + if (response.ok) cache.put(request, response.clone()); + return response; + }).catch(() => cached); + return cached || network; +} + +self.addEventListener('fetch', (event) => { + const { request } = event; + if (request.method !== 'GET') return; + + const url = new URL(request.url); + if (request.mode === 'navigate') { + event.respondWith(networkFirst(request)); + return; + } + + if (request.destination === 'image') { + event.respondWith(cacheFirst(request, IMAGE_CACHE, 100)); + return; + } + + if ( + url.origin === self.location.origin && + ['style', 'script', 'font', 'worker'].includes(request.destination) + ) { + event.respondWith(staleWhileRevalidate(request)); + } +}); diff --git a/tags/1panel/index.html b/tags/1panel/index.html new file mode 100644 index 0000000..23c3ca2 --- /dev/null +++ b/tags/1panel/index.html @@ -0,0 +1,376 @@ + 1panel | Bi's Blog

    Bi's Blog

    #1panel

    共 1 篇文章

    为1Panel添加自己想要的应用 这篇文章详细介绍了如何为1Panel添加自定义应用的过程,包括预准备工作、创建文件和配置应用声明文件等步骤。首先,作者强调了Fork仓库和创建新分支的重要性。接着,文章逐步讲解了如何在应用目录下创建所需的文件和子目录,如halo、logo.png、data.yml、README.md等。特别详细地说明了应用声明文件data.yml的构成,包括基本信息、应用标签、类型等关键配置。此外,还解释了关于端口字段和type字段的具体使用方法,提供了实际安装时填写form表单的示例。整个过程不仅清晰易懂,而且为开发者提供了一套完整的操作指南,有助于他们更好地理解和实施应用添加到1Panel的过程。
    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/tags/AI/index.html b/tags/AI/index.html new file mode 100644 index 0000000..b46a9f1 --- /dev/null +++ b/tags/AI/index.html @@ -0,0 +1,376 @@ + AI | Bi's Blog

    Bi's Blog

    #AI

    共 1 篇文章

    GPT Image2 初试 这篇文章介绍了作者最近试用gpt img2之后的一些直观感受。文章没有从技术角度展开,而是以普通用户的体验为主,聊了它适合做什么、哪些地方比以前的AI绘图更顺手、哪些地方依然不太稳定,以及在日常做头像、壁纸、封面图和改图时的一些实际体会。整体来看,它确实比以前更听话一些,但也还没有到可以完全省心的地步。
    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/tags/AdguardHome/index.html b/tags/AdguardHome/index.html new file mode 100644 index 0000000..8017f99 --- /dev/null +++ b/tags/AdguardHome/index.html @@ -0,0 +1,376 @@ + AdguardHome | Bi's Blog

    Bi's Blog

    #AdguardHome

    共 3 篇文章

    Adguard和Openclash共存 这篇文章介绍了如何在已经安装了 OpenWrt 系统并配置好 OpenClash 和 AdguardHome 的情况下,实现这两者的共存。首先简要说明了 AdguardHome 和 OpenClash 的原理,它们都是通过劫持 DNS 来达到特定目的。然后分别介绍了两种配置方式:一种是在 AdguardHome 中将上游 DNS 服务器设置为 127.0.0.1:7874,这种方式相对简单;另一种是将 OpenClash 中的 DNS 指向 AdguardHome,但可能存在拦截失败的情况。
    在Openwrt上安装AdguardHome 这篇文章介绍了在OpenWrt上安装AdguardHome的过程。首先,作者提到由于luci-app-adguardhome软件源的问题,选择了其他途径获取软件包并进行安装。接着,详细说明了安装步骤,包括下载、上传和运行安装命令。在配置部分,作者强调了更新核心版本的重要性,并提供了配置AdguardHome的具体步骤,如关闭路由器自带DNS/DHCP服务器,并建议设置AdguardHome的DHCP服务器。最后,作者提醒用户在完成配置后点击“保存并应用”,并通过AdGuardHome Web界面进行验证。
    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/tags/Astro/index.html b/tags/Astro/index.html new file mode 100644 index 0000000..407811c --- /dev/null +++ b/tags/Astro/index.html @@ -0,0 +1,376 @@ + Astro | Bi's Blog

    Bi's Blog

    #Astro

    共 1 篇文章

    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/tags/C%23/index.html b/tags/C%23/index.html new file mode 100644 index 0000000..8581d63 --- /dev/null +++ b/tags/C%23/index.html @@ -0,0 +1,376 @@ + C# | Bi's Blog

    Bi's Blog

    #C#

    共 2 篇文章

    C# 基本语法 这篇文章通过Rectangle示例讲解C#面向对象基础,展示类与对象如何封装数据及行为,并输出面积15.75。随后介绍using引入命名空间、class声明类、注释、成员变量与函数、实例化流程及标识符规则。重点解析C#9顶级语句,无需Main方法即可在文件顶层直接写代码,编译器自动生成入口,适合脚本化开发,示例演示变量、方法、LINQ与异常处理,简化小型项目结构。
    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/tags/Cloudflare Worker/index.html b/tags/Cloudflare Worker/index.html new file mode 100644 index 0000000..fa6b207 --- /dev/null +++ b/tags/Cloudflare Worker/index.html @@ -0,0 +1,376 @@ + Cloudflare Worker | Bi's Blog

    Bi's Blog

    #Cloudflare Worker

    共 1 篇文章

    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/tags/Cudy-TR3000/index.html b/tags/Cudy-TR3000/index.html new file mode 100644 index 0000000..be8cf13 --- /dev/null +++ b/tags/Cudy-TR3000/index.html @@ -0,0 +1,376 @@ + Cudy-TR3000 | Bi's Blog

    Bi's Blog

    #Cudy-TR3000

    共 1 篇文章

    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/tags/OpenAI/index.html b/tags/OpenAI/index.html new file mode 100644 index 0000000..6f07735 --- /dev/null +++ b/tags/OpenAI/index.html @@ -0,0 +1,376 @@ + OpenAI | Bi's Blog

    Bi's Blog

    #OpenAI

    共 1 篇文章

    GPT Image2 初试 这篇文章介绍了作者最近试用gpt img2之后的一些直观感受。文章没有从技术角度展开,而是以普通用户的体验为主,聊了它适合做什么、哪些地方比以前的AI绘图更顺手、哪些地方依然不太稳定,以及在日常做头像、壁纸、封面图和改图时的一些实际体会。整体来看,它确实比以前更听话一些,但也还没有到可以完全省心的地步。
    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/tags/OpenGL/index.html b/tags/OpenGL/index.html new file mode 100644 index 0000000..497c149 --- /dev/null +++ b/tags/OpenGL/index.html @@ -0,0 +1,376 @@ + OpenGL | Bi's Blog

    Bi's Blog

    #OpenGL

    共 4 篇文章

    OpenGL- Cohen-Sutherland 编码裁剪算法 这篇文章介绍了Cohen-Sutherland编码裁剪算法,这是一种在计算机图形学中常用的图像裁剪方法。裁剪的目的是从一个大场景中提取所需信息,例如在浏览地图时放大显示特定区域。Cohen-Sutherland算法通过空间划分和编码方案来判断线段与矩形窗口的位置关系,从而决定线段的哪部分在窗口内、哪部分在窗口外。算法的核心在于计算线段端点的区域编码,并根据编码值来确定线段的裁剪结果。文章还提供了具体的代码实现,包括初始化设置、窗口大小调整和主函数等,展示了如何在实际应用中使用该算法进行图像裁剪。
    OpenGL-直线的扫描转换 这篇文章介绍了三种直线扫描转换算法:DDA算法、中点画线算法和Bresenham算法。 DDA算法通过计算直线起点和终点的坐标差值来确定步数和增量,依次绘制直线上的点。算法实现简单,适用于任意直线,但精度较低。 中点画线算法仅适用于斜率为0或1的直线,通过计算中点和斜率来确定直线上的像素点,效率较高。 Bresenham算法根据直线的斜率和误差项来确定像素点的位置,适用于任意直线,且精度高,但实现稍复杂。
    OpenGL-基础程序 这篇文章详细介绍了OpenGL的基础程序,包括代码展示和代码解释两部分。代码展示部分呈现了一个简单的OpenGL程序,涵盖了初始化与窗口管理、状态设置与缓冲区操作、矩阵与坐标变换以及几何图形绘制等关键步骤。代码解释则将这些步骤按照功能类别进行了归纳,帮助读者更好地理解OpenGL的渲染流程。通过这个示例,读者可以初步掌握OpenGL的基本操作和概念。
    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/tags/Openclash/index.html b/tags/Openclash/index.html new file mode 100644 index 0000000..a8eb7d4 --- /dev/null +++ b/tags/Openclash/index.html @@ -0,0 +1,376 @@ + Openclash | Bi's Blog

    Bi's Blog

    #Openclash

    共 2 篇文章

    Adguard和Openclash共存 这篇文章介绍了如何在已经安装了 OpenWrt 系统并配置好 OpenClash 和 AdguardHome 的情况下,实现这两者的共存。首先简要说明了 AdguardHome 和 OpenClash 的原理,它们都是通过劫持 DNS 来达到特定目的。然后分别介绍了两种配置方式:一种是在 AdguardHome 中将上游 DNS 服务器设置为 127.0.0.1:7874,这种方式相对简单;另一种是将 OpenClash 中的 DNS 指向 AdguardHome,但可能存在拦截失败的情况。
    在Openwrt中安装OpenClash 这篇文章详细介绍了在OpenWrt系统中安装OpenClash的过程。作者通过Web管理页面和终端命令两种方式进行了安装,并强调了推荐启用Smart内核。安装完成后,作者提到了配置步骤,包括下载内核和导入配置文件,最后表达了对于zashboard界面简洁美观的个人喜好。整篇文章内容连贯,条理清晰,为读者提供了完整的安装指南。
    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/tags/Openwrt/index.html b/tags/Openwrt/index.html new file mode 100644 index 0000000..c0461bd --- /dev/null +++ b/tags/Openwrt/index.html @@ -0,0 +1,376 @@ + Openwrt | Bi's Blog

    Bi's Blog

    #Openwrt

    共 4 篇文章

    Adguard和Openclash共存 这篇文章介绍了如何在已经安装了 OpenWrt 系统并配置好 OpenClash 和 AdguardHome 的情况下,实现这两者的共存。首先简要说明了 AdguardHome 和 OpenClash 的原理,它们都是通过劫持 DNS 来达到特定目的。然后分别介绍了两种配置方式:一种是在 AdguardHome 中将上游 DNS 服务器设置为 127.0.0.1:7874,这种方式相对简单;另一种是将 OpenClash 中的 DNS 指向 AdguardHome,但可能存在拦截失败的情况。
    在Openwrt上安装AdguardHome 这篇文章介绍了在OpenWrt上安装AdguardHome的过程。首先,作者提到由于luci-app-adguardhome软件源的问题,选择了其他途径获取软件包并进行安装。接着,详细说明了安装步骤,包括下载、上传和运行安装命令。在配置部分,作者强调了更新核心版本的重要性,并提供了配置AdguardHome的具体步骤,如关闭路由器自带DNS/DHCP服务器,并建议设置AdguardHome的DHCP服务器。最后,作者提醒用户在完成配置后点击“保存并应用”,并通过AdGuardHome Web界面进行验证。
    在Openwrt中安装OpenClash 这篇文章详细介绍了在OpenWrt系统中安装OpenClash的过程。作者通过Web管理页面和终端命令两种方式进行了安装,并强调了推荐启用Smart内核。安装完成后,作者提到了配置步骤,包括下载内核和导入配置文件,最后表达了对于zashboard界面简洁美观的个人喜好。整篇文章内容连贯,条理清晰,为读者提供了完整的安装指南。
    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/tags/Umami/index.html b/tags/Umami/index.html new file mode 100644 index 0000000..34d19b8 --- /dev/null +++ b/tags/Umami/index.html @@ -0,0 +1,376 @@ + Umami | Bi's Blog

    Bi's Blog

    #Umami

    共 1 篇文章

    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/tags/gitea/index.html b/tags/gitea/index.html new file mode 100644 index 0000000..bdc6b34 --- /dev/null +++ b/tags/gitea/index.html @@ -0,0 +1,376 @@ + gitea | Bi's Blog

    Bi's Blog

    #gitea

    共 3 篇文章

    自建renovate-bot 这篇文章介绍了如何自建Renovate Bot以自动更新依赖,并通过Docker Compose进行部署。首先,文章提供了Renovate Bot的Docker Compose文件配置,包括使用特定平台(gitea)、设置Git API地址、生成Token以及启用自动发现功能。接着,建议创建一个专门用于管理Renovate Bot的账户,并为其生成登录Token。最后,通过在系统的crontab中设置定时任务,可以自动化运行更新流程。
    将博客仓库转移到gitea 这篇文章详细介绍了如何将博客仓库从现有的平台转移到Gitea。首先,确保已经成功安装了Gitea。接着,文章重点讲解了action文件的修改,包括检查分支、缓存项目、安装Node和Hexo、安装依赖、清理文件树、生成静态文件并压缩、部署到本地仓库以及Webhook的配置。这些步骤确保了博客能够顺利迁移到Gitea,并且保持了原有的功能和结构。需要注意的是,文章中的action文件包含了一些具体的指令和变量,如ref: master、cache-node-modules等,这些在实际操作时需要替换为具体的值。此外,文章还提到了Webhook的配置,这是一个可选但推荐的自定义事件触发器,用于在特定事件发生时自动触发部署流程。
    安装gitea 这篇文章详细介绍了如何在2C2G的服务器上安装Gitea,包括获取二进制文件、创建用户和工作目录、创建系统服务、创建数据库以及安装Runner等步骤。Gitea作为一个轻量级的自助Git服务,适合用于托管网站源码。文章还提供了关于如何配置反向代理和数据库的信息,以及如何使用Docker运行Gitea Runner以实现GitHub Actions功能。通过这些步骤,用户可以在自己的服务器上成功部署Gitea,并利用其进行版本控制和自动化工作流程。
    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/tags/index.html b/tags/index.html new file mode 100644 index 0000000..00d69ff --- /dev/null +++ b/tags/index.html @@ -0,0 +1,376 @@ + 标签 | Bi's Blog

    Bi's Blog

    标签

    共 20 个标签

    标签文章统计

    共 44 篇文章

    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/tags/opencv/index.html b/tags/opencv/index.html new file mode 100644 index 0000000..7fecc06 --- /dev/null +++ b/tags/opencv/index.html @@ -0,0 +1,376 @@ + opencv | Bi's Blog

    Bi's Blog

    #opencv

    共 3 篇文章

    opencv应用-算术运算 这篇文章介绍了如何使用OpenCV进行图像的加法运算。首先,通过包含OpenCV和iostream头文件,并使用std命名空间,开始编写代码。主函数中,读取两张图片,检查是否成功加载,并确保它们的尺寸相同。如果尺寸不同,将第二张图片调整为与第一张相同的大小。然后,调用add函数对两幅图片进行加法运算,并将结果存储在result矩阵中。最后,显示原始图片和加法运算的结果,并等待按键关闭窗口。代码已上传至自建的git仓库。
    opencv应用-基础操作 这篇文章介绍了使用C++和OpenCV库进行图像处理的基础操作,包括图片的读取与展示、像素的读取与修改、图像的基本变换(缩放、旋转、平移、翻转)、以及图像通道的分离与合并。文章详细讲解了每个操作的代码实现,并展示了如何通过OpenCV库提供的函数来完成这些任务。这对于初学者来说是非常有用的,因为它帮助他们理解如何使用OpenCV进行图像处理。
    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/tags/图像生成/index.html b/tags/图像生成/index.html new file mode 100644 index 0000000..699c546 --- /dev/null +++ b/tags/图像生成/index.html @@ -0,0 +1,376 @@ + 图像生成 | Bi's Blog

    Bi's Blog

    #图像生成

    共 1 篇文章

    GPT Image2 初试 这篇文章介绍了作者最近试用gpt img2之后的一些直观感受。文章没有从技术角度展开,而是以普通用户的体验为主,聊了它适合做什么、哪些地方比以前的AI绘图更顺手、哪些地方依然不太稳定,以及在日常做头像、壁纸、封面图和改图时的一些实际体会。整体来看,它确实比以前更听话一些,但也还没有到可以完全省心的地步。
    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/tags/生活/index.html b/tags/生活/index.html new file mode 100644 index 0000000..34a734d --- /dev/null +++ b/tags/生活/index.html @@ -0,0 +1,376 @@ + 生活 | Bi's Blog

    Bi's Blog

    #生活

    共 3 篇文章

    和朋友们的故事 这篇文章讲述了作者与朋友们的故事,以及他通过挂号信和电子贺卡与朋友们保持联系的经历。作者描述了自己对这种传统通信方式的喜爱,尽管现在网络发达,但他仍然觉得挂号信具有独特的魅力。文章中提到了作者去年上半年开始给朋友们写信,下半年因忙碌而减少,年底时尝试使用AI工具创作电子贺卡。作者感慨大学时间的快速流逝,以及朋友们之间的疏远。尽管如此,作者认为这是必然的事情,并无悲伤之处,只是单纯的感慨。最后,作者表示下次有时间会在文章中更新更多内容。
    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/tags/网站/index.html b/tags/网站/index.html new file mode 100644 index 0000000..5f483ad --- /dev/null +++ b/tags/网站/index.html @@ -0,0 +1,376 @@ + 网站 | Bi's Blog

    Bi's Blog

    #网站

    共 18 篇文章

    添加网站左上角菜单 这篇文章详细介绍了如何在柳神的网站上添加一个自定义的左上角菜单,包括菜单的结构、样式以及响应式设计。作者提供了具体的HTML和CSS代码示例,展示了如何实现一个包含多个链接和功能的导航栏,同时确保在不同屏幕尺寸下的适配性。此外,还解释了一些关键的CSS属性和JavaScript交互效果,以实现平滑的菜单显示和隐藏。通过这些步骤,用户可以轻松地自定义和美化网站的顶部导航栏,提升用户体验。
    自定义字体 这篇文章讨论了如何自定义网站字体,以提升网站的美观性和用户体验。作者首先提到了在移动端和电脑上使用woff或woff2字体能够完美显示的重要性,并提到谷歌字体库可能已经可以直接在中国大陆访问,这使得自定义字体的需求可能不再那么迫切。接着,文章详细介绍了如何在网上寻找并下载喜欢的字体,包括字体格式的转换方法。然后,展示了如何在CSS文件中添加字体,包括如何声明字体族和指定字体文件的路径。最后,文章还提供了关于其他字体格式的参考,并指导如何在主题文件的font配置区域修改字体设置。
    在侧边栏添加日历和倒计时 实现了一个侧边栏日历与倒计时卡片,包含以下核心功能:日历展示:显示当前日期(公历与农历)、星期、生肖、干支年份。动态生成当月日历网格,高亮当天日期。倒计时模块:距离除夕倒计时:实时计算并显示剩余天数(示例中为2026年2月16日)。进度条:分别展示本年、本月、本周的已过去进度(百分比)及剩余天数。农历支持:调用 chinese-lunar.js 库将公历转换为农历,格式化显示为“干支年+生肖年+农历月+农历日”。
    搭建Owncloud并集成Onlyoffice 这篇文章详细介绍了如何搭建Owncloud网盘服务并集成Onlyoffice文档编辑器。首先,作者描述了搭建过程中的基本步骤,包括安装网盘和进行系统调优,其中强调了Redis缓存配置和Cron任务设置的重要性。接着,作者提到了在1panel应用商店安装Onlyoffice的过程,并说明了如何将其反向代理至个人域名。最后,文章指导用户在Owncloud中搜索并安装Onlyoffice插件,确保了整个集成过程的顺利完成。
    为博客添加CMS系统 这篇文章介绍了如何为Hexo博客添加一个基于Sveltia CMS的CMS系统。首先,作者通过npm安装了Sveltia CMS,并在博客源码目录下创建了必要的文件和目录结构。接着,作者详细说明了如何在config.yml文件中配置CMS,包括字段定义、页面和集合的设置。由于作者使用的是自己的服务器,无法使用官方的认证系统,因此他还讲解了如何配置GitHub OAuth应用,并在Cloudflare上设置环境变量以支持CI/CD流程。最后,作者指出完成这些步骤后,可以通过访问博客的admin后台来管理内容。
    使用GitHub推送Hexo到服务器 这篇文章介绍了如何使用GitHub推送Hexo到服务器,包括建立GitHub仓库、上传文件、创建Action以及配置环境变量等步骤。首先,文章提供了在香港直连GitHub的方法,并指导如何在本地安装git、配置用户名和邮箱、创建SSH Key并在GitHub上上传公钥。接着,文章详细说明了如何在自己的hexo根目录下初始化git仓库,并使用PowerShell将文件推送到新建的私有仓库。此外,文章还创建了一个Action,用于自动化部署过程,包括检查分支、缓存项目、安装Node和Hexo、安装依赖、清理文件树、生成静态文件并压缩、部署到服务器等环节。最后,文章列出了需要配置的环境变量,如服务器IP、用户名、密钥密码、私钥和SSH登录端口,并强调了测试的重要性,以确保整个部署流程无报错。
    自定义页脚(新) 您提供的代码是一个自定义页脚的HTML和CSS代码 要在您的网站中使用这个自定义页脚,请按照以下步骤操作: 1. 首先,将提供的CSS代码复制到您网站的CSS文件中。如果您没有单独的CSS文件,可以在HTML文件的`<head>`部分添加`<style>`标签,并将CSS代码粘贴到其中。 2. 接下来,将提供的HTML代码复制到您网站的HTML文件中。将其放置在`<body>`标签内,最好在页面的底部。 3. 根据需要自定义页脚内容,例如更改版权信息、菜单链接、社交链接等。 4. 保存更改并在浏览器中查看您的网站,您应该能看到自定义页脚。
    自定义分类条 这篇文章介绍了如何在博客系统中自定义分类栏的设计和实现过程。首先,通过Pug模板语言创建了一个名为categoryBar.pug的文件,用于定义分类栏的结构和样式。接着,在Stylus样式文件category-bar.styl中详细定义了分类栏的样式,包括内边距、背景颜色、边框圆角等,并设置了滚动条的样式。最后,在JavaScript文件main.js中添加了一个setCategoryBarActive函数,用于根据当前页面路径自动激活相应的分类项。此外,还讨论了如何将自定义的分类栏集成到主题中,并提供了相关的Pug混入代码。整个过程确保了分类栏的可定制性和易维护性。
    自定义导航栏 这篇文章介绍了如何在最新版的Butterfly 5.4中自定义导航栏,包括PC端和PE端的修改方法以及CSS文件的调整。主要内容包括修改header\nav.pug和menu_item.pug文件中的内容,调整head.styl和sidebar.styl中的CSS样式,以及在CSS文件中添加新的样式规则。这些修改旨在实现导航栏的个性化设置,如菜单项的显示、位置调整、背景颜色变化等,以提升网站的用户体验和视觉效果。
    博客添加AI总结 这篇文章介绍了如何在Hexo博客中添加AI摘要功能,作者寻找并尝试了多个AI摘要插件后,最终选择了hexo-ai-summary-liushen插件。安装过程中,作者详细说明了如何安装额外依赖,并在Hexo配置文件中添加了相关配置。文章还提供了关于内容清洗、摘要字段设置、日志等级、API接口配置、插件适配等方面的详细说明和配置示例。此外,作者还介绍了如何将AI摘要集成到Hexo主题中,并提供了相关的CSS样式和JavaScript动效代码,以实现更加逼真的摘要效果。最后,作者提醒用户在运行插件前注意备份,并介绍了如何处理可能出现的缓存问题。
    利用插件自定义页脚菜单 这篇文章介绍了如何使用插件来自定义Hexo博客的页脚菜单。首先,通过npm安装了hexo-butterfly-footer-marcus插件,并根据需要安装了yamljs插件。接着,在博客的配置文件中添加了相关配置信息,包括页脚美化、图标链接、作者信息等。文章还提供了具体的参数释义和使用方法,指导读者如何填写配置项和修改源码来调整页脚样式和布局。最后,文章还提到了如何解决在黑暗模式下修改按钮层级的问题,并提供了相关的代码修改示例。
    自定义右键菜单 这篇文章介绍了如何在自定义右键菜单中添加各种功能,包括返回、前进、刷新、滚动到页面不同位置、复制文本、搜索页面、打开链接、粘贴内容、复制本文地址、在新窗口打开链接、保存图片、随机文章浏览、切换深色模式、繁简转换、阅读模式以及隐私声明、Cookie协议和版权声明等。同时,文章还提供了创建Pug文件和JavaScript文件的步骤,详细说明了如何编写右键菜单的HTML结构和交互逻辑。
    在侧边栏中添加欢迎信息 这篇文章介绍了如何在侧边栏中添加欢迎信息,包括申请腾讯地图API key、添加js脚本以及根据用户的地理位置显示个性化欢迎语。首先,文章指导读者如何申请腾讯地图API key,并提醒注意填写信任域名时不要包含'https://'。接着,文章说明了在主题的js目录下添加txmap.js脚本的过程,并提到了一个更完善的js脚本。最后,文章详细描述了如何使用获取到的地理位置信息,通过switch语句根据不同的国家、省份和城市显示相应的欢迎语。
    配置说说页面 这段文字看起来是一个部署教程,主要是关于如何在服务器上部署一个名为“Moments”的应用,并将其与网站集成。以下是对这段文字的概括: 1. 介绍了硬件和软件的要求,包括服务器、域名、Docker环境和反向代理工具(如Nginx)。 2. 提供了Moments应用的部署方法,包括使用docker-compose进行部署和配置Nginx反向代理。 3. 介绍了如何在前端集成Moments应用,包括引入必要的CSS和JS文件,以及创建一个新的页面来显示Moments的内容。 需要注意的是,这段文字中的一些链接和代码可能已经过时或者不适用于所有场景,建议在实际操作时参考最新的官方
    部署历程 这篇文章详细介绍了如何部署Hexo博客到Linux服务器,包括前提条件、本地环境准备、SSH密钥认证、配置步骤、工作流程以及故障排除提示。文章首先列出了部署所需满足的条件,然后逐步指导读者如何在服务器上安装Git、创建裸仓库、配置Git钩子以自动部署Hexo博客,并提供了验证部署成功的步骤。最后,文章还给出了一些常见问题的解决建议,帮助读者顺利完成部署。整个过程简单高效,适合需要自动化部署博客的用户。
    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/tags/英语/index.html b/tags/英语/index.html new file mode 100644 index 0000000..e7c1b7d --- /dev/null +++ b/tags/英语/index.html @@ -0,0 +1,376 @@ + 英语 | Bi's Blog

    Bi's Blog

    #英语

    共 1 篇文章

    英语文章分享-去奋力生活吧,就好像死亡近在咫尺 这篇文章讨论了在生活中追求意义的重要性,特别是在面对死亡时。作者作为一名临终关怀医生,见证了无数病人对未实现目标的遗憾。文章指出,许多人因感到精力不足或时间不够而未能追求自己的目标。然而,研究表明,拥有强烈目标感的人实际上更有活力,更容易被激励。目的不在于做出巨大贡献,而在于找到能激发内心火花的小目标,如阅读、散步或重拾儿时的爱好。文章强调,勇气是追求目标的关键,而不仅仅是勇敢。最后,作者警告说,如果不在有生之年追求目标,可能会在死亡时后悔莫及。
    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/tags/迁移/index.html b/tags/迁移/index.html new file mode 100644 index 0000000..533ed08 --- /dev/null +++ b/tags/迁移/index.html @@ -0,0 +1,376 @@ + 迁移 | Bi's Blog

    Bi's Blog

    #迁移

    共 1 篇文章

    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file diff --git a/tags/随笔/index.html b/tags/随笔/index.html new file mode 100644 index 0000000..9caf5d0 --- /dev/null +++ b/tags/随笔/index.html @@ -0,0 +1,376 @@ + 随笔 | Bi's Blog

    Bi's Blog

    #随笔

    共 1 篇文章

    Ctrl + 右键:浏览器原生菜单 +
    \ No newline at end of file