Using bubbletea and libgloss to write a web favorates handler for command line usage.
It's still in the development stage, and I'm dealing with problems with the UI components. Code comments and documentation will be written soon. Bugs are being fixed along the way!
show.mp4
Have a nice UI, customization of UI components'position, maybe drag with mouse and store the new position parameter
Add/delete web ✅
Could add description for each web ✅
Multiple name alias for each web page ✅
Scroll bar
Open a web page through target web browser ✅
Icon setting for each web page
Fuzzy finder ✅
Classification support
Vim mode for moving around and search space ✅
Maybe customization for keybindings
YMAL configuration file ✅
Custom sort way: folder, label
Flip between description and link ✅
Copy the link to clipboard ✅
Edit link and description in real time ✅
Basic help info on the top, could be hidden ✅
Check whether the keybindings is conflict
Configuration file should be placed at "~/.config/web-tree/" ✅
Every tree have a storage file? data 目录, 每创建一个 tree, 就添加一个文件 ✅
Check configuration
Move a node to another position ✅
Browser list show ✅
Sort method, tree? node? label and so on.
git clone https://github.com/zKurisu/web-tree.git
cd web-tree
go build .
./web-treeYou can copy the binary file to local path:
cp ./web-tree/web-tree ~/.local/bin/Press specific keys to enter different modes:
| Mode | Key | Desc |
|---|---|---|
| Display | ESC | From any mode |
| Search | Ctrl+n | From any mode. |
| AdSearch | Ctrl+u | From any mode |
| Browser | Ctrl+o | From any mode |
| Add | Ctrl+a | From display mode |
| Edit | Ctrl+e | From display mode |
Fuzzy find a web node:
<Tab>for autocompletion<Ctrl+j>to move down<Ctrl+k>to move upEnterto jump to specific node
Using tree path (web folder), links, alias, and labels to find a node:
<Tab>for autocompletion<Ctrl+j>to move down<Ctrl+k>to move upEnterto jump to specific node
Add new subtree (web folder) or node:
<Ctrl+j>to move down<Ctrl+k>to move upEnterto jump to specific node
Chose browser for opening a web link, default value is the first one setting in configuration file:
Navigate subtrees and nodes:
hfor leftlfor rightkfor upjfor downctrl+xfor opening linkctrl+efor editing nodectrl+tfor toggling display info
Open tui
webtreeOpen with browser in conf file by alias
webtree --tree=<name> --node --alias=<alias>Open with browser in conf file by link
webtree --tree=<name> --node --link=<url>Target browser
webtree --tree=<name> --node --alias=<alias> --browser=firefoxAdd a new web folder:
webtree add --tree=<name> Add a new web folder with sub folder:
webtree add --tree=<name>/<subname>/<subsubname> Add multiple tree
webtree add --tree=<name>/<subname>/<subsubname>,<another>Add a new node to a tree (at lease url and alias):
webtree add --tree=<name>/<subname> --node --link=<url1>,<url2> --alias=<alias1>,<alias2> --desc=<desc1>,<desc2> --label=<label1>,<label2>Delete a tree
webtree del --tree=<name>/<subname>Delete multiple trees
webtree del --tree=<name>/<subname>,<another>Delete a node by url
webtree del --tree=<name> --node --link=<url>Delete a node by alias
webtree del --tree=<name> --node --alias=<alias>Edit a tree name
webtree edit --tree=<name> --tname=<newname>Edit a node chosen by link
webtree edit --tree=<name> --node --link=<url> --nlink=<newlink> --nalias=<newalias> --ndesc=<newdesc> --nlabel=<newlabel>Edit a node chosen by alias
webtree edit --tree=<name> --node --alias=<alias> --nlink=<newlink> --nalias=<newalias> --ndesc=<newdesc> --nlabel=<newlabel>Move a tree as a subtree of another tree
webtree move --tree=<name> <another tree name>Move a node to another tree
webtree move --tree=<name> --node --alias=<alias> <another tree name>List all trees
webtree list treeList all nodes
webtree list nodeList all tags/labels
webtree list labelList all styles
webtree list styleShow detail of a tree
webtree show --tree=<name>Show detail of a node
webtree show --tree=<name> --node --link=<url>or:
webtree show --tree=<name> --node --alias=<alias>Show detail of a label
webtree show --label=<name>