From 258b8bb0a3b2ba06f1460cf4b4b209729a784237 Mon Sep 17 00:00:00 2001 From: Andrew <001x@mail.ru> Date: Thu, 25 Jul 2019 04:25:04 +0300 Subject: [PATCH] Created _Footer (markdown) --- _Footer.md | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 _Footer.md diff --git a/_Footer.md b/_Footer.md new file mode 100644 index 0000000..757369f --- /dev/null +++ b/_Footer.md @@ -0,0 +1,60 @@ +## Editing Browse chrome bookmarks + +``` +# 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}/ + +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 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 + +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 + +} +``` \ No newline at end of file