新闻详情

新闻详情

首页 / 资讯中心 / 详情

如何让一整个网站变成一个可执行文件?kage 自包含离线阅读器打包教程

发布时间:2026/11/12 15:06:51来源:尧图网络
如何让一整个网站变成一个可执行文件?kage 自包含离线阅读器打包教程
如何让一整个网站变成一个可执行文件kage 自包含离线阅读器打包教程【免费下载链接】kageShadow any website for offline viewing, with the JavaScript stripped out项目地址: https://gitcode.com/gh_mirrors/kage6/kagekage 是一个用 Go 编写的离线网站阅读器与镜像打包工具它能克隆整站并剥离 JavaScript再通过kage pack --format binary把整个网站打包成一个自包含的可执行文件——发给任何人双击运行即可离线阅读无需安装任何依赖。这篇文章带你走完整条路径安装 → 克隆整站 → 打包成单个可执行文件并顺带学会跨平台生成、原生窗口版和常见问题。跟着做大约 5 分钟你就能得到一个文件 一个网站的离线阅读器。一、为什么另存为救不了你而 kage 可以用浏览器另存网页保存的内容往往只存下一个空壳页面依赖的 JavaScript 没保存下来图片样式可能丢失半年后打开就是一片空白。kage 走的是一条完全不同的路线用真实的无头 Chrome 打开页面等渲染完成对人类看到的样子做一次快照然后删掉全部 JavaScript把 CSS、图片、字体全部下载并改写成本地路径。最终落盘的是能直接打开的纯.html文件——看起来和真实网站一模一样却不运行任何代码。克隆完成后再执行一条pack命令整个文件夹就能被压进一个可执行文件里。二、一键安装 kage三种方式任选kage 是单文件 Go 程序安装极其简单。任选其一# 方式 1go install需要 Go 环境 go install github.com/tamnd/kage/cmd/kagelatest # 方式 2HomebrewmacOS brew install --cask tamnd/tap/kage # 方式 3ScoopWindows scoop install kage kage 会驱动真实浏览器渲染页面所以系统里需要装有 Chrome 或 Chromium会自动找到系统安装。如果你只装了 Docker也可以直接跑容器镜像docker run --rm -v $PWD/out:/out ghcr.io/tamnd/kage clone paulgraham.com。三、核心流程3 条命令从网站到可执行文件整个过程只有三步以经典的 essays 网站 paulgraham.com 为例。第 1 步克隆整站到本地kage clone paulgraham.com镜像会落在$HOME/data/kage/paulgraham.com/。这一步是个礼貌的广度优先爬取它会读取robots.txt、从sitemap.xml自动发现页面并且按文件路径去重——同一篇文章不管从 http 还是 https 访问都只抓一次。中途按 Ctrl-C 也会保存进度下次再跑自动续抓。常用参数速查参数作用--max-pages 50最多渲染 50 页快速试水--max-depth 2链接最多跟 2 层--scope-prefix /doc只抓某个子目录--scroll自动滚动页面触发懒加载图片--refresh增量刷新抓到新内容第 2 步打包成一个可执行文件kage pack paulgraham.com --format binary -o paulgraham执行完你会得到一个名为paulgraham的文件终端输出类似packed paulgraham size 21.9 MiB run ./paulgraham to view the site offline原理很简单kage 先把镜像写成一个 ZIM 档案文本 zstd 压缩、媒体原样存放再把它追加到一份 kage 自身副本的末尾并在尾部写上一个KAGEPCK1标记记录档案长度。于是这个可执行文件运行起来就是自带网站数据的服务端它会在本地随机端口启动自动打开你的浏览器整站离线可读。这个拼接逻辑就实现在 pack/binary.go 里。第 3 步运行开始离线阅读./paulgrahamserving offline site at http://127.0.0.1:52431 (Ctrl-C to stop)就这样——一个文件就是一个网站。把它拷进 U 盘、发到邮箱、丢进网盘接收方不需要安装 kage、不需要 ZIM 阅读器、甚至不需要联网。四、进阶技巧跨平台生成目标系统的阅读器追加到末尾的 ZIM 档案是平台无关的只有基座可执行文件携带架构信息。所以在 Mac 上也能打包出 Windows 版阅读器只要把--base指向一个 Windows 版 kage 即可kage 会读取基座的可执行文件头自动识别目标系统输出自动带上.exe后缀# 在 Mac 上为 Windows 用户生成阅读器 kage pack paulgraham.com --format binary --base kage-windows-amd64.exe # - paulgraham.exe三个打包形态怎么选一张表看懂形态命令大小适合场景ZIM 档案kage pack paulgraham.com最小纯内容自己阅读、用 Kiwix 生态打开自包含可执行文件--format binary≈13 MiB 站点发给零依赖的任何人双击桌面应用--app≈13.5 MiB 站点macOS 生成.app双击即开、无终端、自动用站点 favicon 当图标⚖️ 代价是体积可执行文件内嵌了完整 kage所以无论站点多小都在 13 MiB 起步。只关心内容时用 ZIM 更省空间ZIM 还是开放标准格式Kiwix 用的就是它多年后任何 ZIM 阅读器都能打开。五、终极形态弹出原生窗口而不只是浏览器标签页默认打包出来的阅读器会打开系统浏览器——网站会变成又一个带地址栏的标签页。想让它就是个 App的感觉更彻底用webview编译标签重建 kage它就会改用操作系统的 WebViewmacOS 为 WKWebView、Windows 为 WebView2、Linux 为 WebKitGTK在独立原生窗口中展示站点make build-webview # 或CGO_ENABLED1 go build -tags webview ./cmd/kage kage pack paulgraham.com --format binary --base bin/kage -o paulgraham ./paulgraham # 弹出原生窗口没有浏览器这正是文章开头那张截图的效果整站离线、独立的窗口、标题栏直接来自档案的标题。六、常见问题速查问题解决方法镜像太大打包太慢克隆时加--max-pages/--scope-prefix控制范围macOS 首次运行被 Gatekeeper 拦截执行xattr -d com.apple.quarantine ./paulgraham解除隔离Windows 上想双击无黑框用 release 里的 GUI 版基座--base kage-windows-gui-amd64.exe重新打包时想省时间kage pack支持--incremental只压缩发生变化的数据块七、想看源码从这里入手整个打包成可执行文件的功能代码量很小非常适合作为 Go 入门阅读打包命令与参数解析cli/pack.go二进制拼接ZIM 追加 尾部标记pack/binary.goZIM 读写实现纯 Gozim/writer.go、zim/reader.go离线服务处理pack/serve.go更多打包细节docs/content/guides/packing-a-mirror.md总结kage clone把网站变成纯静态镜像kage pack --format binary再把镜像和一个迷你 kage 拼成一个可执行文件。三条命令一个文件一个可以随时离线打开的完整网站——这就是把整站塞进一个可执行文件的全部秘密。【免费下载链接】kageShadow any website for offline viewing, with the JavaScript stripped out项目地址: https://gitcode.com/gh_mirrors/kage6/kage创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

