#arxiv #tui #git #用户界面 #终端 #终端界面 #查询API

bin+lib arxivlens

arXiv的终端用户界面(TUI)

1 个不稳定版本

0.1.0 2024年7月31日

命令行工具 中排名 2905

Download history 119/week @ 2024-07-28 5/week @ 2024-08-04

每月下载量 124

MIT 许可协议

200KB
1K SLoC

ArxivLens:arXiv终端用户界面探索器

ArxivLens是一个基于Rust的终端用户界面(TUI)应用程序,帮助您浏览和探索arXiv存储库中的新摘要。这个名称是由AI助手Gemini提议的!

动机

这个项目源于创建一种方便的方式来探索特定类别(如“quant-ph”)中的最新arXiv条目的愿望。目标是复制在arXiv网站上浏览提交的手稿的体验,让您可以浏览摘要并搜索关键词或熟悉的作者。此外,它还作为一个平台,让我可以尝试和学习Rust编程语言。

特性

TUI interface

  • 浏览您选择的类别中的新摘要(默认:“quant-ph”)。
  • 使用-s标志在摘要中突出显示特定的关键词。
  • 通过arXiv查询API在作者列表中搜索您认识的作者(使用-a标志)。

配置

如果存在'$XDG_CONFIG_HOME/arxivlens/config.toml',它将被读取并使用。如果'$XDG_CONFIG_HOME'未设置,则使用 '~/.cache/'。配置文件示例

[query]
category = "quant-ph"

[highlight]
authors = ["Schrodinger", "Becquerel"]
keywords = ["quantum", "Error Correction"]

这里有一些辅助信息

Terminal User Interface to explore arXiv

Usage: arxivlens [OPTIONS]

Options:
  -a, --author <AUTHOR>                        Name of the author to look
  -c, --category <CATEGORY>                    Category to look [default: quant-ph]
  -h, --help                                   Print help
  -V, --version                                Print version

安装

要将此作为CLI安装,您需要安装Rust,然后复制此仓库并使用cargo将项目编译到您的路径中

cargo install --path .

然后您将能够从系统中的任何位置使用命令 arxivlens

许可证

该项目受MIT许可证的许可。

Rust cargo组织

我使用了ratatui的简单模板。项目组织如下

src/
├── arxiv_parsing.rs -> parsing of the XML returned by the arXiv API and search query
├── arxiv_query.rs   -> API for the arXiv API. Construction of the query url and 
├── app.rs           -> holds the state and application logic for the TUI
├── config.rs        -> handles the configuration for the query and the highlights
├── event.rs         -> handles the terminal events (key press, mouse click, resize, etc.)
├── handler.rs       -> handles the key press events and updates the application
├── lib.rs           -> module definitions
├── main.rs          -> entry-point
├── tui.rs           -> initializes/exits the terminal interface
└── ui.rs            -> renders the widgets / UI

依赖项

~11–29MB
~432K SLoC