Support / 技术支持

Vault Reader · Independent developer Wei Dong / 独立开发者 Wei Dong

Download on the App Store / 在 App Store 免费下载

Vault Reader is a free Markdown vault reader for iPhone and iPad. Read your own Markdown, HTML and PDF knowledge bases. Start with the synthetic sample Vault, or sign in with GitHub to choose a private repository, or connect GitLab with a read-only token.

在 iPhone 和 iPad 上阅读自己的 Markdown、HTML 与 PDF 知识库。可先体验合成的示例知识库,也可用 GitHub 账号授权选择私有仓库,或用只读 Token 连接 GitLab。

Technical overview / 技术说明 ↓

应用语言

应用支持英语(默认回退)、简体中文、繁体中文、日语、韩语、西班牙语、巴西葡萄牙语、法语、德语、阿拉伯语、印地语和印尼语,在应用“设置 → 修改语言”中直接选择,立即生效并在重启后保留;选择“跟随系统”可恢复系统偏好,无需进入 iOS 设置。仓库资料保持原文;隐私政策与完整帮助提供英语和简体中文版本。

先体验,再连接

欢迎页点击“体验示例知识库”,即可离线体验目录、双链、搜索、阅读书架、PDF、HTML 和阅读进度。示例完全虚构;不会连接你的仓库,也不会覆盖已保存的连接。目录右上角菜单 → 设置 → “退出示例知识库”可回到原来的仓库或欢迎页。

连接 GitHub

在「添加知识库」点「通过 GitHub 连接」,用自己的 GitHub 账号授权。应用会立即记住账号。以后在「设置 → GitHub 账号」点用户名就能查看仓库,也可以连接其他账号。要从本机移除账号,点用户名右侧的红色垃圾桶。确认框会显示将停止同步的已保存知识库数量。缓存文件和阅读进度会保留。

第一次看到空列表,点「在 GitHub 选择仓库」,选择仓库所属的个人账号或组织,在 Only select repositories 下勾选仓库并安装或保存,然后回应用点「刷新」。组织仓库可能需要管理员批准。如果已经选过仓库,且组织启用了单点登录(SSO),请在同一浏览器完成组织登录,回到仓库列表点「重新连接 GitHub」,用原账号继续。

如需手动连接,可在 GitHub 创建 fine-grained personal access token。Resource owner 选择仓库所属账户,Repository access 只选择需要阅读的仓库,Repository permissions 中 Contents 选择 Read-only,保留所需的 Metadata 只读权限。组织仓库可能需要组织管理员批准。应用内填写 Owner、Repository 和分支,粘贴 Token 后点击“保存并校验”。Token 只填在应用安全输入框中,不要发送给开发者。

连接 GitLab

