Giter Site home page Giter Site logo

ebuku's People

Contributors

croissong avatar flexibeast avatar junjizhi avatar kungsgeten avatar rakino avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

ebuku's Issues

custom ebuku-database-path issue on Windows

Hi, I am trying ebuku on Windows.
I put the absolute path for my database file in the ebuku-database-path variable with
(setq ebuku-database-path "C:/Users/uname/.local/share/buku/bookmarks.db")
But then I get the error message "invalid string for collation: Invalid argument".

The path is valid, and when I call the buku --db C:/Users/uname/.local/share/buku/bookmarks.db --print, it works fine.

Also, when I try some address alternatives like
(setq ebuku-database-path "~/.local/share/buku/bookmarks.db")
There will be new directory created under the working directory, like
D:\pwd\~\.local\share\buku\bookmarks.db

I guess that's because buku will create a new db if you provide some valid path.
And my suspicion is that the substitute-in-file-name function is the cause, maybe this function don't handle the Windows path properly.

Emoji in link title results in `args-out-of-range` error

As reported by @edzhangsy in #31:

Debugger entered--Lisp error: (args-out-of-range "1884. Welcome to Comprehensive Rust 🦀 - Comprehens..." 15862 15893)
  match-string(1 "1884. Welcome to Comprehensive Rust 🦀 - Comprehensive Rust 🦀")
  ebuku--search-helper("--print" "[all]" "-1000" "")
  ebuku-show-all()
  ebuku()
  funcall-interactively(ebuku)
  command-execute(ebuku record)
  execute-extended-command(nil "ebuku" "ebuku")
  funcall-interactively(execute-extended-command nil "ebuku" "ebuku")
  command-execute(execute-extended-command)

search results different to buku

Hi. I love this package. However, I have noticed that the search returns are often not the same as those of buku (run externally on command line). In particular, unlike buku, ebuku seems to be treating multiple words as a single search string. For example when running ebuku-search-on-all and providing the keyword? foo bar, only entries in which foo and bar occur as foo bar will be matched. Entries such as foo a bar or bar foo will not be matched, whereas both of these will be matched with buku. Or am I missing something?

Also, is there any scope for adding --deep?

Regards
Murray

Emacs 27.2
Arch linux
ebuku (20220106.902) via melpa

Feature request: ability to act on multiple bookmarks?

Oil is a terminal interface to buku
https://github.com/AndreiUlmeyda/oil

It has some very nice multi bookmarks support:

  1. After selecting one (hit Enter) or multiple bookmarks (read below), have them opened in your browser
  2. Tag-Mode: After selecting the bookmarks, get prompted for a tag and have it applied to all of them
  3. Title-Mode: After selecting the bookmarks, get prompted for a new title for each one
  4. Delete-Mode: After selecting the bookmarks, delete each one
  5. Tag completion: After selecting the bookmarks, keep prompting for tags with completion.

No items are listed

Hello

I have installed buku and ebuku and set ebuku-buku-path to /usr/bin/buku which is where the executable is.

However, ebuku does not list any items

DeepinScreenshot_select-area_20191219144751
DeepinScreenshot_select-area_20191219144801

I don't see any errors being displayed so i think this is a bug somewhere.

Prompt for the URL first

Looking at the code:

ebuku/ebuku.el

Lines 415 to 418 in 32ea7e0

