1<!DOCTYPE html> 2<html lang="zh-CN"> 3<head> 4<meta charset="UTF-8"> 5<meta name="viewport" content="width=device-width, initial-scale=1.0"> 6<meta name="description" content="NBé¢éï¼NoBooké¢éï¼å®ç½å ¥å£ââæ°çå®ç½ Beta çé¢ä¸ GitHub / Cloudflare / EdgeOne / PythonAnywhere éåç«å¯¼èªã"> 7<meta name="theme-color" content="#0b1220"> 8<title>NBé¢é · å®ç½å ¥å£</title> 9<style> 10* { margin: 0; padding: 0; box-sizing: border-box; } 11body { 12 font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif; 13 color: #e5eaf3; line-height: 1.6; -webkit-font-smoothing: antialiased; 14 background: 15 radial-gradient(900px 560px at 85% -10%, rgba(59,130,246,.16), transparent 60%), 16 radial-gradient(760px 520px at 8% 108%, rgba(139,92,246,.14), transparent 60%), 17 linear-gradient(168deg, #0b1220 0%, #101c33 55%, #171340 100%); 18 min-height: 100vh; 19} 20a { text-decoration: none; color: inherit; } 21.wrap { max-width: 560px; margin: 0 auto; padding: 56px 20px 44px; } 22/* 头 */ 23.head { text-align: center; margin-bottom: 40px; } 24.head .logo { height: 58px; width: auto; margin-bottom: 14px; } 25.head h1 { font-size: 1.9rem; font-weight: 800; letter-spacing: 2px; color: #fff; } 26.head .alt { font-size: .8rem; color: rgba(255,255,255,.45); letter-spacing: 3px; margin-top: 6px; } 27.fans { 28 display: inline-flex; align-items: center; gap: 8px; margin-top: 16px; 29 padding: 7px 16px; border-radius: 999px; 30 background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.12); 31 font-size: .85rem; color: rgba(255,255,255,.75); letter-spacing: .5px; 32 font-variant-numeric: tabular-nums; 33} 34.fans .dot { width: 7px; height: 7px; border-radius: 50%; background: #4ade80; box-shadow: 0 0 0 0 rgba(74,222,128,.5); animation: pulse 2s ease-out infinite; } 35.fans b { color: #9cc0ff; font-weight: 700; font-size: 1rem; } 36@keyframes pulse { 0% { box-shadow: 0 0 0 0 rgba(74,222,128,.5); } 70% { box-shadow: 0 0 0 7px rgba(74,222,128,0); } 100% { box-shadow: 0 0 0 0 rgba(74,222,128,0); } } 37/* ååº */ 38.sec { margin-bottom: 26px; } 39.sec-title { 40 display: flex; align-items: center; gap: 10px; 41 font-size: .72rem; font-weight: 700; letter-spacing: 3px; 42 color: rgba(255,255,255,.42); text-transform: uppercase; 43 margin-bottom: 14px; 44} 45.sec-title::after { content: ''; flex: 1; height: 1px; background: linear-gradient(90deg, rgba(255,255,255,.16), transparent); } 46/* ä¸»å¡ */ 47.card { 48 background: rgba(255,255,255,.045); 49 border: 1px solid rgba(255,255,255,.1); 50 border-radius: 20px; padding: 22px 22px 20px; 51 backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); 52 transition: border-color .3s ease, transform .3s cubic-bezier(.16,1,.3,1); 53} 54.card:hover { border-color: rgba(96,165,250,.45); transform: translateY(-2px); } 55.big { 56 display: flex; align-items: center; justify-content: space-between; gap: 14px; 57 background: linear-gradient(135deg, #3b82f6, #6366f1); color: #fff; 58 border: none; border-radius: 16px; padding: 17px 22px; 59 box-shadow: 0 18px 40px -14px rgba(59,130,246,.6); 60 font-size: 1.06rem; font-weight: 700; letter-spacing: 1px; 61 transition: transform .25s cubic-bezier(.16,1,.3,1), box-shadow .25s ease; 62} 63.big:hover { transform: translateY(-3px); box-shadow: 0 24px 50px -16px rgba(59,130,246,.7); } 64.big small { display: block; font-size: .72rem; font-weight: 500; letter-spacing: 1.5px; opacity: .75; } 65.big .ar { font-size: 1.2rem; font-weight: 200; } 66.chips { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 10px; } 67.chip { 68 text-align: center; padding: 10px 8px; border-radius: 12px; 69 background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.1); 70 font-size: .86rem; color: rgba(255,255,255,.8); letter-spacing: .5px; 71 transition: all .25s ease; 72} 73.chip:hover { border-color: rgba(96,165,250,.5); color: #fff; background: rgba(59,130,246,.14); } 74.chip em { font-style: normal; color: rgba(255,255,255,.4); font-size: .7rem; display: block; letter-spacing: 1px; margin-bottom: 3px; } 75/* éåå表 */ 76.mirror { display: flex; align-items: center; gap: 12px; padding: 13px 16px; border-radius: 14px; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.08); margin-bottom: 8px; } 77.mirror .ic { width: 34px; height: 34px; border-radius: 10px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; font-size: .95rem; background: linear-gradient(135deg, rgba(59,130,246,.25), rgba(139,92,246,.25)); } 78.mirror .m-name { flex: 1; min-width: 0; } 79.mirror .m-name b { display: block; font-size: .92rem; color: #fff; letter-spacing: .3px; } 80.mirror .m-name span { font-size: .72rem; color: rgba(255,255,255,.45); letter-spacing: .5px; } 81.mirror .links { display: flex; gap: 6px; flex-shrink: 0; } 82.mirror .links a { font-size: .76rem; font-weight: 700; letter-spacing: 1px; color: #9cc0ff; padding: 5px 11px; border-radius: 999px; border: 1px solid rgba(96,165,250,.3); transition: all .2s ease; white-space: nowrap; } 83.mirror .links a:hover { background: rgba(59,130,246,.18); color: #fff; }
84/* API + åºé¨ */ 85.api { display: flex; justify-content: center; gap: 26px; margin: 6px 0 30px; } 86.api a { font-size: .8rem; letter-spacing: 1.5px; color: rgba(255,255,255,.5); transition: color .25s ease; } 87.api a:hover { color: #9cc0ff; } 88.foot { text-align: center; font-size: .74rem; color: rgba(255,255,255,.32); letter-spacing: 1px; line-height: 2; } 89.foot a { color: rgba(255,255,255,.55); } 90.foot a:hover { color: #fff; } 91@media (max-width: 480px) { 92 .wrap { padding: 40px 16px 30px; } 93 .head h1 { font-size: 1.6rem; } 94 .chips { grid-template-columns: 1fr; } 95 .mirror { flex-wrap: wrap; } 96 .mirror .links { margin-left: 46px; } 97} 98</style> 99</head> 100<body> 101<div class="wrap"> 102 <header class="head"> 103 <img class="logo" src="https://github.nb-channel.top/images/NB%E9%A2%91%E9%81%93LOGO.png" alt="NBé¢é" onerror="this.style.display='none'"> 104 <h1>NBé¢é</h1> 105 <div class="alt">NOBOOK CHANNEL · å®ç½å ¥å£</div> 106 <div class="fans"><span class="dot"></span>Bç«ç²ä¸ <b id="fansNum">â¦</b></div> 107 </header> 108 <section class="sec"> 109 <div class="sec-title">
109æ°çå®ç½ · Beta çé¢</div> 110 <a class="big" href="https://github.nb-channel.top/Beta/index-Beta.html" target="_blank" rel="noopener noreferrer"> 111 <span>è¿å ¥ Beta å®ç½<small>2026 å ¨æ°çé¢ Â· æ¨è</small></span><span class="ar">â</span> 112 </a> 113 <div class="chips"> 114 <a class="chip" href="https://github.nb-channel.top/Beta/videos-Beta.html" target="_blank" rel="noopener noreferrer"><em>VIDEO</em>è§é¢æ¡£æ¡</a> 115 <a class="chip" href="https://github.nb-channel.top/Beta/comments-Beta.html" target="_blank" rel="noopener noreferrer"><em>COMMUNITY</em>è¯è®ºåº</a> 116 <a class="chip" href="https://github.nb-channel.top/Beta/product-Beta.html" target="_blank" rel="noopener noreferrer"><em>LAB</em>æç产å</a> 117 <a class="chip" href="https://github.nb-channel.top/Beta/changelog-Beta.html" target="_blank" rel="noopener noreferrer"><em>LOG</em>æ´æ°æ¥å¿</a> 118 </div> 119 </section> 120 <section class="sec"> 121 <div class="sec-title">éåç«ç¹ · å 容忥</div> 122 <div class="mirror"> 123 <div class="ic">G</div> 124 <div class="m-name"><b>GitHub Pages ç«</b><span>ä¸»ç« Â· 代ç ä»åº Pages</span></div> 125 <div class="links"><a href="https://github.nb-channel.top/Beta/index-Beta.html" target="_blank" rel="noopener noreferrer">æ°ç</a><a href="https://github.nb-channel.top/" target="_blank" rel="noopener noreferrer">ç»å ¸</a></div> 126 </div> 127 <div class="mirror"> 128 <div class="ic">C</div> 129 <div class="m-name"><b>Cloudflare Pages ç«</b><span>éå</span></div> 130 <div class="links"><a href="https://cloudflare.nb-channel.top/Beta/index-Beta.html" target="_blank" rel="noopener noreferrer">æ°ç</a><a href="https://cloudflare.nb-channel.top/" target="_blank" rel="noopener noreferrer">ç»å ¸</a></div> 131 </div> 132 <div class="mirror"> 133 <div class="ic">P</div> 134 <div class="m-name"><b>PythonAnywhere ç«</b><span>éå + å端æ¥å£</span></div> 135 <div class="links"><a href="https://pythonanywhere.nb-channel.top/Beta/index-Beta.html" target="_blank" rel="noopener noreferrer">æ°ç</a><a href="https://pythonanywhere.nb-channel.top/" target="_blank" rel="noopener noreferrer">ç»å ¸</a></div> 136 </div> 137 <div class="mirror"> 138 <div class="ic">E</div> 139 <div class="m-name"><b>EdgeOne ç«</b><span>éå · è ¾è®¯äºé¦æ¸¯èç¹</span></div> 140 <div class="links"><a href="https://edgeone.nb-channel.top/Beta/index-Beta.html" target="_blank" rel="noopener noreferrer">æ°ç</a><a href="https://edgeone.nb-channel.top/" target="_blank" rel="noopener noreferrer">ç»å ¸</a></div> 141 </div> 142 </section> 143 <div class="api"> 144 <a href="https://api.nb-channel.top/api/docs" target="_blank" rel="noopener noreferrer">弿¾æ¥å£ææ¡£ â</a> 145 <a href="https://nb-channel.top/api-sdk/" target="_blank" rel="noopener noreferrer">API SDK â</a> 146 </div> 147 <footer class="foot"> 148 å¶ä½ï¼<a href="https://space.bilibili.com/3493259582114264" target="_blank" rel="noopener noreferrer">NBæäºå±ï¼åNBå®éªå®¤-使»ï¼</a><br> 149 èç³»ï¼<a href="mailto:[email protected]">[email protected]</a> © 2026 NBé¢é · èæå ¬å¸ 150 </footer> 151</div>
152<script> 153(function () { 154 // 宿¶ç²ä¸(约30ç§åæ¥,失败éé») 155 var el = document.getElementById('fansNum'); 156 function fmt(n) { return String(n).replace(/B(?=(d{3})+(?!d))/g, ','); } 157 function poll() { 158 fetch('https://nbchannel.pythonanywhere.com/api/bili-fans', { cache: 'no-store' }) 159 .then(function (r) { return r.ok ? r.json() : null; }) 160 .then(function (j) { 161 if (j && j.follower > 0) { el.textContent = fmt(parseInt(j.follower, 10)); } 162 else { el.textContent = '--'; } 163 }) 164 .catch(function () { el.textContent = '--'; }); 165 } 166 poll(); 167 setInterval(poll, 30000); 168})(); 169</script>
vendor: 1 bytes, line 169
169
170<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"2694d6c1b70c42ee8414dc6303584599","r":1,"spa":2}' crossorigin="anonymous"></script>
170 171</body> 172</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.