soi
は golang
製の CLIによるブックマークマネージャです。CLIによる快適な操作が可能です。
データはローカルストレージに保存されます。このディレクトリは soi-dir
と呼ばれ、${HOME}/.soi
が割り当てられます。
soi-dir
を Dropbox, GoogleDrive等で連携したり、git連携することで異なるPC間で同期することが可能です。
また、データは簡単なファイルツリーと jsonファイルで構成されているため、テキストファイルとして複製・移動等の編集をCLI越しに行うことが可能です。
Note: 現状 MacOS 環境にしか対応していません。
$ go install
$ go install github.com/koooyooo/soi-go@latest
${HOME}/.soi/config.json
で設定します。
{
"default_bucket": "default",
"default_repository": "file",
"default_browser": "firefox"
}
default_browser
の選択肢はfirefox
|chrome
|safari
です
(設定例)
$ mkdir "${HOME}/.soi" && cat << EOS > "${HOME}/.soi/config.json"
{
"default_bucket": "default",
"default_repository": "file",
"default_browser": "firefox"
}
EOS
soi
と打ち込むと soi>
形式のプロンプトが立ち上がります。
$ soi
soi>
add
(追加) コマンドでブックマークを追加します
- ブックマークには分類用のディレクトリと識別用の名前を指定可能です。それぞれ
{dir}
{name}
で指定します。これらは省略可能です。
soi> add {dir} {name} https://www.google.com
#
で開始された用語はタグとなります- タグは後述の
list
,dig
コマンドにおける絞り込みで活用可能です。
- タグは後述の
soi> add {dir} {name} https://www.google.com #search #entry
オプションで各要素を明示的に指定できます。
-d
オプションでディレクトリを明示的に指定できます- 省略時のデフォルトディレクトリは
new
です- ディレクトリは
/
区切りで階層的に表現することも可能ですsoi> add -d search https://www.google.com
-n
オプションで名前を明示的に指定できます-n
オプションが無い場合のデフォルト値は 対象URL内の<title>
要素ですsoi> add -n google https://www.google.com
list
コマンドで ブックマークをリストアップし、絞り込み、最後に選択することが可能です。
Tab
(Shift + Tab
)キーや↑
・↓
キーで対象を選択します
soi> list
adf46ead [ 10 00.0] api/API設計ガイド [#guide #api]
a73764ed [ 1 00.0] books/GooglePlay-Audiobooks
46734e6c [ 6 00.0] contents/MDN [#guide]
- ディレクトリや名前の一部, タグ名をタイプすることで対象の絞り込みを行います
soi> list MDN
46734e6c [ 6 00.0] contents/MDN [#guide]
soi> list #guide
adf46ead [ 10 00.0] api/API設計ガイド [#guide #api]
46734e6c [ 6 00.0] contents/MDN [#guide]
- 選択した行で
Enter
を押下すると、対象のブックマークをブラウザで開きます
Note: リスト時にブラウザ指定オプションを付けることで指定したブラウザが開きます。それ以外の場合は設定ファイルで指定したデフォルトブラウザが起動します。
-c
chrome
-f
firefox
-s
safari
Note: リスト時にソート指定オプションをつけることで指定した順にソートされます。
-n
閲覧回数-a
追加日時(新しい順)-v
閲覧日時(新しい順)
dig
コマンドで、ディレクトリを階層的に探索します。
list
が全体検索を行うイメージなのに対し、digは階層(ディレクトリ)を掘り下げてゆくイメージです。
soi> dig
search/
sns/
Tab
キーや↓
キーでディレクトリを選択します- 選択した状態で
→
を選ぶと内部要素が提示されます
soi> dig search/
search/google.json
search/yahoo.json
Enter
キーを押下すると、ブラウザでブックマークを開きます
cb
コマンドで バケットを切り替えます。バケットとはブックマークをコンテキスト毎に整理するためのもので、例えば work
, hobby
等です。
cb
コマンドに続けてバケット名を入力します- 初回は既存のバケットが無いため新規に作成した上で切り替えます
soi> cb hobby
create & change current bucket: hobby
- 既存のものがあれば、単純に切り替えます
soi> cb hobby
change current bucket: hobby
- 引数なしで実行すると、現在のバケットを確認できます
soi> cb
current bucket: [hobby]
quit
コマンドで soi
プロンプトを抜けることができます
soi> quit
$