buku
是一个功能强大的书签管理器和个人文本迷你网络。
对于喜欢图形界面的用户,bukuserver在本地网络服务器上提供了一个可浏览的前端界面。
当我开始编写它时,我找不到一个灵活的命令行解决方案,它具有私密、便携、可合并的数据库,同时还能与图形界面无缝集成。因此,buku
应运而生。
buku
可以从浏览器导入书签,或从网络获取URL的标题、标签和描述。使用你喜欢的编辑器来添加、编辑和更新书签。通过多种搜索选项(包括正则表达式和深度扫描模式)即时搜索书签,这对于处理URL特别方便。
它可以在Wayback Machine上查找损坏的链接。还有一个彩蛋功能可以随机revisit书签。
它不会进行任何跟踪、隐藏历史记录、过时记录、使用分析或定位。
要立即开始使用,请跳转到快速入门部分。buku
拥有最好的文档之一。man页面附带示例。关于内部细节,请参考操作说明。
buku
也是一个库!有几个相关项目,包括一个浏览器插件。
功能 | 依赖 |
---|---|
语言, SQLite | Python 3.8+ |
HTTPS | certifi, urllib3 |
加密 | cryptography |
HTML | beautifulsoup4, html5lib |
要将URL复制到剪贴板 ,buku
在Linux上使用xsel
(或xclip
),在OS X上使用pbcopy
(默认安装),在Windows上使用clip
(默认安装),在Termux(Android的终端模拟器)上使用termux-clipboard
,在Wayland上使用wl-copy
。如果缺少X11,则识别GNU Screen或tmux的复制粘贴缓冲区。
要从PyPI安装buku及其所有依赖项,运行:
# pip3 install buku
你也可以从包管理器安装buku
。如果可用版本过时,请尝试其他安装方法。
Arch Linux、CentOS、Debian、Fedora、openSUSE Leap和Ubuntu系统可获取自动生成的软件包(仅包含命令行界面组件),这些软件包与最新稳定版本相对应。
注意:CentOS的软件仓库中可能没有python3-beautifulsoup4包。请使用pip3安装。
如果您已安装git,请克隆此仓库。否则,请下载最新稳定版本或开发版本(风险较高)。
安装依赖项。例如,在Ubuntu上:
$ apt-get install ca-certificates python3-urllib3 python3-cryptography python3-bs4
将命令行界面组件安装到默认位置(/usr/local
):
$ sudo make install
要卸载,请运行:
$ sudo make uninstall
如果您想安装到其他位置,可以使用PREFIX
参数。
buku
是一个独立的工具。在包含目录中运行:
$ chmod +x buku
$ ./buku
Bash、Fish和Zsh的Shell自动补全脚本可以在auto-completion/的相应子目录中找到。请参阅您所使用的Shell的手册以获取安装说明。
用法:buku [选项] [关键词 [关键词 ...]]
类似文本迷你网站的书签管理器。
位置参数:
关键词 搜索关键词
常规选项:
-a, --add 网址 [标签, ...]
为网址添加书签,标签用逗号分隔
-u, --update [...] 更新现有书签的字段
接受索引和范围
如果没有编辑选项,则刷新标题和描述
如果没有参数:
- 与搜索一起使用时更新结果
- 否则刷新所有标题和描述
-w, --write [编辑器|索引]
在编辑器中编辑并添加新书签
或在EDITOR中编辑指定索引的书签
如果索引为-1,则编辑最后一个书签
如果没有参数,在EDITOR中编辑新书签
-d, --delete [...] 从数据库中删除书签
接受索引或单个范围
如果没有参数:
- 与搜索一起使用时删除结果
- 否则删除所有书签
-h, --help 显示此信息并退出
-v, --version 显示程序版本并退出
编辑选项:
--url 关键词 书签链接
--tag [+|-] [...] 用逗号分隔的标签
如果没有参数,则清除书签的标签集
'+'追加到标签集,'-'从标签集中移除
--title [...] 书签标题;如果没有参数:
-a:不设置标题,-u:清除标题
-c, --comment [...] 书签的注释或描述
如果没有参数,则清除描述
--immutable N 在自动刷新期间禁用网页获取
N=0:可变(默认),N=1:不可变
搜索选项:
-s, --sany [...] 查找与任何关键词匹配的记录
这是默认的搜索选项
-S, --sall [...] 查找与所有关键词匹配的记录
特殊关键词 -
"blank":标题/标签为空的条目
"immutable":标题已锁定的条目
--deep 匹配子字符串('pen'匹配'opens')
-r, --sreg 表达式 运行正则表达式搜索
-t, --stag [标签 [,|+] ...] [- 标签, ...]
按标签搜索书签
使用','查找与任何标签匹配的条目
使用'+'查找与所有标签匹配的条目
排除' - '后标签的条目
如果没有搜索关键词,则列出所有标签
-x, --exclude [...] 忽略与指定关键词匹配的记录
加密选项:
-l, --lock [N] 使用N次迭代(默认8次)加密数据库
-k, --unlock [N] 使用N次迭代(默认8次)解密数据库
高级功能: --ai 自动从网络浏览器导入书签 Firefox、Chrome、Chromium、Vivaldi、Edge -e, --export 文件 将书签导出为Firefox格式的HTML 如果文件以'.xbel'结尾则导出XBEL格式 如果文件以'.md'结尾则导出Markdown格式 格式:[标题](https://github.com/jarun/buku/blob/master/url <!-- 标签 --> 如果文件以'.org'结尾则导出Orgfile格式 格式:*[[url][标题]] :标签: 如果文件以'.rss'结尾则导出RSS订阅 如果文件以'.db'结尾则导出buku数据库 如果选择搜索结果,则与搜索结果合并 -i, --import 文件 从文件导入书签 支持.html .xbel .json .md .org .rss .db格式 -p, --print [...] 按索引、范围显示记录详情 如果没有参数则打印所有书签 -n显示最后n条结果(类似tail) -f, --format N 限制-p或JSON搜索输出的字段 N=1:URL;N=2:URL、标签;N=3:标题; N=4:URL、标题、标签;N=5:标题、标签; N0(10、20、30、40、50)省略数据库索引 -j, --json [文件] -p和搜索的JSON格式输出。 如果缺少参数则打印到标准输出。 否则写入指定文件 --colors 颜色 设置五字母字符串的输出颜色 --nc 禁用彩色输出 -n, --count N 每页显示N条结果(默认10) --np 不显示子提示符,运行后退出 -o, --open [...] 按索引和范围浏览书签 如果没有参数则打开随机书签 --oa 立即浏览所有搜索结果 --replace 旧 新 将所有旧标签替换为新标签 如果未指定新标签则删除旧标签 --url-redirect 获取URL时,使用永久重定向后的URL (与--export结合时,旧URL作为额外元数据包含) --tag-redirect [标签] 获取导致永久重定向的URL时, 按指定模式添加标签 (如果未指定则使用'http:{}') --tag-error [标签] 获取导致HTTP错误的URL时, 按指定模式添加标签 (如果未指定则使用'http:{}') --del-error [...] 获取URL导致任何(给定的) HTTP错误时,删除/不添加它 --export-on [...] 导出受上述选项影响的记录, 包括删除的信息 (需要--update和--export;可以 提供特定的HTTP响应过滤器) --shorten 索引|URL 从tny.im服务获取缩短的url --expand 索引|URL 展开tny.im缩短的url --cached 索引|URL 从Wayback Machine浏览缓存页面 --offline 不连接网络添加书签 --suggest 添加书签时显示相似标签 --tacit 减少详细程度,跳过一些确认 --nostdin 不等待输入(必须是第一个参数) --threads N 完全刷新时的最大网络连接数 默认N=4,最小N=1,最大N=10 -V 检查可用的最新上游版本 -g, --debug 显示调试信息和详细日志
符号: > url + 评论 # 标签
提示键: 1-N 浏览搜索结果索引和/或范围 O [id|范围 [...]] 在GUI浏览器中打开搜索结果/索引 如果没有参数则切换尝试GUI浏览器 a 在浏览器中打开所有结果 s 关键词 [...] 搜索包含任一关键词的记录 S 关键词 [...] 搜索包含所有关键词的记录 d 匹配子字符串('pen'匹配'opened') r 表达式 运行正则表达式搜索 t [标签, ...] 按标签搜索;如果没有参数则显示标签列表 g 标签列表 id|范围 [...] [>>|>|<<] [记录id|范围 ...] 追加、设置、删除(全部或特定)标签 如果省略记录则按标签列表id搜索 n 显示搜索结果的下一页 o id|范围 [...] 按索引和/或范围浏览书签 p id|范围 [...] 按索引和/或范围打印书签 w [编辑器|id] 编辑并添加或更新书签 c id 将搜索结果索引处的URL复制到剪贴板 ? 显示此帮助 q, ^D, 连续两次回车 退出buku
#### 颜色
`buku`支持自定义颜色。有关如何[自定义颜色](https://github.com/jarun/buku/wiki/Customize-colors)的更多详细信息,请访问wiki页面。
### 快速入门
1. 将`VISUAL`或`EDITOR`导出指向你喜欢的编辑器。请注意,`VISUAL`优先于`EDITOR`。
2. 创建一个更方便的快捷方式。
alias b='buku --suggest'
3. 自动从浏览器导入书签。请事先退出相关浏览器以确保数据库未被锁定。
b --ai
4. 手动添加书签(实践操作)。
b -w
5. 列出带数据库索引的书签。
b -p
6. 关于GUI和浏览器集成(或与你喜欢的书签管理服务同步书签),请参阅wiki页面上的[系统集成](https://github.com/jarun/buku/wiki/System-integration)。
7. 使用fzf进行模糊搜索并在Firefox中打开选择的快速(bash/zsh)命令:
firefox $(buku -p -f 10 | fzf)
firefox $(buku -p -f 40 | fzf | cut -f1)
显示书签预览的POSIX脚本:
```sh
#!/usr/bin/env sh
url=$(buku -p -f4 | fzf -m --reverse --preview "buku -p {1}" --preview-window=wrap | cut -f2)
if [ -n "$url" ]; then
echo "$url" | xargs firefox
fi
编辑并添加一个书签:
$ buku -w
$ buku -w 'gedit -w'
$ buku -w 'macvim -f' -a https://ddg.gg 搜索引擎, 隐私
第一个命令从环境变量EDITOR
中选择编辑器。第二个命令以阻塞模式打开gedit。第三个命令以-f选项打开macvim,并在模板中填充URL和标签。
添加一个简单的书签: $ buku --nostdin -a https://github.com/
GitHub:让我们从这里开始构建 · GitHub
$ buku --nostdin -a https://github.com/ [错误] URL [https://github.com/] 已存在于索引2648
>
: URL, +
: 评论, #
: 标签
标题、描述和标签将从网站获取。Buku只存储唯一的URL,如果URL已存在于数据库中,将会报错:
3. 添加一个带有标签search engine
和privacy
,评论为Search engine with perks
的书签,并从网络获取页面标题:
$ buku -a https://ddg.gg search engine, privacy -c Search engine with perks 336. DuckDuckGo
其中,>
: URL, +
: 评论, #
: 标签
4. 添加一个带有标签search engine
和privacy
以及不可变自定义标题DDG
的书签:
$ buku -a https://ddg.gg search engine, privacy --title 'DDG' --immutable 1 336. DDG (L)
注意URL必须在标签之前。 5. 添加一个无标题的书签(更新时也适用):
$ buku -a https://ddg.gg search engine, privacy --title 6. 从编辑器编辑并更新书签:
$ buku -w 15012014
这将在编辑器中打开现有书签的详细信息以进行修改。必须设置环境变量EDITOR
。
7. 使用新的URL、标签和评论更新索引15012014处的现有书签,从网络获取标题:
$ buku -u 15012014 --url http://ddg.gg/ --tag web search, utilities -c Private search engine 8. 仅为索引15012014处的书签获取并更新标题:
$ buku -u 15012014 9. 仅更新评论为索引15012014处的书签:
$ buku -u 15012014 -c this is a new comment
也适用于--url、--title和--tag。
10. 将带有标签tag 1
或tag 2
的书签导出为HTML、XBEL、Markdown、Orgfile或新数据库:
$ buku -e bookmarks.html --stag tag 1, tag 2 $ buku -e bookmarks.xbel --stag tag 1, tag 2 $ buku -e bookmarks.md --stag tag 1, tag 2 $ buku -e bookmarks.org --stag tag 1, tag 2 $ buku -e bookmarks.db --stag tag 1, tag 2 如果不选择搜索,则导出所有书签。 11. 从HTML、XBEL、Markdown或Orgfile导入书签:
$ buku -i bookmarks.html $ buku -i bookmarks.xbel $ buku -i bookmarks.md $ buku -i bookmarks.org $ buku -i bookmarks.db 12. 仅删除索引15012014处书签的评论:
$ buku -u 15012014 -c 也适用于--title和--tag。不删除书签就无法删除URL。 13. 更新或刷新整个数据库的网页标题:
$ buku -u $ buku -u --tacit(仅显示失败和异常) 此操作可以通过解析获取的页面来更新非不可变书签的标题或描述字段。只有当获取的字段非空时才会更新字段。标签保持不变。 14. 删除索引15012014处的书签:
$ buku -d 15012014
索引15012020移至15012014
最后的索引被移至删除的索引以保持数据库紧凑。添加--tacit
可以无需确认直接删除。
15. 删除所有书签:
$ buku -d 16. 删除一个范围或列表的书签:
$ buku -d 100-200
$ buku -d 100 15 200
17. 在URL、标题或标签中搜索任意关键词kernel
和debugging
的书签:
$ buku kernel debugging
$ buku -s kernel debugging
18. 在URL、标题或标签中搜索所有关键词kernel
和debugging
的书签:
$ buku -S kernel debugging
19. 搜索标记为general kernel concepts
的书签:
$ buku --stag general kernel concepts
20. 搜索匹配任意标签kernel
、debugging
、general kernel concepts
的书签:
$ buku --stag kernel, debugging, general kernel concepts
21. 搜索匹配所有标签kernel
、debugging
、general kernel concepts
的书签:
$ buku --stag kernel + debugging + general kernel concepts
22. 搜索匹配关键词hello
或world
,排除关键词real
和life
,匹配标签kernel
和debugging
,但排除标签general kernel concepts
和books
的书签:
$ buku hello world --exclude real life --stag 'kernel + debugging - general kernel concepts, books' 23. 按字母顺序列出所有唯一标签:
$ buku --stag 24. 执行搜索并更新结果:
$ buku -s kernel debugging -u --tag + linux kernel 25. 执行搜索并删除结果:
$ buku -s kernel debugging -d 26. 使用自定义迭代次数(15)生成密钥来加密或解密数据库:
$ buku -l 15 $ buku -k 15 一次锁定和解锁实例必须指定相同的迭代次数。如果省略,默认为8。 27. 显示索引15012014和范围20-30、40-50的书签详细信息:
$ buku -p 20-30 15012014 40-50 28. 显示最后10个书签的详细信息:
$ buku -p -10 29. 从数据库显示所有书签的实际索引:
$ buku -p $ buku -p | more 30. 替换标签'old tag'为'new tag':
$ buku --replace 'old tag' 'new tag' 31. 从数据库删除标签'old tag': $ buku --replace '旧标签'
添加(或删除)标签 '标签1'、'标签2'到(或从)索引为15012014的书签的现有标签中:
$ buku -u 15012014 --tag + 标签1, 标签2 $ buku -u 15012014 --tag - 标签1, 标签2
在浏览器中打开URL索引为15012014的书签:
$ buku -o 15012014
列出没有标题或标签的书签以便整理:
$ buku -S blank
列出不可变标题的书签:
$ buku -S immutable
缩短URL www.google.com 和索引为20的URL:
$ buku --shorten www.google.com $ buku --shorten 20
在提示符下添加、删除标签(左侧为标签列表索引,右侧为书签索引):
// 将标签列表索引4和6-9的标签添加到书签索引5和2-3的现有标签中 buku (? 获取帮助) g 4 9-6 >> 5 3-2 // 将标签列表索引4和6-9的标签设置为书签索引5和2-3的标签 buku (? 获取帮助) g 4 9-6 > 5 3-2 // 删除书签索引5和2-3的所有标签 buku (? 获取帮助) g > 5 3-2 // 从书签索引5和2-3的标签中删除标签列表索引4和6-9的标签 buku (? 获取帮助) g 4 9-6 << 5 3-2
列出带有彩色输出的书签:
$ buku --colors oKlxm -p
在跟随所有永久重定向后添加书签,但仅当服务器没有响应错误(且没有网络故障)时:
$ buku --add http://wikipedia.net --url-redirect --del-error 2. 维基百科
如果服务器响应永久重定向,则添加带有标签http redirect
的书签,或在错误响应时添加形如http 404
的标签:
$ buku --add http://wikipedia.net/notfound --tag-redirect 'http redirect' --tag-error 'http {}' [错误] [404] 未找到 3. 未找到
更新所有匹配搜索的书签,如果服务器响应永久重定向则更新URL,如果服务器响应HTTP错误400、401、402、403、404或500则删除书签,或在出现任何其他HTTP错误时添加形如http:{}
的标签;然后将受此类更改影响的书签导出到HTML文件中,标记已删除的记录以及被重定向替换的旧URL。
$ buku -S ://wikipedia.net -u --url-redirect --tag-error --del-error 400-404,500 --export-on --export backup.html
更多帮助:
$ buku -h $ man buku
可以使用expect自动化交互工作流。问题#368有一个关于自动导入自动化的工作示例。
使用默认只维护一个实例并从其他实例立即返回的GUI编辑器时,可能会遇到问题。使用适当的编辑器选项以在打开新文档时阻塞调用者。有关gedit的问题,请参见问题#210。
版权所有 © 2015-2024 Arun Prakash Jana <br>
<p><a href="https://gitter.im/jarun/buku"><img src="https://yellow-cdn.veclightyear.com/0a4dffa0/a12659aa-d77a-4230-854a-72a8d30cb7a8.svg?maxAge=2592000" alt="gitter聊天" /></a></p>缺少某个功能?这里有一个持续更新的待办事项列表,列出了已确定的任务。欢迎贡献!请遵循PR指南。
另请参阅我们的文档 <a href="http://buku.readthedocs.io/en/stable/?badge=stable"><img src="https://yellow-cdn.veclightyear.com/0a4dffa0/077d960d-7ded-4f63-8904-6bc7a63a1861.svg?maxAge=2592000" alt="稳定文档" /></a>
实时语音翻译/同声传译工具
Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有 国界。
一键生成PPT和Word,让学习生活更轻松
讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。
深度推理能力全新升级,全面对标OpenAI o1
科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取 信息、解决问题,满足多样化使用场景。
一种基于大语言模型的高效单流解耦语音令牌文本到语音合 成模型
Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。
字节跳动发布的AI编程神器IDE
Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编 写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。
AI助力,做PPT更简单!
咔片是一款轻量化在线 演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。
选题、配图、成文,一站式创作,让内容运营更高效
讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。
专业的AI公文写作平台,公文写作神器
AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告 等材料,提升办公效率,是体制打工人的得力写作神器。
OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。
openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。
高分辨率纹理 3D 资产生成
Hunyuan3D-2 是腾讯开发的用于 3D 资产生成的强大工具,支持从文本描述、单张图片或多视角图片生成 3D 模型,具备快速形状生成能力,可生成带纹理的高质量 3D 模型,适用于多个领域,为 3D 创作提供了高效解决方案。
最新AI工具、AI资讯
独家AI资源、AI项目落地
微 信扫一扫关注公众号