
OpenDoc 发布:开源免费的离线文档浏览器
来源标题:OpenDoc – Free, open-source offline documentation browser
OpenDoc 是一款免费开源的离线文档浏览器,可在无网络连接下毫秒级搜索数千个函数、类和指南。它兼容 Dash 和 Zeal 使用的标准 docset 格式,可直接读取现有文档集。项目基于 Node.js 和 Rust 构建,提供 Windows、macOS 和 Linux 安装包。
以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。
一个快速、现代的离线文档查看器。无需联网,即可在毫秒内搜索数千个函数、类和指南,并配有精致的桌面界面。 OpenDoc 读取标准 docset 格式(与 Dash 创建、Zeal 使用的格式相同),因此你可以直接指向现有的 docsets 文件夹,立即开始浏览。 下载页面按平台提供安装程序、安装说明和入门步骤。它沿用落地页的主题、强调色和语言偏好。包链接和大小从最新的 GitHub release 解析;如果该查询失败,链接将打开 release 页面。 虽然 Zeal 是一个久经考验的社区工具,但其 Qt/C++ 界面显得过时,且几乎不提供个性化选项。OpenDoc 从零构建,作为现代桌面替代方案,围绕四项核心原则设计: Node.js(建议 v22 或 v24)和 npm。 稳定版 Rust(edition 2021)。 Windows:Visual Studio C++ Build Tools 和 WebView2(Windows 11 和已更新的 Windows 10 已预装)。 macOS:Xcode Command Line Tools(xcode-select --install)。 Linux:WebKitGTK 和 Tauri v2 系统库(例如 libwebkit2gtk-4.1-dev、libappindicator3-dev、librsvg2-dev)。参见 Tauri v2 先决条件。 入门
- 克隆并在开发模式下运行 git clone https://github.com/daidarzzz/opendoc.git cd opendoc npm install npm run tauri dev 始终使用 npm run tauri dev。运行 npm run dev 只会启动 Vite 浏览器预览,其中原生 Tauri 后端命令不可用。 OpenDoc 不附带专有 docsets。 npm run tauri build 编译后的二进制文件位于 src-tauri/target/release/,平台安装程序(.exe、.msi、.dmg、.deb、.AppImage)位于 src-tauri/target/release/bundle/。 设置 → 通用 会检查最新的 GitHub release(latest.json),一键安装已签名的更新,然后重启。由 CI 构建的 release 会对其更新包签名:工作流需要仓库密钥 TAURI_SIGNING_PRIVATE_KEY(其公钥半部分位于 src-tauri/tauri.conf.json 中的私钥内容)和 TAURI_SIGNING_PRIVATE_KEY_PASSWORD(如果密钥没有密码则为空)。本地构建不需要该密钥:更新器产物仅通过 src-tauri/tauri.release.conf.json 在 CI 中启用。自动安装适用于 Windows 安装程序、macOS 应用和 Linux AppImage;.deb/.rpm 安装则会获得下载新版本的链接。 每个 release 还会附带 OpenDoc_<version>_x64.msix,由 .github/workflows/msix.yml 为 Microsoft Store 构建。它使用 OPENDOC_STORE=1 / VITE_OPENDOC_STORE=1 编译,这会移除应用内更新器(由 Store 安装更新),并由 packaging/msix/build-msix.ps1 使用 Windows SDK 中的 makeappx 打包。该包故意不签名:Store 会在认证后为其签名。包标识来自 Partner Center,通过仓库变量 MSIX_IDENTITY_NAME、MSIX_PUBLISHER 和 MSIX_PUBLISHER_DISPLAY_NAME(当预留的 Store 名称不是“OpenDoc”时,还需 MSIX_STORE_NAME);要重新构建现有 release 的 .msix,请使用其 tag 手动运行工作流。 参见 Contributing 了解开发工作流,参见 架构指南了解代码地图和运行时流程。 提交更改前,请确保所有测试、linter 和类型检查均通过:
前端测试(Vitest)
npm test
前端类型检查
npx tsc --noEmit
Rust 测试套件
cargo test --manifest-path src-tauri/Cargo.toml
Rust linter
cargo clippy --manifest-path src-tauri/Cargo.toml --all-targets -- -D warnings
Rust 格式检查
cargo fmt --manifest-path src-tauri/Cargo.toml -- --check 使用真实 docset 夹具(CSS.docset、Python_3.docset、C++.docset、Swift.docset)的测试期望文件位于 src-tauri/tests/fixtures/。如果夹具缺失,相应测试会以 SKIP 提示干净地跳过,因此它们可以在全新检出的代码中运行,而无需下载外部夹具。详情参见 src-tauri/tests/fixtures/README.md。 默认情况下,OpenDoc 通过 src-tauri/Cargo.toml 中固定的 Git tag 引用 opendoc-core。要同时测试本地核心修改,请取消注释 src-tauri/Cargo.toml 底部的 [patch] 部分: [patch."https://github.com/daidarzzz/opendoc-core"] opendoc-core = { path = "../../opendoc-core" } 记得在提交前将 patch 块重新注释掉。 OpenDoc 是自由软件,根据 GNU General Public License v3.0 或更高版本(GPL-3.0-or-later)许可。完整详情参见 LICENSE。 你加载的每个文档集仍归其各自作者的知识产权所有,并保留其自己的许可证;OpenDoc 既不包含也不重新分发第三方文档。
正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。