前几天发过一个帖子,https://www.v2ex.com/t/919776 征集到了一些工具和已有的在线服务,折腾下来都不满意,但是意外的发现了有专门做主要内容提取的前端库,比如 mozilla 的 readability 。
我首先排除了手动保存、异步抓去(登录态动态加载的会失败),然后排除本地方案,因为有多台设备
我的现状是:
- 使用 singlefile 插件保存 html 到手搓的 webdav 服务
- webdav 服务会保存 html 到本地文件,同时提供一个类似 nginx 文件列表的界面查看文件,点击可以直接打开
- webdav 服务服务调用 readability 库提取 singlefile 生成 html 的主要内容、标题、原地址、文件路径提交到全文索引,这样能保证需要登录的和动态加载的也能提取到内容
- 全文索引使用 zincsearch ,一个 Go 开发的,类似 es 的轻量级索引,自带一个简易 webui 手动搜索找到文件路径和原地址
想做的是:
- webdav 保存文件+提交索引这块优化下,犹豫要不要使用数据库( sqlite 、mysql 等)记录状态,方便重建索引等
- readability 库是用 nodejs 写的,很多年没写 node 了,感觉现在写的代码不够好
- 尝试 readability 以外的内容提取库,比如 https://github.com/postlight/parser
-
基于 zincsearch 的数据提供一个类似搜索引擎的界面,功能需要:
- 产品化的搜索界面,类似 https://demo.historio.us/search/ Google 这样,只是内容是私有的
- 搜索后当前页面弹出预览,使用 readability 提取的内容(可能需要截断)
- 搜索后跳转打开网页原地址
- 搜索后跳转打开保存的 singlefile 生成的 html 文件(可能原地址失效了)
- 可能需要给 singlefile 提交一些功能 pr ,比如保存到 webdav 的时候提供更多的信息
所以需要支持的是:
- 前端&node:搜索界面开发,内容提取库开发或封装
- 熟悉 Go:相关接口开发,这块我自己就可以,帮忙 review 或者偶尔分担下
- 熟悉搜索:可能的话想基于 bluge 或 bleve 直接构建索引部分,减少一个组件
- 熟悉 chrome 扩展:singlefile webdav 部分功能定制(可能)或者直接向上游提 pr
- 其他:多提建议、试用
我会新建一个 github 组,用来放新写的代码,我也会把我已有的成果:webdav 、readability 封装开源出来,这些代码大概率需要重写。
做这些的初衷,就是想把浏览过的网页保存下来,方便以后万一需要再看(所以全文索引很重要),防止原地址失效,或者失去查看的权限和条件等。
希望不会被吐槽白嫖,以及需要征集项目和组名称。