m/fzf
1
0
mirror of https://github.com/junegunn/fzf.git synced 2025-11-19 09:03:43 -05:00

Updated Browse chrome bookmarks (markdown)

Andrew
2019-07-25 04:26:40 +03:00
parent 153d6eb43c
commit 90b3a1d954

@@ -1,58 +1,56 @@
`
# b- browse chrome bookmarks
b() {
local open ruby output
open=xdg-open
ruby=$(which ruby)
output=$($ruby << EORUBY
# encoding: utf-8
`# b- browse chrome bookmarks`
`b() {`
`local open ruby output`
`open=xdg-open`
`ruby=$(which ruby)`
`output=$($ruby << EORUBY`
`# encoding: utf-8`
require 'json'
FILE = '~/.config/google-chrome/Default/Bookmarks'
CJK = /\p{Han}|\p{Katakana}|\p{Hiragana}|\p{Hangul}/
`require 'json'`
`FILE = '~/.config/google-chrome/Default/Bookmarks'`
`CJK = /\p{Han}|\p{Katakana}|\p{Hiragana}|\p{Hangul}/`
def build parent, json
name = [parent, json['name']].compact.join('/')
if json['type'] == 'folder'
json['children'].map { |child| build name, child }
else
{ name: name, url: json['url'] }
end
end
`def build parent, json`
`name = [parent, json['name']].compact.join('/') `
`if json['type'] == 'folder'`
`json['children'].map { |child| build name, child }`
`else`
`{ name: name, url: json['url'] }`
`end`
`end`
def just str, width
str.ljust(width - str.scan(CJK).length)
end
`def just str, width`
`str.ljust(width - str.scan(CJK).length)`
`end`
def trim str, width
len = 0
str.each_char.each_with_index do |char, idx|
len += char =~ CJK ? 2 : 1
return str[0, idx] if len > width
end
str
end
`def trim str, width`
`len = 0`
`str.each_char.each_with_index do |char, idx|`
`len += char =~ CJK ? 2 : 1`
`return str[0, idx] if len > width`
`end`
`str`
`end`
width = `tput cols`.to_i / 2
json = JSON.load File.read File.expand_path FILE
items = json['roots']
.values_at(*%w(bookmark_bar synced other))
.compact
.map { |e| build nil, e }
.flatten
`width = `tput cols`.to_i / 2`
`json = JSON.load File.read File.expand_path FILE`
`items = json['roots']`
`.values_at(*%w(bookmark_bar synced other))`
`.compact`
`.map { |e| build nil, e }`
`.flatten`
items.each do |item|
name = trim item[:name], width
puts [just(name, width),
item[:url]].join("\t\x1b[36m") + "\x1b[m"
end
EORUBY
)
`items.each do |item|`
`name = trim item[:name], width`
`puts [just(name, width),`
`item[:url]].join("\t\x1b[36m") + "\x1b[m"`
`end`
`EORUBY`
`)`
echo -e "$output" |
fzf-tmux -u 30% --ansi --multi --no-hscroll --tiebreak=begin |
awk 'BEGIN { FS = "\t" } { print $2 }' |
xargs $open &>/dev/null
`echo -e "$output" |`
`fzf-tmux -u 30% --ansi --multi --no-hscroll --tiebreak=begin |`
`awk 'BEGIN { FS = "\t" } { print }' |`
`xargs $open &>/dev/null`
}
`
`}`