Github: https://github.com/jarun/Buku
ブク
ぶっ!
前書き
bukuは、Python3とSQLite3で書かれた強力なブックマークマネージャです。 私がそれを書いてみると、ブラウザの統合と一緒に、ポータブルでポータブルなマージ可能なデータベースを備えた柔軟なcmdlineソリューションを見つけることができませんでした。 したがって、 Buku
(私の息子のニックネームの後、私の言葉で心臓に近い意味)。
buku
は、ブックマークされたWebページのタイトルを取得し、追加のコメントとタグとともに保存します。 お気に入りのエディタを使用して、ブックマークを作成および更新できます。 正規表現やディープスキャンモード(特にURL用)を含む複数の検索オプションを使用すると、すべてのブックマークを即座に見つけることができます。 複数の検索結果をブラウザで同時に開くことができます。
GUIの統合(またはお気に入りのブックマーク管理サービスとのブックマークの同期)については、「 システム統合 」のwikiページを参照してください。 あなたが端末を好むなら、 シェル補完スクリプトのおかげで、あなたはオプションのいずれかを覚える必要はありません。 ランダムに忘れられたブックマークも再訪するイースターエッグがあります。
私たちには最高のドキュメントがあります。 例から始めることができます。 Bukuはあなたを追跡するには忙しいです – 隠された歴史、時代遅れの記録、利用分析やホームリングはありません。 プロジェクトの仕組みやプロジェクトに貢献する方法の詳細については、 操作上の注意の wikiページを参照してください。
buku
をベースにしたいくつかのプロジェクトがあり、ブラウザプラグインも含まれています。
貢献者が必要です。 私たちは小さなフレンドリーなチームで、喜んでお手伝いします。 特定されたタスクについては、 ToDoリストをご覧ください。 PRガイドラインについてはwikiにアクセスしてください。
スマートで効率的なターミナルユーティリティを愛する? 私のリポジトリを探検してください。 彼らがあなたを助けるなら、私にコーヒーを買う。
目次
特徴
- 軽量でクリーンなインターフェイス、カスタムカラー
- テキストエディタの統合
- ページタイトルを取得、編集します。 タグとメモを追加する
- 強力な検索モード(正規表現、部分文字列…)
- フライモードスイッチによる連続検索
- ブラウザーでブックマークと検索結果を開く
- 手動暗号化のサポート
- Firefox、Google Chrome、Chromiumからの自動インポート
- ブックマークをHTMLまたはMarkdownからインポート/エクスポートする
- URLの短縮と展開
- リダイレクトを使用したスマートタグ管理(>>、>、<<)
- ポータブル、マージ可能なデータベースは、システム間で同期する
- マルチスレッドのフルDBリフレッシュ
- シェル補完スクリプト、便利な例のマニュアルページ
インストール
依存関係
特徴 | 依存 |
---|---|
スクリプト言語 | Python 3.4以降 |
HTTP(S) | urllib3 |
暗号化 | 暗号 |
インポートされたブラウザのHTML | 美しさ4 |
pip3を使用してパッケージの依存関係をインストールするには、次のコマンドを実行します。
$ sudo pip3 install urllib3 cryptography beautifulsoup4
またはUbuntu上で:
$ sudo apt-get install python3-urllib3 python3-cryptography python3-bs4
プロンプトでurlをクリップボードにコピーするには、 xsel
はLinuxではpbcopy
、OS Xではpbcopy
(デフォルトではインストール済み)、Windowsではclip
(デフォルトではインストール済み)を使用します。
パッケージマネージャーから
- AUR
- Debian
- Fedora (
dnf install buku
) - FreeBSD (
pkg install www/py-buku
) - Gentoo (
emerge buku
) - 自作
- NixOS (
sudo nix-env -i buku
buku ) - OpenBSD (
pkg_add buku
) - openSUSE
- PyPi (
sudo pip3 install buku
) - Ubuntu
- Ubuntu PPA
- Void Linux (
sudo xbps-install -S buku
)
リリースパッケージ
Arch Linux、CentOS、Debian、Fedora、openSUSE Leap、Ubuntuのパッケージは、 最新の安定版リリースで利用できます。
注:CentOSはreposにpython3-beautifulsoup4パッケージを持っていないかもしれません。 pip3を使用してインストールします。
ソースから
gitをインストールしている場合は、このリポジトリをクローンします。 それ以外の場合は、 最新の安定版または開発版 ( 危険 )をダウンロードしてください。
デフォルトの場所( /usr/local
)にインストールする:
$ sudo make install
削除するには、次を実行します。
$ sudo make uninstall
PREFIX
は、別の場所にインストールする場合に備えてサポートされています。
スタンドアロンで実行する
buku
はスタンドアロンのユーティリティです。 含まれているディレクトリから、次のコマンドを実行します。
$ chmod +x buku.py
$ ./buku.py
シェルの完成
Bash、Fish、Zshのシェル補完スクリプトは、 auto-completion /のそれぞれのサブディレクトリにあります。 インストール手順については、シェルのマニュアルを参照してください。
使用法
コマンドラインオプション
usage: buku [OPTIONS] [KEYWORD [KEYWORD ...]]
Command-line bookmark manager with browser integration.
POSITIONAL ARGUMENTS:
KEYWORD search keywords
GENERAL OPTIONS:
-a, --add URL [tag, ...]
bookmark URL with comma-separated tags
-u, --update [...] update fields of an existing bookmark
accepts indices and ranges
refresh the title, if no edit options
if no arguments:
- update results when used with search
- otherwise refresh all titles
-w, --write [editor|index]
open editor to edit a fresh bookmark
edit last bookmark, if index=-1
to specify index, EDITOR must be set
-d, --delete [...] remove bookmarks from DB
accepts indices or a single range
if no arguments:
- delete results when used with search
- otherwise delete all bookmarks
-h, --help show this information and exit
-v, --version show the program version and exit
EDIT OPTIONS:
--url keyword bookmark link
--tag [+|-] [...] comma-separated tags
clear bookmark tagset, if no arguments
'+' appends to, '-' removes from tagset
--title [...] bookmark title; if no arguments:
-a: do not set title, -u: clear title
-c, --comment [...] notes or description of the bookmark
clears description, if no arguments
--immutable N disable title fetch from web on update
N=0: mutable (default), N=1: immutable
SEARCH OPTIONS:
-s, --sany [...] find records with ANY matching keyword
this is the default search option
-S, --sall [...] find records matching ALL the keywords
special keywords -
"blank": entries with empty title/tag
"immutable": entries with locked title
--deep match substrings ('pen' matches 'opens')
-r, --sreg expr run a regex search
-t, --stag [tag [,|+] ...] [- tag, ...]
search bookmarks by tags
use ',' to find entries matching ANY tag
use '+' to find entries matching ALL tags
excludes entries with tags after ' - '
list all tags, if no search keywords
-x, --exclude [...] omit records matching specified keywords
ENCRYPTION OPTIONS:
-l, --lock [N] encrypt DB in N (default 8) # iterations
-k, --unlock [N] decrypt DB in N (default 8) # iterations
POWER TOYS:
--ai auto-import from Firefox/Chrome/Chromium
-e, --export file export bookmarks to Firefox format html
export markdown, if file ends with '.md'
format: [title](url), 1 entry per line
export buku DB, if file ends with '.db'
use --tag to export specific tags
-i, --import file import bookmarks html in Firefox format
import markdown, if file ends with '.md'
import buku DB, if file ends with '.db'
-p, --print [...] show record details by indices, ranges
print all bookmarks, if no arguments
-n shows the last n results (like tail)
-f, --format N limit fields in -p or Json search output
N=1: URL, N=2: URL and tag, N=3: title,
N=4: URL, title and tag. To omit DB index,
use N0, e.g., 10, 20, 30, 40.
-j, --json Json formatted output for -p and search
--colors COLORS set output colors in five-letter string
--nc disable color output
--np do not show the prompt, run and exit
-o, --open [...] browse bookmarks by indices and ranges
open a random bookmark, if no arguments
--oa browse all search results immediately
--replace old new replace old tag with new tag everywhere
delete old tag, if new tag not specified
--shorten index|URL fetch shortened url from tny.im service
--expand index|URL expand a tny.im shortened url
--suggest show similar tags when adding bookmarks
--tacit reduce verbosity
--threads N max network connections in full refresh
default N=4, min N=1, max N=10
-V check latest upstream version available
-z, --debug show debug information and verbose logs
SYMBOLS:
> url
+ comment
# tags
PROMPT KEYS:
1-N browse search result indices and/or ranges
a open all results in browser
s keyword [...] search for records with ANY keyword
S keyword [...] search for records with ALL keywords
d match substrings ('pen' matches 'opened')
r expression run a regex search
t [...] search bookmarks by tags or show taglist
list index after a tag listing shows records with the tag
o id|range [...] browse bookmarks by indices and/or ranges
p id|range [...] print bookmarks by indices and/or ranges
g [taglist id|range ...] [>>|>|<<] record id|range [...]
append, set, remove (all or specific) tags
w [editor|id] edit and add or update a bookmark
c id copy url at search result index to clipboard
O toggle try to open in a GUI browser
? show this help
q, ^D, double Enter exit buku
色
buku
はカスタムカラーをサポートしています。 詳細については、 色をカスタマイズする方法のwikiページをご覧ください。
例
-
エディタからブックマークを編集して追加する:
$ buku -w $ buku -w 'gedit -w' $ buku -w 'macvim -f' -a https://ddg.gg search engine, privacy
最初のコマンドは、環境変数
EDITOR
からエディタを選択します。 2番目のコマンドは、ブロックモードでgeditを開きます。 3番目のコマンドはオプション-fを指定してmacvimを開き、URLとタグをテンプレートに取り込みます。 -
タグ付きのブックマークを追加する
search engine
とprivacy
、 コメントSearch engine with perks
、ウェブからページタイトルを取得 :$ buku -a https://ddg.gg search engine, privacy -c Search engine with perks 336. DuckDuckGo > https://ddg.gg + Alternative search engine with perks # privacy,search engine
where、>:url、+:comment、#:tags
-
タグ付きのブックマークを追加
search engine
とprivacy
と不変のカスタムタイトルDDG
:$ buku -a https://ddg.gg search engine, privacy --title 'DDG' --immutable 1 336. DDG (L) > https://ddg.gg # privacy,search engine
URLはタグの前になければならないことに注意してください。
-
タイトルのないブックマークを 追加する(更新のためにもうまくいく):
$ buku -a https://ddg.gg search engine, privacy --title
-
エディタからブックマークを編集して更新する:
$ buku -w 15012014
これにより、既存のブックマークの詳細がエディタで変更されます。 環境変数
EDITOR
設定する必要があります。 -
新しいURL、タグ、コメントでインデックス15012014の既存のブックマークを更新し、ウェブからタイトルを取得します:
$ buku -u 15012014 --url http://ddg.gg/ --tag web search, utilities -c Private search engine
-
15012014でブックマークのタイトルのみを取得して更新する :
$ buku -u 15012014
-
15012014でブックマークのコメントのみを更新する :
$ buku -u 15012014 -c this is a new comment
–url、–title、–tagにも適用されます。
-
タグ付き
tag 1
またはtag 2
をHTMLおよびマークダウンにエクスポート :$ buku -e bookmarks.html --tag tag 1, tag 2 $ buku -e bookmarks.md --tag tag 1, tag 2 $ buku -e bookmarks.db --tag tag 1, tag 2
–tagが指定されていない場合、すべてのブックマークがエクスポートされます。
-
HTMLとマークダウンからブックマークをインポートする :
$ buku -i bookmarks.html $ buku -i bookmarks.md $ buku -i bookmarks.db
-
15012014でブックマークのコメントのみを削除 :
$ buku -u 15012014 -c
–titleと–tagにも適用されます。 ブックマークを削除せずにURLを削除することはできません。
-
WebからのページタイトルでフルDBを更新またはリフレッシュする:
$ buku -u $ buku -u --tacit (show only failures and exceptions)
この操作では、索引、URL、タグまたはコメントは変更されません。 取り出したタイトルが空でない場合、タイトルのみが更新されます。
-
インデックスのブックマークを削除する 15012014:
$ buku -d 15012014 Index 15012020 moved to 15012014
最後のインデックスは削除されたインデックスに移動され、DBはコンパクトに保たれます。
-
すべてのブックマークを削除 :
$ buku -d
-
範囲またはブックマークのリストを削除する:
$ buku -d 100-200 $ buku -d 100 15 200
-
キーワード
kernel
ANYとURL、タイトル、またはタグのdebugging
ブックマークを検索する :$ buku kernel debugging $ buku -s kernel debugging
-
すべてのキーワード
kernel
とURL、タイトル、またはタグでdebugging
するブックマークを検索する :$ buku -S kernel debugging
-
general kernel concepts
タグ付きのブックマークを検索 :$ buku --stag general kernel concepts
-
kernel
タグのうちのどれかに一致するブックマーク、debugging
、general kernel concepts
検索します:$ buku --stag kernel, debugging, general kernel concepts
-
すべてのタグ
kernel
、debugging
、general kernel concepts
一致するブックマークを検索する:$ buku --stag kernel + debugging + general kernel concepts
-
タグの
kernel
とdebugging
両方に一致するキーワードreal
とlife
を除いてhello
かworld
いずれかのキーワードに一致するブックマークを検索しますが、タグは除きますgeneral kernel concepts
とbooks
:$ buku hello world --exclude real life --stag 'kernel + debugging - general kernel concepts, books'
-
すべてのユニークなタグをアルファベット順にリストする :
$ buku --stag
-
検索を実行して結果を更新する:
$ buku -s kernel debugging -u --tag + linux kernel
-
検索を実行して結果を削除する:
$ buku -s kernel debugging -d
-
カスタム反復回数 (15) で DBを暗号化または復号化してキーを生成する:
$ buku -l 15 $ buku -k 15
1つのロック&ロック解除インスタンスに対して、同じ数の反復を指定する必要があります。 省略された場合、デフォルトは8です。
-
インデックス15012014と範囲20-30、40-50でのブックマークの詳細を表示 :
$ buku -p 20-30 15012014 40-50
-
過去10回のブックマークの詳細を表示:
$ buku -p -10
-
データベースの実際のインデックスを持つすべてのブックマークを表示 :
$ buku -p $ buku -p | more
-
タグ 「古いタグ」を「新しいタグ」に置き換えます 。
$ buku --replace 'old tag' 'new tag'
-
DBからタグ ‘古いタグ’を削除する :
$ buku --replace 'old tag'
-
索引15012014のブックマークの既存のタグに(またはタグから) ‘タグ1’、 ‘タグ2’のタグを追加(または削除)します 。
$ buku -u 15012014 --tag + tag 1, tag 2 $ buku -u 15012014 --tag - tag 1, tag 2
-
ブラウザのインデックス15012014のURLを開きます :
$ buku -o 15012014
-
書籍やタイトルのないブックマークを簿記用に一覧表示する:
$ buku -S blank
-
タイトルが不変のブックマークを一覧表示する:
$ buku -S immutable
-
短縮URL www.google.comとインデックス20のURL:
$ buku --shorten www.google.com $ buku --shorten 20
-
プロンプトでタグを追加、削除する(タグリストのインデックスを左に、ブックマークのインデックスを右に):
// append tags at taglist indices 4 and 6-9 to existing tags in bookmarks at indices 5 and 2-3 buku (? for help) g 4 9-6 >> 5 3-2 // set tags at taglist indices 4 and 6-9 as tags in bookmarks at indices 5 and 2-3 buku (? for help) g 4 9-6 > 5 3-2 // remove all tags from bookmarks at indices 5 and 2-3 buku (? for help) g > 5 3-2 // remove tags at taglist indices 4 and 6-9 from tags in bookmarks at indices 5 and 2-3 buku (? for help) g 4 9-6 << 5 3-2
-
カラー出力のブックマークを一覧表示する:
$ buku --colors oKlxm -p
-
その他のヘルプ :
$ buku -h $ man buku
トラブルシューティング
エディタの統合
デフォルトでインスタンスを1つだけ保持し、他のインスタンスからすぐに戻るGUIエディタで問題が発生することがあります。 適切なエディタオプションを使用して、新しい文書が開かれたときに呼び出し元をブロックします。 geditの問題#210を参照してください。
共同作業者
Copyright©2015-2018 Arun Prakash Jana
関連プロジェクト
- bukubrow 、ブラウザ統合のためのWebExtension
- オイル 、検索のようなタイプのCLIフロントエンド
- buku_run 、rofiフロントエンド
- ピンク 、ピンボードからブークへの輸入ユーティリティ