PageSourceSearch

https://nb-channel.top/

html nb-channel.top collected 2026-10-06 13:15:37 UTC 10,721 bytes, 172 lines download raw bytes

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.