Omnivore是一个开源的“稍后阅读”应用,它允许用户保存、标记和分享文章,还支持PDF文件和邮件添加文章。Omnivore提供了跨平台应用和浏览器扩展,方便用户在不同设备上使用。用户可以离线访问已保存的内容,并通过Logseq和Obsidian插件将Omnivore集成到他们的工作流程中。项目完全开源,用户可以自由扩展和部署。
主要功能
- 保存文章和PDF
- 使用Omnivore的移动应用和浏览器扩展保存文章和PDF文件,稍后在无干扰的阅读器中阅读。
- 集中管理RSS订阅和新闻简报
- 将新闻简报直接发送到Omnivore库中,避免分散在多个邮箱中的干扰。
- 组织阅读列表
- 使用标签、过滤器、规则和全文搜索来组织和管理阅读列表,构建适合自己的系统。
- 添加高亮和笔记
- 在阅读时高亮显示关键部分并添加笔记,这些标注会永久保存在文章中,随时访问。
- 与知识管理系统同步
- Omnivore与Logseq、Obsidian和Notion等个人知识管理系统同步,将所有保存的阅读内容、高亮和笔记整合到一个地方。
- 文本转语音
- 在iOS应用中使用文本转语音功能,通过逼真的AI语音朗读保存的文章,减轻眼睛疲劳。
全部功能
- 标记和笔记:用户可以在文章中高亮显示重要内容并添加笔记,方便以后参考。
- 全文搜索:支持对保存的文章进行全文搜索,快速找到需要的信息。
- 分享功能:用户可以轻松地分享他们保存和标记的内容。
- 键盘导航:全键盘导航,提升使用体验。
- 自动保存进度:在长文章中自动保存阅读位置,方便下次继续阅读。
- 邮件添加文章:通过电子邮件添加新闻简报文章(支持Substack)。
- PDF支持:支持保存和阅读PDF文件。
- 跨平台应用:提供基于Node.js和TypeScript的Web应用,原生iOS和Android应用,进步型Web应用(PWA)以及浏览器扩展(Chrome、Safari、Firefox和Edge)。
- 标签功能:支持对文章进行标签分类。
- 离线支持:即使在没有网络连接时也能访问已保存的内容。
- 文本转语音:iOS平台上支持将文章转换为语音播放。
- 插件支持:支持Logseq和Obsidian插件,方便用户在这些平台上使用Omnivore的功能。
- 支持的平台和扩展:
- iOS
- macOS
- Android(预览版)
- Chrome扩展
- Firefox扩展
- Safari扩展
- Edge扩展
技术实现
- 技术栈:
- 后端和前端主要使用TypeScript。
- 前端使用Next.js,并托管在Vercel上。
- 数据获取使用SWR,组件样式使用Stitches,页面可读性提升使用Mozilla Readability。
- iOS应用使用Swift GraphQL生成GraphQL查询,Android应用使用Apollo GraphQL。
- Docker支持:提供了Docker Compose配置,便于本地开发和自托管部署。
- 部署指南:提供详细的本地开发和自托管部署指南,包括Postgres数据库、API服务和内容抓取微服务的配置。