完全原生 + 开源的 Hacker News 阅读器,带集成的待办/已完成追踪功能, 使用 Rust + eGUI 构建 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
coolwulf
V2EX    分享创造

完全原生 + 开源的 Hacker News 阅读器,带集成的待办/已完成追踪功能, 使用 Rust + eGUI 构建

  •  
  •   coolwulf 143 天前 2400 次点击
    这是一个创建于 143 天前的主题,其中的信息可能已经有所发展或是发生改变。

    分享:原生 Hacker News 阅读器,带集成的待办/已完成追踪功能

    大家好!我很高兴分享我开发的一个工具一个使用 Rust 和 egui 构建的原生 Hacker News 阅读器。

    为什么开发这个工具

    作为 Hacker News 的日常读者,我一直面临着如何跟踪感兴趣文章的困扰。浏览器标签堆积如山,书签被遗忘,而且我经常忘记自己已经阅读过哪些内容。我需要一种方式来:

    1. 高效浏览 HN (包括所有板块 - 热门、新帖、Show HN 、Ask HN 、招聘、精选)
    2. 快速将帖子标记为"待办"以便稍后阅读
    3. 阅读完成后将帖子标记为"已完成"
    4. 有效地过滤和搜索内容

    我找不到一个结合所有这些功能的工具,所以我自己开发了一个。这个工具极大地改善了我个人的 HN 阅读工作流程,我想其他人可能也会发现它很有用。

    功能特点

    • 集成待办追踪:将文章标记为"待办"和"已完成",管理您的阅读进度
    • 搜索功能:通过标题、域名或作者过滤文章
    • 多板块浏览:浏览所有 HN 板块(热门、新帖、Show HN 、Ask HN 、招聘、精选)
    • 嵌套评论:以类似 Reddit 的嵌套格式查看评论,首次加载时自动折叠
    • 暗色/亮色模式:适应任何环境,保护您的眼睛
    • 键盘快捷键:以键盘为中心的设计实现高效导航( 1-6 切换标签页,Ctrl+F 搜索)
    • 自动加载:滚动到底部时自动加载更多内容
    • 颜色编码:根据得分对文章进行颜色编码,便于快速浏览
    • 原生应用:快速、响应迅速,并通过本地缓存支持离线工作

    使用技巧

    高效阅读

    1. 使用待办列表:浏览时,点击星号图标将感兴趣的文章添加到收藏夹。这些会显示在左侧待办面板中
    2. 标记已读:阅读完成后,在待办列表中点击"完成"标记,将其移至"已完成"部分
    3. 使用数字快捷键:按 1-6 数字键可以快速在不同标签间切换
    4. 搜索过滤:使用 Ctrl+F 打开搜索功能,在当前板块中按关键词过滤文章

    评论导航

    1. 自动折叠:评论页面会自动折叠所有顶级评论,给您整体概览
    2. 快速展开/折叠:使用 C 键折叠所有评论,Shift+C 展开所有评论
    3. 嵌套导航:点击评论旁边的折叠/展开按钮,查看或隐藏回复

    自定义体验

    1. 切换主题:点击右上角的月亮/太阳图标切换暗色和亮色模式
    2. 收藏夹管理:使用左侧面板中的清除功能整理您的已完成列表
    3. 刷新内容:按住 Shift 键同时点击刷新按钮可以绕过缓存强制刷新

    技术特点

    使用 Rust 和 egui UI 框架构建,使用 SQLite 进行本地存储。应用程序直接抓取 Hacker News HTML 而不是使用官方 API ,以捕获完整的文章上下文。

    截图

    Hacker News Reader 截图

    试用体验

    查看 GitHub 仓库 获取安装说明和源代码。已在 macOS 、Linux 和 Windows 上构建和测试。

    欢迎提供反馈、功能建议或贡献!


    这个项目最初是作为解决我个人 HN 阅读习惯的工具而开始的,但我希望它对其他人也有用。代码采用 MIT 许可,欢迎贡献。

    18 条回复    2025-05-23 12:07:15 +08:00
    coolwulf
        1
    coolwulf  
    OP
       143 天前
    coolwulf
        2
    coolwulf  
    OP
       143 天前
    欢迎大家 Star :p
    sunxfancy
        3
    sunxfancy  
       142 天前
    发到 hacker news 上了吗
    coolwulf
        4
    coolwulf  
    OP
       142 天前
    @sunxfancy 是的
    coolwulf
        5
    coolwulf  
    OP   142 天前
    https://github.com/haojiang99/hacker_news_reader 。刚刚在 Hacker News 的首页上面
    coolwulf
        6
    coolwulf  
    OP
       142 天前
    sunxfancy
        7
    sunxfancy  
       142 天前
    @coolwulf 你可以用你的软件看你的软件的发布信息,然后截图发到 Github 上,这样感觉更有效果
    KMpAn8Obw1QhPoEP
        8
    KMpAn8Obw1QhPoEP  
       142 天前 via Android
    @sunxfancy 好主意
    radishzz
        9
    radishzz  
       142 天前
    头像不错,很立体,跟真的一样
    Brunuh2Ville2
        10
    Brunuh2Ville2  
       142 天前
    加个翻译功能就厉害了(纯英文对多数人是个门槛)
    coolwulf
        11
    coolwulf  
    OP
       142 天前
    @northbrunv 我在考虑用 LLM 加一个自动 Summarize 的功能
    c9wB702Sy09OqLkC
        12
    c9wB702Sy09OqLkC  
       142 天前
    相当于内容管理系统,不仅需要把 hacker news 的 UI 实现一遍,还需要加入一些管理的功能,好像有点复杂了

    可以导出数据吗?用什么格式导出,其他软件能不能导入
    coolwulf
        13
    coolwulf  
    OP
       142 天前
    @Liler 非常容易,数据库是 Sqlite
    yyt6801
        14
    yyt6801  
       142 天前
    已 star
    coolwulf
        15
    coolwulf  
    OP
       140 天前
    写了一个 Landing Page: http://fasthnreader.com/, 更新了分享功能和一些键盘快捷键
    coolwulf
        16
    coolwulf  
    OP
       140 天前
    在 Release 页面我更新了 DMG 安装文件
    midpoint
        17
    midpoint  
       139 天前
    还没有 windows 版? 无法试用
    coolwulf
        18
    coolwulf  
    OP
       139 天前
    @midpoint 已经更新了 Windows exe
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     856 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 21:12 PVG 05:12 LAX 14:12 JFK 17:12
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86