31 个版本
0.13.4 | 2023年10月21日 |
---|---|
0.13.2 | 2023年6月4日 |
0.12.0 | 2023年2月3日 |
0.11.0 | 2022年10月7日 |
0.3.1 | 2021年3月30日 |
在 命令行工具 中排名 45
235KB
5K SLoC
hackernews-TUI
hackernews_tui
是一个快速且 可自定义 的应用程序,用于在终端中浏览 Hacker News。
hackernews_tui
使用 Rust 编写,并借助 Cursive TUI 库。它使用 HN Algolia APIs 和 HN 官方 APIs 获取 Hacker News 数据。
目录
安装
二进制文件
应用程序的预构建二进制文件可在 发布页面 找到。
使用 cargo
通过运行 cargo install hackernews_tui --locked
从 crates.io 安装最新版本。
Docker 镜像
您可以通过运行以下命令从 master
分支下载最新构建的二进制镜像:
docker pull aome510/hackernews_tui:latest
然后运行
docker run -it aome510/hackernews_tui:latest
来运行应用程序。您还可以在运行镜像时使用本地配置文件,通过运行以下命令实现:
docker run --rm -v ${CONFIG_FILE_PATH}:/app/hn-tui.toml -it aome510/hackernews_tui:latest
其中 ${CONFIG_FILE_PATH}
是本地配置文件的路径。
从源码构建
运行
git clone https://github.com/aome510/hackernews-TUI.git
cd hackernews-TUI
cargo build --release
来构建应用程序,然后运行
./target/release/hackernews_tui
来运行应用程序,或
ln -sf $PWD/target/release/hackernews_tui /usr/local/bin
将可执行二进制文件链接到 /usr/local/bin
文件夹。
Windows
通过 Scoop
运行 scoop install hackernews-tui
来安装应用程序。
macOS
通过 MacPorts
运行 sudo port install hackernews-tui
来安装应用程序。
Arch Linux
运行 yay -S hackernews_tui
来以 AUR 包的形式安装应用程序。
NetBSD
使用包管理器
pkgin install hackernews-tui
从源码构建
cd /usr/pkgsrc/www/hackernews-tui
make install
示例
演示
hackernews_tui
v0.9.0
的演示视频可在 youtube 和 asciinema 上找到。
故事视图
文章视图
搜索视图
评论视图
默认快捷键
在每个 View
中,按 ?
查看支持的快捷键列表及其功能。
以下部分将列出应用程序的默认快捷键,这些快捷键可以通过更改用户配置文件中的 键映射 进行自定义。
有关配置应用程序键映射或定义自定义快捷键的更多信息,请参阅 配置文档。
全局快捷键
命令 | 描述 | 默认快捷键 |
---|---|---|
open_help_dialog |
打开帮助对话框 | ? |
close_dialog |
关闭对话框 | esc |
quit |
退出应用程序 | [q,C-c] |
goto_previous_view |
转到上一个视图 | [backspace,C-p] |
goto_search_view |
转到搜索视图 | [/,C-s] |
goto_front_page_view |
转到首页视图 | F1 |
goto_all_stories_view |
转到所有故事视图 | F2 |
goto_ask_hn_view |
转到 Ask HN 视图 | F3 |
goto_show_hn_view |
转到 Show HN 视图 | F4 |
goto_jobs_view |
转到工作视图 | F5 |
Edit shortcuts
命令 | 描述 | 默认快捷键 |
---|---|---|
move_cursor_left |
将光标移到左边 | [left,C-b] |
move_cursor_right |
将光标移到右边 | [right,C-f] |
move_cursor_to_begin |
将光标移到行的开头 | [home,C-a] |
move_cursor_to_end |
将光标移到行的末尾 | [end,C-e] |
backward_delete_char |
删除前面的一个字符 | backspace |
滚动快捷键
命令 | 描述 | 默认快捷键 |
---|---|---|
up |
向上滚动 | [k,up] |
down |
向下滚动 | [j,down] |
page_down |
向上滚动半页 | [d,page_down] |
page_up |
向下滚动半页 | [u,page_up] |
top |
滚动到顶部 | [g,home] |
bottom |
滚动到底部 | [G,end] |
每个 View
的快捷键
故事视图快捷键
命令 | 描述 | 默认快捷键 |
---|---|---|
next_story |
聚焦下一个故事 | j |
prev_story |
聚焦上一个故事 | k |
next_story_tag |
转到下一个故事标签 | l |
previous_story_tag |
转到上一个故事标签 | h |
goto_story |
聚焦第 {story_id} 个故事 | {story_id}g |
goto_story_comment_view |
转到与聚焦故事关联的评论视图 | enter |
open_article_in_browser |
在浏览器中打开聚焦故事的文章 | o |
open_article_in_article_view |
在文章视图中打开聚焦故事的文章 | O |
open_story_in_browser |
在浏览器中打开聚焦的故事 | s |
next_page |
转到下一页 | n |
prev_page |
转到上一页 | p |
cycle_sort_mode |
循环故事排序模式 | d |
文章视图快捷键
命令 | 描述 | 默认快捷键 |
---|---|---|
open_article_in_browser |
Open article in browser | a |
open_link_in_browser |
在浏览器中打开第 {link_id} 个链接 | {link_id}o |
open_link_in_article_view |
在文章视图中打开第 {link_id} 个链接 | {link_id}O |
open_link_dialog |
打开链接对话框 | l |
链接对话框快捷键
命令 | 描述 | 默认快捷键 |
---|---|---|
next |
聚焦下一个链接 | [j,down] |
prev |
聚焦上一个链接 | [k,up] |
open_link_in_browser |
Open in browser the focused link | [o,enter] |
open_link_in_article_view |
在文章视图中打开聚焦的链接 | O |
评论视图快捷键
命令 | 描述 | 默认快捷键 |
---|---|---|
next_comment |
聚焦下一个评论 | j |
prev_comment |
聚焦上一个评论 | k |
next_leq_level_comment |
聚焦下一个级别或更低的评论 | l |
prev_leq_level_comment |
聚焦上一个级别或更低的评论 | h |
next_top_level_comment |
聚焦下一个顶级评论 | n |
prev_top_level_comment |
聚焦上一个顶级评论 | p |
parent_comment |
聚焦父级评论(如果存在) | u |
toggle_collapse_comment |
切换聚焦项的展开/折叠状态 | tab |
vote |
切换聚焦项的投票状态(需要认证) | v |
open_article_in_browser |
在浏览器中打开讨论的文章 | a |
open_article_in_article_view |
在文章视图中打开讨论的文章 | A |
open_story_in_browser |
在浏览器中打开讨论的故事 | s |
open_comment_in_browser |
在浏览器中打开聚焦的评论 | c |
open_link_in_browser |
在浏览器中打开聚焦评论中的 {link_id}-th 链接 | {link_id}o |
open_link_in_article_view |
在文章视图中打开聚焦评论中的 {link_id}-th 链接 | {link_id}O |
搜索视图快捷键
在 SearchView
中,有两种模式:Navigation
和 Search
。默认模式是 Search
。
Search
模式类似于 Vim 的插入模式,用户可以输入查询字符串。
Navigation
模式允许 SearchView
类似于 StoryView
处理匹配的故事。
SearchView
特定的键盘快捷键
命令 | 描述 | 默认快捷键 |
---|---|---|
to_search_mode |
从 Navigation 模式进入 Search 模式 |
i |
to_navigation_mode |
从 Search 模式进入 Navigation 模式 |
<esc> |
配置
默认情况下,hackernews-tui
会查找用户配置目录内的 hn-tui.toml
用户定义配置文件
- 在用户的配置目录中
- 用户主目录内的
.config
目录中
如果没有找到这样的文件,应用程序将回退到使用一组默认配置。
用户也可以在运行应用程序时通过使用 -c
或 --config
选项来指定配置文件的路径。
hackernews_tui -c ~/.config/hn-tui.toml
身份验证
用户可以通过在 hn-auth.toml
文件中指定 username
和 password
来验证他们的账户
username=""
password=""
默认情况下,认证文件应该位于通用配置文件(hn-tui.toml
)相同的文件夹中,可以通过指定 -
或 --auth
选项来配置。
日志记录
hackernews-tui
使用 RUST_LOG
环境变量来定义应用程序的 日志级别(默认为 INFO
)。
默认情况下,应用程序将在 用户的缓存目录 内创建 hn-.log
日志文件,可以通过指定 -
或 --log
选项来配置。
路线图
- 使所有命令可定制
- 添加一个
View
以在终端的阅读模式下阅读链接的故事。可以在此找到可能的建议列表这里 - 添加命令以导航父级评论并折叠评论
- 将所有配置选项设置为可选
- 集成HackerNews官方API,用于实时更新、懒加载评论和排序故事
- 懒加载评论
- 首页故事类似于官方网站
- 实时更新
- 实现更智能的懒加载评论功能
- 添加认证支持以允许
- 认证
- 点赞/踩
- 添加评论
- 发布
- 改进应用程序的UI
- 改进应用程序的整体外观
- 包含有用的字体高亮显示
- 重写主题解析器以支持更多主题,并允许从已知的颜色方案解析主题
- 添加一些额外的过渡效果
- 改进键绑定处理器
- 允许将多个键绑定到单个命令
- 添加前缀键支持(类似于Emacs的键链 -
C-x C-c ...
)
依赖项
~19–33MB
~458K SLoC