它是 4chan (https://4chan.org) 的只读客户端,旨在以基于树的格式显示线程和回复。
我发现 4chan 组织回复的方式非常令人迷惑,并且对确定对话流程没有帮助。在 4chan Web 客户端中,回复按照最初发布的顺序显示在平面列表中。
随着线程获得更多回复,很自然地开始形成回复链形式的多个对话。从这里开始,链中的每个后续添加都将添加到按时间顺序排列的大列表中。
这意味着,如果您滚动浏览该列表,您将遇到来自多个回复链的帖子,这些回复链彼此几乎没有任何关系,不断交织在一起,迫使您不断切换上下文,并要求您仔细验证回复是哪个链实际上回复是为了跟上对话。
总而言之,这很烦人。
这就是这个项目存在的原因 - 现在很容易跟踪回复链,因为它实际上已正确显示!对帖子的回复成为其子帖子,并显示得更深一层。这也是 Reddit 构建评论的方式,我相信这是一个非常直观的系统,可以十倍地增强用户体验。
该应用程序是用 Svelte 编写的,几乎完全在客户端运行,使用 nginx 作为 4chan 的 API 服务器的 CORS 代理。您可以运行一个 nginx 容器,该容器既托管应用程序又充当 CORS 代理,使其非常紧凑且易于部署。
该应用程序大小约为38.43 KB
,包括所有 HTML、JS 和 CSS 资源。使用 Gzip,它总共缩小到14 KB
。构建由 Vite 构建系统提供支持,并且使用 TypeScript 在代码中强制执行类型。
每当线程滚动到浏览器视图中时,就会加载线程图像,旨在消除对 4chan API 的垃圾 API 调用。 nginx CORS 代理还将X-Forwarded-For
和X-Real-IP
标头附加到每个请求,以指示请求的真实来源。
为了运行 treechan,您需要 Docker 和 Git。 NodeJS 不需要安装在主机上,因为构建过程已完全容器化,以方便您使用。
要验证您是否已安装 Docker:
$ docker -v
Docker version 20.10.21, build baeda1f82a
$ git -v
git version 2.38.1
Docker 和 git 版本不必匹配,只需确保您拥有最新版本即可。
现在您需要使用 Git 克隆存储库。这对于构建脚本的运行很重要,不要从 GitHub 下载 zip 文件!
$ git clone --depth=1 https://github.com/xxcodianxx/treechan.git
现在,您只需使用附带的run.sh
脚本,它就会为您安装并运行 treechan。
$ ./run.sh
除去网络下载时间,安装速度非常快(大约2秒)。
默认情况下,服务器在端口8080
上运行,但这可以在./run.sh
文件的顶部进行更改。
恭喜,您现在已经运行了 treechan。如果您在本地计算机上执行此操作,您现在可以访问 http://localhost:8080 并享受。
如果您在服务器上执行此操作,只需将localhost
替换为您服务器的 IP。请记住端口转发端口8080
或您选择的端口。