【外设】之大彩串口显示屏 2026/11/13 0:43:49

【外设】之大彩串口显示屏

大彩串口屏初步使用 1 .官网下载 STM32 屏幕 GUI 设计资料 http://www.gz-dc.com/category/typeid/4112 找到 STM32 Keil 工程,移植相关代码因项目而异进行移植,由于项目简单,本人只对用到的指令接口进行修改。 比如:注意事项&…

阅读更多 →
无法下载Windows系统iso文件 2026/11/12 23:59:09

无法下载Windows系统iso文件

当我遇到这个问题的时候,我打开了一个网站: 登录 然后我打算下载的时候: 突然那个官方的连接就可以下载了:

阅读更多 →
【清华代码熊】DeepSeek V4.1 Flash 后训练详解 2026/11/13 10:09:00

【清华代码熊】DeepSeek V4.1 Flash 后训练详解

📌 上期解析了 DeepSeek V4.1 Flash 模型架构改进,本期解析 DeepSeek V4.1 Flash 预训练/后训练技术: 🌟 预训练:45T 文本 多模态混合语料、直接训练 sparse attention(取消 DeepSeek V4 的 dense 冷启动&…

阅读更多 →
Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ... 2026/11/12 9:25:38

Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ...

文章主要内容和创新点 主要内容 本文聚焦于多模态大语言模型(MLLM)强化学习(RL)训练中的效率问题,提出了一个名为Shuffle-R1的框架。研究发现,当前RL训练存在两个关键缺陷: 优势值坍缩(Advantage Collapsing):批次中大多数优势值集中在零附近,导致有效梯度信号被淹…

阅读更多 →
PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction 2026/11/12 15:57:44

PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction

一、文章主要内容总结 本文聚焦于利用大型语言模型(LLMs)实现个人身份信息(PII)脱敏的研究,旨在解决传统脱敏方法(如基于规则的系统、领域特定命名实体识别(NER)模型)泛化能力差、跨格式/跨语境适应性弱的问题。 研究通过全面评估多种LLM架构(包括密集型LLM(D-LLM…

阅读更多 →
LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model 2026/11/13 0:02:27

LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model

文章主要内容和创新点 主要内容 本文聚焦于二进制图像-文本相关性评估任务(判断图像与文本“相关”或“不相关”),针对该任务中文本格式多样、相关性定义随场景变化等挑战,提出了基于多模态大语言模型(MLLM)的解决方案LLaVA-RE。 模型设计:LLaVA-RE基于LLaVA 1.5架构,…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