1 个不稳定版本
0.1.0 | 2020年7月16日 |
---|
#20 in #书签
13KB
242 行
bunny
智能书签工具,通过运行自定义命令从浏览器地址栏打开网址
是什么?
"智能书签"?这是什么?我也一样。想象一下,这是一个非常快、非常优雅(如果你愿意的话)的方式将网址输入到浏览器中。你不需要写 reddit.com/r/programmerhumor
,你只需写 rd r programmerhumor
就可以轻松地被重定向到你喜欢的娱乐。
这受到了以下 Facebook的文章 的启发
如何使用
- 克隆仓库(尚未在crates.io上发布)
- 构建它
- 运行服务器
- 为浏览器创建一个自定义搜索引擎并将其指向服务器
服务器在主目录(~/bookmarks.toml
)中查找包含所有书签的文件
编写书签(bookmarks.toml
)
该引擎很简单,所有内容都是用toml
格式编写的,以便于阅读
- 书签文件由
books
组成,它们可以有任何你选择的名称、一个别名和一个默认网址
[twitter]
alias = "tw"
default = "https://twitter.com"
- 文件中的每个
book
都有一个pages
。每个页面都有一个名称、一个前缀和一个网址
[twitter]
alias = "tw"
default = "https://twitter.com"
[twitter.pages]
search = { prefix = "NONE", url = "https://twitter.com/search?q={encoded}" }
profile = { prefix = "@", url = "https://twitter.com/{raw}" }
- 每个
url
都可以包含特殊键,用于处理传递给命令的数据。
键
考虑以下命令:tw rust lang
。以下是键和它们对给定数据的处理。prefix
将被移除,我们剩下处理rust lang
{default}
- 将替换为book
的默认网址 =>https://twitter.com
{encoded}
- 将对数据进行URL编码 =>rust%20lang
{raw}
- 将原始数据传递而不进行编码 =>rust lang
{0}
- 将传递数据的第一个段 =>rust
{1}
- 将传递数据的第二个段 =>lang
- 目前总共有多达
4
个段,因为感觉更多的段数会太多。这些可以用来创建更多自定义命令,例如,一个 Reddit 命令
[reddit] alias = "rd" default = "https://reddit.com" [reddit.pages] whatever = { prefix = "NONE", url = "https://reddit.com/{0}/{1} }
- 上面的命令可以作为
rd r programmerhumor
来访问一个 subreddi,或者作为rd u programmerhumor
来访问一个用户
- 目前总共有多达
前缀
URL 前缀可以是任何你想要的内容,它用于区分每个命令。你可以在搜索时使用 -s
,或者如果不喜欢快捷键,可以使用完整的 search
你甚至不需要在前缀和命令之间使用空格.
-sheyooo
如果前缀被定义为 -s
,则会被分割成 -s heyooo
还有一个特殊的前缀,NONE
,表示命令不会期望前缀,并将所有给定数据编码到 URL 中。
完整的示例可以在 示例文件 中查看
依赖
~9MB
~186K SLoC