program-in-chinese / overview

中文编程的历史、现状和展望。issue 中进行相关问题的讨论.
https://zhuanlan.zhihu.com/codeInChinese
GNU General Public License v3.0
383 stars 34 forks source link

基于 git 的客户端内容聚合工具 #176

Closed nobodxbodon closed 3 days ago

nobodxbodon commented 4 years ago

v2ex原帖

所有的数据都在 git,不依赖 github。一个索引库,所有人可以将自己的博客 repo 的 url 提交到这个索引库。索引库只保存 url,不保存博客数据内容。

一个客户端,可以把索引库记录的所有或者部分博客 repo pull 到本地,进行本地搜索、浏览。

类似,可以提供评论功能。即使对其他博客( A )的评论内容,也可以保存在自己博客的 repo B (需要某种格式区分评论和博文),只要博客 A 作者 pull 了 B 到本地,就可以看到对自己博文的评论。

一些优势:

1,不依赖某一个博客发布平台 2,自己可以很方便定制搜索、过滤机制 3,对自己创作的博文和评论数据有更多控制

【8 月 27 日补】 一些其他可能扩展出的用途:

nobodxbodon commented 4 years ago

q群中一些集思广益:

基于Gitee+Hexo搭建个人博客 他这个搜索是把所有连接标题引文都放进了一个xml

这个倒可以先拆一下做成几个小模块

1 爬repo列表(各种博客模板作为特征 1.1 人工筛选repo,或审核blog主提交的repo... 2 爬单个repo的所有md文件,加上它们的媒体内容(图片外链等)解析,并替换链接到本地 4 格式修复(数学公式啦 UML图啦、排版错乱啦、表格啦、数据啦、在线视频等嵌入式内容啦) 5 自制本地博客程序 5.1 分类索引体系,建立数据库 (按作者、源repo、标签,通用分类,高频关键词、标题-摘要-全文等等) 5.2 设计页面布局,网站框架。。。 5.2 自制文章统一排版然后按格式渲染 (好在md标准还算一致) 5.3 加入搜索界面。。

将博客部署到星际文件系统(IPFS) | reuixiy

在进一步讨论实现设计之前,打算先画些功能效果图看看样子。

nobodxbodon commented 4 years ago

以这两个包含博客数据的 git 库为例,描述该工具设想中的最基本功能。

库 url 本地数据量(.git 目录大小) 下载时间
林一二的开放记忆 90 MB(68 MB) 18 秒
用中文编程 163 MB (59 MB) 14 秒

基本功能

启动

工具安装时,自带一个索引,包含 git url 列表,默认使用 git pull 将列表中所有库下载到本地。接下去的操作都在本地进行,不依赖任何在线服务。

博客浏览

可以概览博客列表,包含一些基本数据: 2020-08-20_概览

点击进入博客,与网页版同样浏览: 2020-08-20_linOneTwo 2020-08-20_codeInChinse

搜索

根据关键词搜索(效果借用 gg 搜索) 2020-08-20_搜索

评论

可在任何博文下添加评论与回复其他评论,所有该工具的用户都可以看到。无需任何注册服务。 2020-08-20_评论

发评论者可以删除、修改评论,也可以查看所有发布过的评论。

更新通知

用户可以设置关注某个博客或博文,当博客发布新博文、博文有新评论甚至内容修改就会获得通知。

未来功能

可方便地部署为服务

便于有资源的用户做成领域搜索引擎。同时,提供开放接口,便于用户和各服务间互相调用(可以有偿)。

深化搜索

参考通用搜索引擎。另外,用户可以自定义搜索、排序等算法。

设置过滤规则

基于搜索功能,设置规则对内容进行过滤。而且可以与更新通知结合。比如:设置 “vue”,如果某天任何博主有 vue 相关博文发表,就会提示用户。

也可以选择过滤某些博客不出现在搜索结果,或自动隐藏某些评论。

更多评论管理

参考

snomiao commented 4 years ago

数据体积

库 url 本地数据量 下载时间
林一二的开放记忆 90 MB 18 秒
用中文编程 163 MB 14 秒

一个博客完整pull下来平均 100多M 看起来还是有点大了,考虑聚合的博客多起来的情况,也是个不小的存储压力(虽然现今存储价格是比较便宜的),如果能把框架去掉,只Pull markdown的部分和内含的媒体的话体积应该会小很多。。。

评论功能

评论可在任何博文下添加评论与回复其他评论,所有该工具的用户都可以看到。无需任何注册服务。

能不能通过API或之类的方式评到博客作者本人的博客里呢?按现在的设计这样聚合工具不但抢了阅读的点击流量,还抢了评论的流量,这样对被聚合原博客不太友好。

至于其它方面

基本可以参考RSS阅读器的设计

nobodxbodon commented 4 years ago

@snomiao 多谢!看了一下其实框架相关的脚本占空间相对较小,主要的额外数据是.git 文件夹,一个甚至占到 2/3 多(上上楼表格更新)。但.git 数据是更新通知等等功能必需,所以一时没啥更好办法。现在的想法:

  1. 博文原创者从比例上说还是极少数,更多的(感觉数量在十倍以上)是评论,而评论一般以短文字为主。
  2. 先做着看,在 scale up 的过程中,再集思广益想优化的办法,短期内很可能是在圈子里这几十个人先开始玩,这样充其量十个 G 的空间即使纯本地也还是毛毛雨。
  3. 今后希望不是一家,而是不同的圈子(甚至都不是 IT 圈)分别搞不同的索引,某个圈子搞的足够大了的话自然有动力去找资源做在线服务。

能不能通过API或之类的方式评到博客作者本人的博客里呢?按现在的设计这样聚合工具不但抢了阅读的点击流量,还抢了评论的流量,这样对被聚合原博客不太友好。

之前倒没特别考虑和原博客集成的问题。这样的话还是至少会多一道注册的工序(不同博客平台还不同,而且很可能有防刷屏机制啥的,要验证这那的麻烦事情)。觉得短期内这个问题还不大突出,真要是用户多起来的话再考虑吧。其实阅读的点击流量应该影响不大。毕竟大多数习惯通过搜索引擎找到博客的不会特地用这个工具,第一批用户估计会是乐于原创但又苦于博客平台的各种限制和推荐机制的(比如我 lol)。在相当长时期内,这个工具很可能只是在小众范围使用。

基本可以参考RSS阅读器的设计

嗯,是要深入了解一下。印象里 RSS 应该是分发,而不涉及评论吧?设想的功能里关于评论的部分还很粗略,也许要细化一下效果图,让感受更直观一些。

nobodxbodon commented 4 years ago

才意识到可以扩展到各种 git 库,比如 readme 文件也可以像博客一样渲染,今后还可以添加插件支持,用于渲染各种文件格式,甚至于 office 文件等等。

话说回来,继续对功能进行细化。仍以楼上两个 repo 为例。为避免饼画的太大,下面仅专注基本功能。

新版本效果见此页,多数图未变,主要修改在评论部分。

nobodxbodon commented 3 years ago

打算从以 markdown 格式在 git 平台上公开发布的博客入手,功能简介 初稿在此,欢迎意见建议。

nobodxbodon commented 3 days ago

原型 演示中,欢迎补充仓库列表。