From bad0f1a599aa9264e033023db67be5a9bff88a66 Mon Sep 17 00:00:00 2001 From: CyC2018 Date: Sun, 1 Nov 2026 13:22:13 +0800 Subject: [PATCH 1/5] Update build.py MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 每篇 Markdown 另生成同内容的 .txt,以 text/plain 返回时可以压缩传输;不再复制 edgeone.json。 --- website/builder/build.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/website/builder/build.py b/website/builder/build.py index dc732d6b..a0a530a5 100644 --- a/website/builder/build.py +++ b/website/builder/build.py @@ -189,7 +189,7 @@ def build(optimize=True): dist = Path(temporary) / 'dist' dist.mkdir() shutil.copytree(SITE / 'vendor', dist / 'vendor') - for name in ('index.html', 'site.css', 'site.js', 'search.js', 'edgeone.json'): + for name in ('index.html', 'site.css', 'site.js', 'search.js'): shutil.copyfile(SITE / name, dist / name) for path in sources(): target = dist / path.relative_to(ROOT) @@ -281,10 +281,14 @@ def build(optimize=True): build_info = {'sourceCommit': SOURCE_COMMIT, 'generatorHash': generator.hexdigest(), 'notes': len(note_paths), 'searchIndex': index_name, 'legacyRoutes': len(legacy)} (dist / 'build-info.json').write_text(json.dumps(build_info, indent=2) + '\n') + # 网站读取的是同内容的 .txt:EdgeOne 只压缩 text/plain 等类型,.md 的 text/markdown 不压缩 + for document in list(dist.rglob('*.md')): + if document.relative_to(dist).parts[0] != 'learn': + document.with_suffix('.txt').write_bytes(document.read_bytes()) entry = (dist / 'index.html').read_text() entry = bundle_entry(dist, entry) (dist / 'index.html').write_text(entry) - shell = ['/', '/_sidebar.md', '/README.md'] + re.findall(r'(?:src|href)="(/(?:app|vendor|style)-[0-9a-f]{16}\.(?:js|css))"', entry) + shell = ['/', '/_sidebar.txt', '/README.txt'] + re.findall(r'(?:src|href)="(/(?:app|vendor|style)-[0-9a-f]{16}\.(?:js|css))"', entry) worker = (SITE / 'sw.js').read_text().replace('__SHELL__', json.dumps(shell)) (dist / 'sw.js').write_text(worker.replace('__BUILD__', hashlib.sha256(json.dumps(shell).encode()).hexdigest()[:12])) write_manifest(dist, build_info) From 2bc338011a622199f1af2df3345475976c74c757 Mon Sep 17 00:00:00 2001 From: CyC2018 Date: Sun, 1 Nov 2026 13:22:13 +0800 Subject: [PATCH 2/5] Update site.js MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Docsify 读取 .txt 文件。 --- website/templates/site.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/website/templates/site.js b/website/templates/site.js index eb863e85..5170ffa4 100644 --- a/website/templates/site.js +++ b/website/templates/site.js @@ -332,9 +332,10 @@ window.$docsify = { name: 'CS-Notes', repo: 'https://github.com/CyC2018/CS-Notes', - homepage: 'README.md', + homepage: 'README.txt', + ext: '.txt', loadSidebar: true, - alias: { '/.*/_sidebar.md': '/_sidebar.md' }, + alias: { '/.*/_sidebar.txt': '/_sidebar.txt' }, subMaxLevel: 0, auto2top: true, notFoundPage: true, From 66eeadb847cc3ff4a6584e73aa975caccf92a954 Mon Sep 17 00:00:00 2001 From: CyC2018 Date: Sun, 1 Nov 2026 13:22:14 +0800 Subject: [PATCH 3/5] Update index.html MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 预加载 .txt 文件。 --- website/templates/index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/templates/index.html b/website/templates/index.html index 2e9fdd24..23622287 100644 --- a/website/templates/index.html +++ b/website/templates/index.html @@ -11,8 +11,8 @@ // 正文和侧边栏的 Markdown 在 Docsify 载入前就开始下载,Docsify 请求同一地址时直接用下载好的内容 (function () { var path = location.hash.replace(/^#/, '').split('?')[0] || '/'; - var file = path === '/' ? '/README.md' : /^\/notes\/[^.]+$/.test(path) ? path + '.md' : null; - [file, '/_sidebar.md'].forEach(function (href) { + var file = path === '/' ? '/README.txt' : /^\/notes\/[^.]+$/.test(path) ? path + '.txt' : null; + [file, '/_sidebar.txt'].forEach(function (href) { if (!href) return; var link = document.createElement('link'); link.rel = 'preload'; From 1deff2169ffff5e1da8d74cc4cbd9b1c2b6d9a95 Mon Sep 17 00:00:00 2001 From: CyC2018 Date: Sun, 1 Nov 2026 13:22:14 +0800 Subject: [PATCH 4/5] Update sw.js MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 缓存和离线说明同时处理 .txt 文件。 --- website/templates/sw.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/website/templates/sw.js b/website/templates/sw.js index 21136bee..7c68d8dc 100644 --- a/website/templates/sw.js +++ b/website/templates/sw.js @@ -30,7 +30,7 @@ function put(name, request, response) { caches.open(name).then(function (cache) { return cache.put(request, copy); }).then(function () { if (LIMITS[name]) return trim(name); }); } function offlinePage(path) { - var title = decodeURIComponent(path.split('/').pop().replace(/\.md$/, '')); + var title = decodeURIComponent(path.split('/').pop().replace(/\.(md|txt)$/, '')); return new Response('# 当前离线\n\n《' + title + '》还没有在这台设备上打开过,联网后再试。已经读过的文章离线时也能打开。\n', { status: 200, headers: { 'Content-Type': 'text/plain; charset=utf-8', 'X-CS-Notes-Offline': '1' } }); } @@ -61,8 +61,8 @@ self.addEventListener('fetch', function (event) { if (path === '/' || path === '/index.html') event.respondWith(networkFirst(new Request('/'), STATIC, 3000, null)); } else if (/^\/(app|vendor|style)-[0-9a-f]{16}\.(js|css)$|^\/search-index-[0-9a-f]+\.json$|^\/optimized\//.test(path)) { event.respondWith(cacheFirst(request, /^\/optimized\//.test(path) ? IMAGES : STATIC)); - } else if (/\.md$/.test(path)) { - event.respondWith(networkFirst(request, PAGES, 3000, path === '/_sidebar.md' ? null : function () { return offlinePage(path); })); + } else if (/\.(md|txt)$/.test(path)) { + event.respondWith(networkFirst(request, PAGES, 3000, /^\/_sidebar\.(md|txt)$/.test(path) ? null : function () { return offlinePage(path); })); } else if (/\.(png|jpe?g|gif|svg|webp)$/.test(path)) { event.respondWith(networkFirst(request, IMAGES, 3000, null)); } From 6b6e2244dab362bc3fc3152140a11078a8a1a298 Mon Sep 17 00:00:00 2001 From: CyC2018 Date: Sun, 1 Nov 2026 13:22:14 +0800 Subject: [PATCH 5/5] Delete edgeone.json MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 改为由 .txt 文件返回 text/plain。 --- website/templates/edgeone.json | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 website/templates/edgeone.json diff --git a/website/templates/edgeone.json b/website/templates/edgeone.json deleted file mode 100644 index 199dd80c..00000000 --- a/website/templates/edgeone.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "headers": [ - { "source": "/*.md", "headers": [{ "key": "Content-Type", "value": "text/plain; charset=utf-8" }] } - ] -}