选择 GitLab,填写 HTTPS 服务地址(例如 https://gitlab.com)、命名空间、仓库名称和分支。命名空间可为 group/subgroup。使用 read_api 范围的 Token;如你的实例提供项目 Access Token,优先限制到目标项目。自建实例需使用设备信任的 HTTPS 证书。公开项目目前也使用 Token 连接流程。

阅读与离线

目录用于浏览文件;阅读页按知识库组织书籍与文章;最近页显示仓库提交;搜索支持文件名和已缓存 Markdown 正文。阅读位置保存在本机,未提供跨设备进度同步。缓存完成的内容可离线阅读,未下载的附件仍需要联网。独立 HTML 可以请求第三方网络资源,因此并非所有 HTML 都能完整离线使用。

常见问题

“Token 无效或已过期”:检查到期时间、Token 平台及仓库权限,重新保存新的只读 Token。403 也可能由组织限制或 API 配额造成;按错误提示处理。找不到仓库:检查 Owner/命名空间、Repository 和分支的拼写。无法打开附件:确认已联网,文件不超过 100 MiB,且不是仅有指针的 Git LFS 文件。不要依赖应用完整复现 Obsidian 插件、Dataview 或脚本功能。

数据与隐私

设置可清理附件缓存、移除本机 Token。移除凭据保留缓存和阅读进度。要彻底撤销访问,请在 GitHub/GitLab 中撤销 Token。完整说明见应用内“隐私政策”或 在线隐私政策。

反馈与支持

通过 GitHub Issues 联系开发者。请提供应用版本、设备型号、iOS 版本、复现步骤和已脱敏的错误信息。问题公开可见,请勿提交 Token、私有仓库文件、真实知识库截图或包含私人路径的日志。尽量用合成的小样例复现问题。

English quick start

Tap “Try sample Vault” on the welcome screen to explore without an account or network connection. The samples are synthetic and separate from your saved connections. Use Files → menu → Settings → “Leave sample Vault” to return. The app follows your preferred language and falls back to English. It supports English, Simplified and Traditional Chinese, Japanese, Korean, Spanish, Brazilian Portuguese, French, German, Arabic, Hindi and Indonesian. Open app Settings → Change Language and choose a language directly. The interface updates immediately and remembers the choice after relaunch. Follow System restores the device/app preference; no visit to iOS Settings is required. Repository documents keep their original language; the reviewed help and privacy documents are available in English and Simplified Chinese.

Connect your repository

Open Add Vault → Connect with GitHub and authorize your account. Vault Reader remembers it immediately. Open Settings → GitHub accounts and tap your username to see its repositories, or choose Connect another GitHub account. To remove an account from this device, tap the red trash button to the right of its username. The confirmation shows how many saved Vaults will stop syncing. Cached files and reading progress are kept.

On first use, an empty list offers Choose repositories on GitHub. Pick the personal account or organization that owns the repository, choose Only select repositories, then install or save and return to tap Refresh. Organization repositories may need administrator approval. If you already selected repositories and your organization uses single sign-on (SSO), sign in to the organization in the same browser, return to the list and tap Reconnect GitHub with the same account.

For manual GitHub setup, create a fine-grained token limited to selected repositories with Contents: Read-only and the required Metadata access. Enter owner, repository and branch in the app. Organization repositories may require approval. GitLab: enter the HTTPS server, namespace (including subgroups), repository and branch, using read_api access. Prefer a project-scoped token where available. Public repositories currently use the same token setup. Paste tokens only into the app, never into a support message.

Read and resume

Browse Files, Reading, Recent and Search. Cached documents are available offline; uncached attachments and third-party HTML resources may require a network connection. Reading progress is local to this device. Downloads are limited to 100 MiB per file. Git LFS pointer files and Obsidian plugins are not supported as full content or plugin execution.

Get help

For an expired token, create and save a replacement with the correct permissions. For permission or quota errors, follow the app message and check the repository service. Report reproducible problems through GitHub Issues, including app/device/OS versions and sanitized steps. Issues are public; do not include credentials, private files, screenshots of real vaults or private paths. Read the privacy policy for storage and deletion details.

复用 Token / Reuse saved tokens

添加知识库时,可在“凭据”的 Token 选项中选择已保存的 Token,无需再次粘贴。旧版本保存的 Token 会自动迁移;同一服务上的相同 Token 会合并。Token 必须已获准读取新仓库,保存时会单独验证。GitLab 不同服务器(包括端口和路径)分别保存,不能跨服务复用。也可选择“添加新 Token”,给它命名,并在“管理已保存的 Token”中重命名或删除。

“断开此知识库的 Token”只停止当前知识库的同步,Token 仍可供其他知识库使用。删除已保存的 Token 会停止所有关联知识库的同步,并先提示影响数量。两种操作均保留缓存和阅读进度;服务端撤销仍需在 GitHub/GitLab 操作。

When adding a Vault, choose a saved token under Credentials instead of pasting it again. Existing tokens migrate automatically; equal tokens on the same service merge. The token must already have read access to the new repository, which is verified separately. GitLab servers, ports and installation paths have separate token scopes. Choose “Add a new token” to save another credential with an optional label; “Manage saved tokens” offers rename and removal.

“Disconnect token from this Vault” stops only that Vault's sync and keeps the token for reuse. Removing a saved token stops all linked Vaults, with an affected count shown first. Both keep cached content and reading progress. Revoke tokens at GitHub/GitLab to revoke service-side access.

移除已添加的知识库 / Remove a saved Vault

打开“设置”,在“已保存知识库”中点目标知识库旁边的垃圾桶,再确认“移除知识库”。只移除所选仓库/分支的本机连接;其他分支与知识库保留。移除当前知识库后会切换到另一个;移除最后一个后回到连接首页。示例知识库通过“退出示例知识库”离开。

移除会停止该连接的同步,并从阅读页知识库列表与搜索范围中移除。缓存、离线保存、阅读进度、收藏、稍后读和已保存的 Token 保留;重新添加相同仓库与分支后可继续使用这些本机数据。最后一个分支移除时解除该仓库的 Token 关联,共享 Token 本身与其他仓库的关联不受影响。此操作不会删除 GitHub/GitLab 文件,也不会释放所有本机占用。

In Settings → Saved Vaults, tap the trash button beside the Vault and confirm “Remove Vault.” This removes only the selected repository/branch connection on this device. Other branches and Vaults remain. Removing the active Vault switches to another; removing the last one returns to setup. Use “Leave sample Vault” to exit samples.

The connection stops syncing and leaves the Reading Vault list and search scope. Cached files, offline saves, reading progress, favorites, read later and saved tokens remain and can be used again after adding the same repository/branch. Removing a repository's last branch detaches its token binding, while preserving the shared token and other repository bindings. Remote GitHub/GitLab files are unchanged; this does not clear all local storage.

技术支持网站 / Support website

技术支持与技术说明 / Technical support and overview

源代码阅读的原创公开示例在目录 Examples 中,包括 Reading.swift、Reading.json 和 Reading.log。

Original public source-reading examples are in the Examples folder: Reading.swift, Reading.json and Reading.log.

阅读功能 / Reading features

文内查找与本机阅读管理

Markdown 文章菜单与 PDF 工具栏提供“文内查找”,可查看匹配数量并前后跳转;扫描 PDF 可能没有可搜索文字。文章菜单还提供收藏、稍后读及系统文字分享。进入“阅读 → 阅读管理”,可查看 Markdown、HTML、PDF 的本机历史、收藏与稍后读,并按标题、路径和知识库筛选。字体、主题、标题目录与阅读位置按文档保存,不提供跨设备同步。

Markdown's article menu and the PDF toolbar provide Find in document with match counts and navigation; scanned PDFs may have no searchable text. The article menu also offers favorites, read later and system text sharing. Reading → Reading management lists local Markdown, HTML and PDF history and marks, filtered by title, path and Vault. Font, theme, headings and positions are local to each document, with no cross-device synchronization.

明确保存离线版本

文章菜单的“离线阅读”、PDF/HTML 工具栏与书籍详情的保存入口,可保存文章、完整 PDF 或书单中明确列出的本地文件。查看保存状态后,可打开固定内容的已保存版本。下载任务在前台运行,支持暂停、继续、失败恢复、更新与移除;“阅读”和“设置”提供“离线保存”管理。正文已缓存不代表全部资源已下载,HTML 与外部资源的限制会单独显示。显式离线版本与临时缓存分开,清理临时附件不删除显式保存。

Use Offline reading in the article menu, the PDF/HTML toolbar, or the book detail save action to save an article, a complete PDF, or the book's explicitly listed local files. Check completion before opening the fixed saved version. Downloads operate in the foreground with pause, continue, failure recovery, update and removal. Reading and Settings provide Offline saves management. A cached body does not guarantee downloaded resources; HTML and external-resource limitations are shown separately. Explicit saves are separate from temporary attachment caches.

搜索、目录与文章关系

搜索页可选择多个已保存知识库,在文件名和本机准备的正文中搜索,查看摘要并跳转到匹配内容。正文未索引的文件仍可通过名称、类型或元数据找到。目录提供当前文件夹查找、文件类型筛选、统计和名称/已知大小/修改/创建日期排序,排序字段与方向分开选择;Git 时间与作者取决于服务可用性和已有缓存。

Markdown 菜单中的“文章关系”显示真实出链与反链的一跳图和完整列表,支持切换中心与打开文章。本机缓存可能只覆盖部分文本;覆盖状态会显示。它不推测内容关联,也不提供全局图。

Search selects saved Vaults and searches filenames and locally prepared text, showing snippets and match destinations. Files without a body index remain searchable by filename, type or metadata. Directory offers folder lookup, file-type filters, statistics and sorting by name, known size, modified or created date, with separate field/direction controls. Git dates and authors depend on provider availability and cached metadata.

Article relationships in the Markdown menu shows actual one-hop outgoing links/backlinks, a diagram and the full list, with recentering and article navigation. Locally cached text may be partial; the coverage state is disclosed. It does not infer content associations or provide a global graph.

代码阅读、iPad 与加密文件

源代码和配置文件提供内置语法高亮、行号、本机换行偏好以及查找、字号、主题和位置恢复;纯文本和日志按原文显示。仅阅读,不执行代码或编辑文件。iPad 在宽窗口提供列表与阅读分栏,紧凑窗口使用导航。

应用识别 git-crypt 加密头,并对非 UTF-8 文本和加密文件给出原因及适当的系统预览选项。应用不保存解密密钥、不提供解密或编码转换;系统预览也不保证能读出内容。

Source/config reading offers bundled highlighting, line numbers, local wrap, find, font, theme and position restoration; plain text and logs are displayed literally. Code is not executed or edited. iPad uses list/reader columns in wide windows and navigation in compact ones.

The app recognizes git-crypt headers and explains encrypted or non-UTF-8 files, offering a system preview where appropriate. It does not store decryption keys, decrypt files or convert encodings, and system preview does not guarantee readable content.

Technical overview / 技术说明

只读连接与本机阅读

Vault Reader 是 iPhone 和 iPad 上的原生只读阅读器,直接通过 HTTPS 读取 GitHub、GitLab.com 或自建 GitLab 中的知识库文件。应用不编辑、提交或上传仓库文件;目录、缓存和阅读位置在本机管理,不通过开发者运营的服务器同步。

Read-only connections and local reading

Vault Reader is a native read-only reader for iPhone and iPad. It reads knowledge-base files directly over HTTPS from GitHub, GitLab.com or a self-managed GitLab server. The app does not edit, commit or upload repository files. Catalogs, caches and reading positions are managed on your device, without a developer-operated synchronization server.

凭据与网页内容隔离

GitHub 授权令牌与手动 Token 保存在 iOS Keychain,由原生网络层使用,不传入 Markdown 渲染层或独立 HTML 文档。Markdown 使用应用内置的渲染资源并过滤可执行标记;独立 HTML 文档可运行自身脚本和访问第三方网络资源,但没有读取应用 Token 的接口。PDF 使用系统 PDFKit 显示。

Credentials and web content

GitHub authorization tokens and manually entered tokens stay in the iOS Keychain and are used by the native networking layer. They are not passed to the Markdown renderer or independent HTML documents. Markdown uses bundled rendering resources and sanitizes executable markup. Independent HTML documents can run their own scripts and contact third-party services, but have no interface to app tokens. PDFs are displayed with the system PDFKit framework.

AI 与离线边界

你可以阅读外部 AI 工具整理的知识库;应用不内置 AI 聊天、生成或编辑服务。离线能力取决于已下载的正文和资源,第三方资源可能仍需联网。具体功能以你安装的应用版本为准。

AI and offline availability

You can read knowledge bases maintained with external AI tools. The app has no built-in AI chat, generation or editing service. Offline availability depends on downloaded documents and resources; third-party resources may still need a connection. Available features depend on the app version you have installed.