(let ((title (read-from-minibuffer "Bookmark title? "))
(url (read-from-minibuffer "Bookmark URL? "))
(tags (read-from-minibuffer "Bookmark tag(s)? "))
(comment (read-from-minibuffer "Bookmark comment? ")))

I can see that ebuku prompts for the title first. As far as i could see, entering the URL alone would enable buku to extract the title automatically from the URL so it would be a great improvement if i can just enter the URL first and press enter for the next 3 prompts or if i can set something like (setq ebuku-prompt-url-only t)

Thanks

Error handling encoding related issues on Windows

I tried in Linux and MacOS, only Windows have the following issue.

Error I'm getting from debug log.

ebuku--search-helper: Args out of range: #("212. Tutorial - Write a Shell in C 鈥\242 Stephen Brennan" 35 53 (charset chinese-gbk)), 46810, 46828

The bookmark in question is linked.

The related line of ebuku is line 741

Some details about my encoding related configuration

  • Windows set to use CHN GBK as backup encoding
  • cmdproxy set as (gbk-dos . gbk-dos) (not setting this ebuku will output garbage text \387\567 etc.)

If I delete the special char (which is "•", the symbol used between work and name), ebuku works fine.
If I also set the experimental utf-8 setting on windows, ebuku also works fine. However, this is not ideal as it could break other software.

Just off my head here. I'm wondering if any of the following is possible.

  • Able to specify to run the process with utf-8 encoding (when I run buku directly in pwsh, it's utf-8 encoded, so no issues)
  • Preprocess the string in ebuku, so when an encoding error happens, it displays something instead of currently breaking

ebuku--search-helper: Args out of range: " # ", 6155, 6171

Hello again 😅

This isn't a disastrous issue, but I'm consistently finding that the first time I call M-x ebuku I get the above error in *Messages* (debugger output below). It opens the *Ebuku* buffer in the background, but doesn't open it. If I manually open the *Ebuku* buffer I can see all my bookmarks listed there. If I call ebuku again, then the buffer is opened without error.

What's going on here?

Thanks!

Debugger entered--Lisp error: (args-out-of-range "   # " 6155 6171)
  match-string(1 "   # ")
  ebuku--search-helper("--print" "[all]" "-1000" "")
  ebuku-show-all()
  ebuku()
  funcall-interactively(ebuku)
  call-interactively(ebuku record nil)
  command-execute(ebuku record)
  counsel-M-x-action("ebuku")

Tweaking the UI

love the plugin, but I feel the UI could use some work.

Seeing as ebuku is a command line application, having a magit like interface would be nicer. Meaning we should have transient or hydra as a dependency. I'm personally more familliar with hydra so I say we should go with that, but transient seems like a better fit.

We should also introduce some nicer defaults for the faces used. Right now most just inherit from default which gives the ebuku buffer a somewhat dull look of pure white (not that there's anything wrong with that).

URLs at the moment are just plaintext. We should make them both clickable and actionable. Hovering over a URL and clicking it (or pressing enter) should open the URL like it would in org mode.

We should also introduce methods for moving to the next or previous search result. Furthermore we should have functions to jump to search results in the current buffer by title or url like counsel-org-goto.

S.N. ebuku-buku-path is hardcoded as a unix like path. Which means users on windows will have to change it before they can use the plugin. We should change the definition to "buku" if you're on windows & keep it as "/bin/duku" if your on any other OS.

Use buku database directly

As of Emacs 29.1, Emacs can be built with built-in support for accessing SQLite databases (the "SQLITE3" feature).

Ebuku accessing the buku database directly would avoid:

  • relying on buku's user interface;
  • having to create a buku process;
  • needing to parse the output of buku

and substantially simplify Ebuku's code.

However, Emacs 29.1 was only released in July 2023, and at this point i want to support releases back to 27.1. (The code currently has Package-Requires: ((emacs "25.1")), but that line hasn't been updated for a while, and 27.1 now seems like a reasonable minimum.)

It would be good if (say) ebuku-use-sqlite was an optional feature that could be enabled (perhaps even by default if emacs-version ≧ 29.1 and "SQLITE3" ∈ system-configuration-features).

This would be developed on a feature branch that would eventually get merged into the main branch.

compile warnings for version 20220521.1416

I have Emacs 27.1 and ebuku version 20220521.1416, and got the following compiler warnings when updating ebuku:

In ebuku--search-helper:
ebuku.el:613:20:Warning: ‘goto-line’ is for interactive use only; use
    ‘forward-line’ instead.
ebuku.el:651:37:Warning: ‘goto-line’ is for interactive use only; use
    ‘forward-line’ instead.

In ebuku-refresh:
ebuku.el:907:66:Warning: ‘goto-line’ is for interactive use only; use
    ‘forward-line’ instead.
ebuku.el:909:12:Warning: ‘goto-line’ is for interactive use only; use
    ‘forward-line’ instead.

In ebuku:
ebuku.el:1026:12:Warning: ‘goto-line’ is for interactive use only; use
    ‘forward-line’ instead.

In end of data:
ebuku.el:1043:1:Warning: the following functions are not known to be defined:
    string-empty-p, map-put, text-property-search-backward,
    text-property-search-forward, map-elt, seq-uniq

I didn't notice any negative effect of this, yet, only want to inform you about it, and ofcourse want to thank you for making & sharing Ebuku.

Evil bindings

Thanks for the mode!

I’m running doom and have “evil +everything,” which should include evil-collection.

However nothing is bound to any of the ebuku commands.

What am I missing?

Bug: el.wikipedia.org/ isn't found

Thanks for ebuku, love to use it!

My issue is:
after adding el.wikipedia.org/ it isn't found by ebuku
this works:
buku -s el.wikipedia

Error: No results found for '--print -1000'.

I installed ebuku with ELPA "M-x package-list-packages" on GNU Emacs 25.1.50.1 (x86_64-pc-linux-gnu, GTK+ Version 3.14.5) of 2016-10-29, modified by Debian (and using emacs-distribution).
After opening the ebuku buffer (Mx- ebuku) it shows/rapports only:

Ebuku

No results found for '--print -1000'.

The number change when I change "ebuku-results-limit".
Any idea what is wrong ?

Evil support

Alot of emacs users use evil for their keybindings. I noticed that in ebuku-mode, provided that the evil layer is activated, i would have to go into insert-mode before being able to press a to add a new bookmark, or d to delete.

Would be great if this package can also provide direct keybindings or mention a way to make this work nicely with evil.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.