mcpField
B
Buku

Buku

公式
github.com開発ツール7.2kbuku1 週間前に更新
リポジトリ公式サイト

Buku について

Buku は強力なブックマークマネージャーで、全文検索、タグ組織化、インポート/エクスポート機能を備えています。すべてのブックマークはローカルデータベースに保存され、コマンドラインから高速アクセスできます。

主な機能

  1. 01ブックマークを追加・検索・取得する
  2. 02タグを使用してブックマークを整理・分類する
  3. 03ブラウザからブックマークをインポートまたはリストにエクスポートする

活用シーン

  1. 01技術ドキュメントと参照資料を整理する開発者
  2. 02ワークフロー関連のリソースリンクを保存・検索するコーディングエージェント

インストール

OS またはパッケージマネージャーを選び、コマンドをターミナルで実行します。

$
pipx install buku

インストール後にbuku --versionを実行して確認します。

コマンド例

よく使うコマンドを使う順に並べています。

01
buku -a https://example.com
02
buku -s terminal

詳細

buku

最新リリース 入手可能状況 PyPI ビルド状況 ドキュメントの状況 プライバシーへの配慮 ライセンス

bukuの動作画面!

bukuの動作画面!

はじめに

bukuは、高機能なブックマークマネージャーであり、個人用のテキストベースのミニウェブです。

GUIを好む方には、bukuserverがローカルのウェブホストサーバー上で閲覧可能なフロントエンドを提供します。設定とスクリーンショットについては、bukuserverのページをご覧ください。

開発を始めたとき、プライベートでポータブル、マージ可能なデータベースと、シームレスなGUI統合を備えた柔軟なコマンドラインソリューションが見つかりませんでした。そこで、bukuを作りました。

bukuでは、ブラウザーからブックマークをインポートしたり、ウェブからURLのタイトル、タグ、説明を取得したりできます。お好みのエディターを使って、ブックマークの追加、作成、更新ができます。正規表現やディープスキャンモード(URLに便利です)など、複数の検索オプションでブックマークをすばやく検索できます。

Wayback Machineでリンク切れを調べることもできます。ランダムなブックマークを再訪するイースターエッグもあります。

トラッキング、隠れた履歴、古いレコード、利用状況の分析、ホームへの送信はありません。

すぐに使い始めるには、クイックスタートセクションをご覧ください。bukuには、非常に充実したドキュメントが用意されています。manページには例が掲載されています。内部の詳細については、運用メモをご覧ください。

bukuはライブラリとしても使えます!ブラウザープラグインを含む、関連プロジェクトがいくつかあります。

目次
特長
  • タイトル、タグ、説明を自動取得してブックマークを保存
  • Firefox、Google Chrome、Chromium、Vivaldi、Vivaldi Beta (Internal)、Brave、MS Edge から自動インポート
  • ブックマークと検索結果をブラウザーで開く
  • Wayback Machine からキャッシュされたページを閲覧
  • テキストエディターとの連携
  • 軽量で見やすいインターフェース、色のカスタマイズ
  • 強力な検索オプション(正規表現、部分文字列など)
  • 検索中にモードを切り替えられる継続検索
  • システム間の同期に使える、ポータブルでマージ可能なデータベース
  • HTML、XBEL、Markdown、RSS/Atom、Orgfile から/へのブックマークのインポート/エクスポート
  • リダイレクト(>>, >, <<)を使ったスマートなタグ管理
  • マルチスレッドによる全 DB の更新
  • 手動暗号化に対応
  • シェル補完スクリプト、便利な例を掲載した man ページ
  • プライバシーに配慮(確認なしにユーザーデータを収集しません)
  • Python ライブラリとしても使用可能(API ドキュメント)
  • HTTP ベースの API を備えたコンパニオン Web アプリケーション(Bukuserver)を搭載(個人利用のみ)
インストール
依存関係
機能依存関係
言語、SQLitePython 3.10+
HTTPScertifi, urllib3
暗号化cryptography
HTMLbeautifulsoup4, 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 をインストールすることもできます。利用可能なバージョンが古い場合は、別のインストール方法をお試しください。

パッケージ状況(展開)


パッケージ状況

未掲載のパッケージマネージャー:


● PyPI (pip3 install buku)
● Termux (pip3 install buku)

リリースパッケージ

Arch Linux、CentOS、Debian、Fedora、openSUSE Leap、Ubuntu 向けの自動生成パッケージ(CLI コンポーネントのみ)は、最新の安定版リリースから入手できます。

注意:CentOS のリポジトリには python3-beautifulsoup4 パッケージがない場合があります。pip3 を使ってインストールしてください。

ソースから

git がインストールされている場合は、このリポジトリをクローンしてください。そうでない場合は、最新の安定版リリースまたは開発版をダウンロードしてください(不安定です)。

依存関係をインストールします。たとえば Ubuntu では、次のようにします。

$ apt-get install ca-certificates python3-urllib3 python3-cryptography python3-bs4

CLI コンポーネントをデフォルトの場所(/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 ...]]

Bookmark manager like a text-based mini-web.

POSITIONAL ARGUMENTS:
      KEYWORD              search keywords

GENERAL OPTIONS:
      -a, --add URL [+|-] [tag, ...]
                           bookmark URL with comma-separated tags
                           (prepend tags with '+' or '-' to use fetched tags)
      -u, --update [...]   update fields of an existing bookmark
                           accepts indices and ranges
                           refresh title and desc if no edit options
                           if no arguments:
                           - update results when used with search
                           - otherwise refresh all titles and desc
      -w, --write [editor|index]
                           edit and add a new bookmark in editor
                           else, edit bookmark at index in EDITOR
                           edit last bookmark, if index=-1
                           if no args, edit new bookmark in EDITOR
      -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
      --retain-order       prevents reordering after deleting a bookmark
      -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 web-fetch during auto-refresh
                           N=0: mutable (default), N=1: immutable
      --swap N M           swap two records at specified indices

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')
      --markers            search for keywords in specific fields
                           based on (optional) prefix markers:
                           '.' - title, '>' - description, ':' - URL,
                           '#' - tags (comma-separated, PARTIAL matches)
                           '#,' - tags (comma-separated, EXACT matches)
                           '*' - any field (same as no prefix)
      -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
      --random [N]         output random bookmarks out of the selection (default 1)
      --order fields [...] comma-separated list of fields to order the output by
                           (prepend with '+'/'-' to choose sort direction)

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 bookmarks from web browsers
                           Firefox, Chrome, Chromium, Vivaldi, Vivaldi
                           Internal, Brave, Edge
                           (Firefox profile can be specified using
                           environment variable FIREFOX_PROFILE;
                           Firefox profiles directory can be specified using
                           environment variable FIREFOX_PROFILES_DIR)
      -e, --export file    export bookmarks to Firefox format HTML
                           export XBEL, if file ends with '.xbel'
                           export Markdown, if file ends with '.md'
                           format: [title](url) 
                           export Orgfile, if file ends with '.org'
                           format: *[[url][title]] :tags:
                           export rss feed if file ends with '.rss'/'.atom'
                           export buku DB, if file ends with '.db'
                           combines with search results, if opted
      -i, --import file    import bookmarks from file
                           supports .html .xbel .json .md .org .rss .atom .db
                           (.json = Firefox backup; .db = another Buku 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, tag; N=3: title;
                           N=4: URL, title, tag; N=5: title, tag;
                           N0 (10, 20, 30, 40, 50) omits DB index
      -j, --json [file]    JSON formatted output for -p and search.
                           prints to stdout if argument missing.
                           otherwise writes to given file
      --colors COLORS      set output colors in five-letter string
      --nc                 disable color output
      -n, --count N        show N results per page (default 10)
      --np                 do not show the subprompt, run and exit
      -o, --open [...]     browse bookmarks by indices and ranges
                           open a random bookmark, if no arguments
      --oa                 browse all search results immediately
      --default-scheme S   if scheme is missing from uri, assume S
                           when opening in browser (default http)
      --replace old new    replace old tag with new tag everywhere
                           delete old tag, if new tag not specified
      --url-redirect       when fetching an URL, use the resulting
                           URL from following *permanent* redirects
                           (when combined with --export, the old URL
                           is included as additional metadata)
      --tag-redirect [tag] when fetching an URL that causes permanent
                           redirect, add a tag in specified pattern
                           (using 'http:{}' if not specified)
      --tag-error [tag]    when fetching an URL that causes an HTTP
                           error, add a tag in specified pattern
                           (using 'http:{}' if not specified)
      --del-error [...]    when fetching an URL causes any (given)
                           HTTP error, delete/do not add it
      --export-on [...]    export records affected by the above
                           options, including removed info
                           (requires --update and --export; specific
                           HTTP response filter can be provided)
      --reorder order...   update DB indices to match specified order
      --cached index|URL   browse a cached page from Wayback Machine
      --offline            add a bookmark without connecting to web
      --suggest            show similar tags when adding bookmarks
      --tacit              reduce verbosity, skip some confirmations
      --nostdin            do not wait for input (must be first arg)
      --threads N          max network connections in full refresh
                           default N=4, min N=1, max N=10
      -V                   check latest upstream version available
      -g, --debug          show debug information and verbose logs

SYMBOLS:
      >                    url
      +                    comment
      #                    tags

PROMPT KEYS:
    1-N                    browse search result indices and/or ranges
    R [N]                  print out N random search results
                           (or random bookmarks if negative or N/A)
    ^ id1 id2              swap two records at specified indices
    O [id|range [...]]     open search results/indices in GUI browser
                           toggle try GUI browser if no arguments
    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')
    m                      search with markers - search string is split
                           into keywords by prefix markers, which determine
                           what field the keywords is searched in:
                           '.', '>' or ':' - title, description or URL
                           '#'/'#,' - tags (comma-separated, partial/full match)
                           '*' - all fields (can be omitted in the 1st keyword)
                           note: tag marker is not affected by 'd' (deep search)
    v fields               change sorting order (default is '+index')
                           multiple comma/space separated fields can be specified
    v! fields              update indices in DB to match specified order
    r expression           run a regex search
    t [tag, ...]           search by tags; show taglist, if no args
    g taglist id|range [...] [>>|>|<<] [record id|range ...]
                           append, set, remove (all or specific) tags
                           search by taglist id(s) if records are omitted
    n                      show next page of search results
    N                      show previous page of search results
    o id|range [...]       browse bookmarks by indices and/or ranges
    p id|range [...]       print bookmarks by indices and/or ranges
    w [editor|id]          edit and add or update a bookmark
    c id                   copy URL at search result index to clipboard
    DB [name]              check existing DB list or switch to another DB
                           (use full/dir path to switch folders)
                           '~.' can be used as shortcut for default DB
    ?                      show this help
    q, ^D, double Enter    exit buku
色

buku は色のカスタマイズに対応しています。詳しくは、色のカスタマイズ方法を説明した Wiki ページをご覧ください。

クイックスタート
  1. VISUAL または EDITOR を、お好みのエディターを指定するように設定します。VISUAL は EDITOR より優先されます。

  2. 便利な機能を付けて、より使いやすいショートカットを作成します。

    alias b='buku --suggest'
    
  3. ブラウザーからブックマークを自動インポートします。データベースがロックされないよう、事前に該当するブラウザーを終了してください。

    b --ai
    

    Chrome、Chromium、Vivaldi(Internal を含む)、Brave では、自動インポート時に、利用可能な場合はプレーンテキストの Bookmarks ファイルと AccountBookmarks ファイルの両方を読み込みます。暗号化されたブックマークファイルには対応していません。ブラウザーからブックマークを HTML としてエクスポートし、代わりにエクスポートしたファイルを buku -i bookmarks.html でインポートしてください。

  4. ブックマークを手動で追加します(使ってみる場合)。

    b -w
    
  5. DB インデックス付きでブックマークを一覧表示します。

    b -p
    
  6. GUI やブラウザーとの連携(またはお好みのブックマーク管理サービスとの同期)については、システム連携に関する Wiki ページを参照してください。

  7. fzf でファジー検索し、選択した項目を Firefox で開くための簡単な(bash/zsh)コマンド:

    firefox $(buku -p -f 10 | fzf)
    firefox $(buku -p -f 40 | fzf | cut -f1)
    

    ブックマークのプレビューも表示する POSIX スクリプト:

    #!/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
    
使用例
  1. エディターでブックマークを編集して追加します。

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

    1 つ目のコマンドでは、環境変数 EDITOR で指定されたエディターが選択されます。2 つ目のコマンドでは、gedit がブロッキングモードで開きます。3 つ目のコマンドでは、オプション -f を指定した macvim が開き、テンプレートには URL とタグが入力されます。

  2. シンプルなブックマークを追加します。

    $ buku --nostdin -a https://github.com/
    2648. GitHub: Let’s build from here · GitHub
    > https://github.com/
    + GitHub is where over 94 million developers shape the future of software, together. Contribute to the open source community, manage your Git repositories, review code like a pro, track bugs
     and features, power your CI/CD and DevOps workflows, and secure code before you commit it.
    
    $ buku --nostdin -a https://github.com/
    [ERROR] URL [https://github.com/] already exists at index 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
    > https://ddg.gg
    + Alternative search engine with perks
    # privacy,search engine
    

    ここで、>:URL、+:コメント、#:タグです。

  4. タグ 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 はタグより前に指定する必要があります。

  5. タイトルなしでブックマークを追加します(更新にも使用できます)。

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

    $ buku -w 15012014
    

    既存のブックマークの詳細がエディターで開き、編集できるようになります。環境変数 EDITOR を設定しておく必要があります。

  7. インデックス 15012014 の既存のブックマークについて、新しい URL、タグ、コメントを設定して更新し、ウェブからタイトルを取得します。

    $ 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. Web からページタイトルを取得してデータベース全体を更新またはリフレッシュします:

    $ buku -u
    $ buku -u --tacit (失敗と例外のみを表示)
    

    この操作では、取得したページを解析して、不変でないブックマークのタイトルまたは説明フィールドを更新できます。フィールドは、取得したフィールドが空でない場合にのみ更新されます。タグは変更されません。

  14. インデックス 15012014 のブックマークを削除します:

    $ buku -d 15012014
    Index 15012020 moved to 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. フィールドごとに異なるトークンでブックマークを検索し、タグ (昇順) と URL (降順) でソートして出力します

    $ buku --order +tags,-url --markers --sall 'global substring' '.title substring' ':url substring' :https '> description substring' '#partial,tags:' '#,exact,tags' '*another global substring'
    
  24. すべての一意のタグをアルファベット順に一覧表示します:

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

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

    $ buku -s kernel debugging -d
    
  27. キーを生成するためのカスタム反復回数 (15) でデータベースを暗号化または復号します:

    $ buku -l 15
    $ buku -k 15
    

    ロックとロック解除の各インスタンスで同じ反復回数を指定する必要があります。省略した場合のデフォルトは 8 です。

  28. インデックス 15012014 と範囲 20-30、40-50 のブックマークの詳細を表示します:

    $ buku -p 20-30 15012014 40-50
    
  29. 最後の 10 件のブックマークの詳細を表示します:

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

    $ buku -p
    $ buku -p | more
    
  31. タグ 'old tag' を 'new tag' に置換します:

    $ buku --replace 'old tag' 'new tag'
    
  32. データベースからタグ 'old tag' を削除します:

    $ buku --replace 'old tag'
    
  33. インデックス 15012014 のブックマークの既存のタグにタグ 'tag 1'、'tag 2' を追加 (または削除) します: $ buku -u 15012014 --tag + tag 1, tag 2 $ buku -u 15012014 --tag - tag 1, tag 2

  34. インデックス 15012014 の URL をブラウザで開きます:

    $ buku -o 15012014
    
  35. タイトルもタグもないブックマークを整理用に一覧表示します:

    $ buku -S blank
    
  36. 変更不可のタイトルを持つブックマークを一覧表示します:

    $ buku -S immutable
    
  37. プロンプトでタグを追加・削除します (タグリストのインデックスが左、ブックマークのインデックスが右):

    // 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
    
  38. 色付き出力でブックマークを一覧表示します:

    $ buku --colors oKlxm -p
    
  39. すべての永続リダイレクトをたどった後にブックマークを追加しますが、サーバーがエラーを返さない (かつネットワーク障害がない) 場合に限ります

    $ buku --add http://wikipedia.net --url-redirect --del-error
    2. Wikipedia
       > https://www.wikipedia.org/
       + Wikipedia is a free online encyclopedia, created and edited by volunteers around the world and hosted by the Wikimedia Foundation.
    
  40. サーバーが永続リダイレクトを返した場合は http redirect というタグを、エラー応答の場合は http 404 のような形式のタグを付けてブックマークを追加します:

    $ buku --add http://wikipedia.net/notfound --tag-redirect 'http redirect' --tag-error 'http {}'
    [ERROR] [404] Not Found
    3. Not Found
       > http://wikipedia.net/notfound
       # http 404,http redirect
    
  41. 検索に一致するすべてのブックマークを更新します。サーバーが永続リダイレクトを返した場合は 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
    
  42. ランダムなブックマークを 1 件出力します:

    $ buku --random --print
    
  43. ランダムなブックマークを 3 件、netloc (降順)、タイトル、url で並べ替えて出力します:

    $ buku --random 3 --order ,-netloc,title,+url --print
    
  44. 検索条件に一致するランダムなブックマークを 1 件出力し、Markdown ファイルにエクスポートします (DB の順序):

    $ buku --random -S kernel debugging --export random.md
    
  45. レコード #4 と #5 の位置を入れ替えます:

    $ buku --swap 4 5
    
  46. すべてのブックマークのインデックスを指定された順序に一致するように更新します:

    $ buku --reorder ,-netloc,title,+url
    
  47. さらにヘルプ:

    $ buku -h
    $ man buku
    
自動化

対話的なワークフローは expect を使って自動化できます。Issue #368 に自動インポートを自動化する実例があります。

トラブルシューティング
エディタ連携

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

協力者

Copyright © 2015-2026 Arun Prakash Jana

Gitter チャット

貢献

必要な機能がありませんか?特定されたタスクをまとめた、随時更新されるToDo リストがあります。貢献を歓迎します!PR ガイドラインに従ってください。

こちらのドキュメントもご覧ください 安定版ドキュメント

関連プロジェクト
  • bukubrow、ブラウザー連携用の WebExtension
  • oil、入力と同時に検索できる CLI フロントエンド
  • buku_run、rofi フロントエンド
  • pinku、Pinboard から buku へのインポートツール
  • buku-dmenu、シンプルな bash dmenu ラッパー
  • poku、Pocket と buku の間で同期
  • Ebuku、buku 用 Emacs インターフェース
  • diigoku、Diigo 用 buku インポーター
  • BukuBot、拡張ビジュアルインターフェースを備えた XMPP 用チャットボット
動画
メディア掲載

コメント