GitHubじゃ!Pythonじゃ!

GitHubからPython関係の優良リポジトリを探したかったのじゃー、でも英語は出来ないから日本語で読むのじゃー、英語社会世知辛いのじゃー

jarun

Buku – 🔖 エディタとブラウザの統合によるCmdlineブックマークマネージャ

投稿日:

🔖 エディタとブラウザの統合によるCmdlineブックマークマネージャ

ブク

ぶっ!

前書き

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 (デフォルトではインストール済み)を使用します。

パッケージマネージャーから

リリースパッケージ

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ページをご覧ください。

  1. エディタからブックマークを編集して追加する:

    $ buku -w
    $ buku -w 'gedit -w'
    $ buku -w 'macvim -f' -a https://ddg.gg search engine, privacy
    

    最初のコマンドは、環境変数EDITORからエディタを選択します。 2番目のコマンドは、ブロックモードでgeditを開きます。 3番目のコマンドはオプション-fを指定してmacvimを開き、URLとタグをテンプレートに取り込みます。

  2. タグ付きのブックマークを追加するsearch engineprivacyコメント 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

  3. タグ付きのブックマークを追加 search engineprivacy不変のカスタムタイトル DDG

    $ buku -a https://ddg.gg search engine, privacy --title 'DDG' --immutable 1
    336. DDG (L)
    > https://ddg.gg
    # privacy,search engine
    

    URLはタグの前になければならないことに注意してください。

  4. タイトルのないブックマーク 追加する(更新のためにもうまくいく):

    $ buku -a https://ddg.gg search engine, privacy --title
    
  5. エディタからブックマークを編集して更新する:

    $ buku -w 15012014
    

    これにより、既存のブックマークの詳細がエディタで変更されます。 環境変数EDITOR設定する必要があります。

  6. 新しいURL、タグ、コメントでインデックス15012014の既存のブックマークを更新し、ウェブからタイトルを取得します:

    $ buku -u 15012014 --url http://ddg.gg/ --tag web search, utilities -c Private search engine
    
  7. 15012014でブックマークのタイトルのみを取得して更新する

    $ buku -u 15012014
    
  8. 15012014でブックマークのコメントのみを更新する

    $ buku -u 15012014 -c this is a new comment
    

    –url、–title、–tagにも適用されます。

  9. タグ付き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が指定されていない場合、すべてのブックマークがエクスポートされます。

  10. HTMLとマークダウンからブックマークをインポートする

    $ buku -i bookmarks.html
    $ buku -i bookmarks.md
    $ buku -i bookmarks.db
    
  11. 15012014でブックマークのコメントのみを削除

    $ buku -u 15012014 -c
    

    –titleと–tagにも適用されます。 ブックマークを削除せずにURLを削除することはできません。

  12. WebからのページタイトルでフルDB更新またはリフレッシュする:

    $ buku -u
    $ buku -u --tacit (show only failures and exceptions)
    

    この操作では、索引、URL、タグまたはコメントは変更されません。 取り出したタイトルが空でない場合、タイトルのみが更新されます。

  13. インデックスのブックマークを削除する 15012014:

    $ buku -d 15012014
    Index 15012020 moved to 15012014
    

    最後のインデックスは削除されたインデックスに移動され、DBはコンパクトに保たれます。

  14. すべてのブックマークを削除

    $ buku -d
    
  15. 範囲またはブックマークのリスト削除する:

    $ buku -d 100-200
    $ buku -d 100 15 200
    
  16. キーワードkernel ANYとURL、タイトル、またはタグのdebuggingブックマークを検索する

    $ buku kernel debugging
    $ buku -s kernel debugging
    
  17. すべてのキーワードkernelとURL、タイトル、またはタグでdebuggingするブックマークを検索する

    $ buku -S kernel debugging
    
  18. general kernel concepts タグ付きのブックマークを検索

    $ buku --stag general kernel concepts
    
  19. kernelタグのうちのどれかに一致するブックマーク、 debugginggeneral kernel concepts 検索します:

    $ buku --stag kernel, debugging, general kernel concepts
    
  20. すべてのタグkerneldebugginggeneral kernel concepts一致するブックマークを検索する:

    $ buku --stag kernel + debugging + general kernel concepts
    
  21. タグのkerneldebugging両方に一致するキーワードreallifeを除いてhelloworldいずれかのキーワードに一致するブックマークを検索しますが、タグは除きますgeneral kernel conceptsbooks

    $ buku hello world --exclude real life --stag 'kernel + debugging - general kernel concepts, books'
    
  22. すべてのユニークなタグをアルファベット順にリストする

    $ buku --stag
    
  23. 検索を実行して結果を更新する:

    $ buku -s kernel debugging -u --tag + linux kernel
    
  24. 検索を実行して結果を削除する:

    $ buku -s kernel debugging -d
    
  25. カスタム反復回数 (15) DBを暗号化または復号化してキーを生成する:

    $ buku -l 15
    $ buku -k 15
    

    1つのロック&ロック解除インスタンスに対して、同じ数の反復を指定する必要があります。 省略された場合、デフォルトは8です。

  26. インデックス15012014と範囲20-30、40-50でのブックマークの詳細表示

    $ buku -p 20-30 15012014 40-50
    
  27. 過去10回のブックマークの詳細を表示:

    $ buku -p -10
    
  28. データベースの実際のインデックスを持つすべてのブックマークを表示

    $ buku -p
    $ buku -p | more
    
  29. タグ 「古いタグ」を「新しいタグ」に置き換えます

    $ buku --replace 'old tag' 'new tag'
    
  30. DBからタグ ‘古いタグ’を削除する

    $ buku --replace 'old tag'
    
  31. 索引15012014のブックマークの既存のタグに(またはタグから) ‘タグ1’、 ‘タグ2’のタグを追加(または削除)します

    $ buku -u 15012014 --tag + tag 1, tag 2
    $ buku -u 15012014 --tag - tag 1, tag 2
    
  32. ブラウザのインデックス15012014のURL開きます

    $ buku -o 15012014
    
  33. 書籍やタイトルのないブックマークを簿記用に一覧表示する:

    $ buku -S blank
    
  34. タイトル不変のブックマークを一覧表示する:

    $ buku -S immutable
    
  35. 短縮URL www.google.comとインデックス20のURL:

    $ buku --shorten www.google.com
    $ buku --shorten 20
    
  36. プロンプトでタグを追加、削除する(タグリストのインデックスを左に、ブックマークのインデックスを右に):

    // 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
    
  37. カラー出力のブックマークを一覧表示する:

    $ buku --colors oKlxm -p
    
  38. その他のヘルプ

    $ buku -h
    $ man buku
    

トラブルシューティング

エディタの統合

デフォルトでインスタンスを1つだけ保持し、他のインスタンスからすぐに戻るGUIエディタで問題が発生することがあります。 適切なエディタオプションを使用して、新しい文書が開かれたときに呼び出し元をブロックします。 geditの問題#210を参照してください。

共同作業者

Copyright©2015-2018 Arun Prakash Jana

関連プロジェクト

  • bukubrow 、ブラウザ統合のためのWebExtension
  • オイル 、検索のようなタイプのCLIフロントエンド
  • buku_run 、rofiフロントエンド
  • ピンク 、ピンボードからブークへの輸入ユーティリティ

プレス







-jarun
-, , , , , ,

執筆者: