Go to file
Arun Prakash Jana d7346c8bda Support selective unformatted output for batch update scripts.
Signed-off-by: Arun Prakash Jana <engineerarun@gmail.com>
2015-11-10 23:28:37 -08:00
LICENSE Initial commit 2015-11-02 01:23:18 +05:30
Makefile Add Makefile and manpage. 2015-11-09 01:01:07 +05:30
markit Support selective unformatted output for batch update scripts. 2015-11-10 23:28:37 -08:00
markit.1 Support selective unformatted output for batch update scripts. 2015-11-10 23:28:37 -08:00
markit.png Updated. 2015-11-10 12:58:21 +05:30
README.md Support selective unformatted output for batch update scripts. 2015-11-10 23:28:37 -08:00

MarkIt

Screenshot

markit is a cmdline bookmark management utility written using Python3 and SQLite3. markit exists because of my monumental dependency on historious. I wanted the same database on my local system. However, I couldn't find an equally flexible cmdline solution. Hence, MarkIt!

The SQLite3 database file is stored in $HOME/.cache/markit/bookmarks.db for each user.

markit is GPLv3 licensed.

If you find markit useful, please consider donating via PayPal.
Donate Button with Credit Cards

Features

  • Add, update or remove a bookmark
  • Add tags to bookmarks
  • Optionally fetch page title data from the web (default: disabled)
  • Use (partial) tags or keywords to search bookmarks
  • Unique URLs to avoid duplicates, show index if URL already exists
  • Open bookmark in browser using index
  • Open search results in browser
  • Browser (Chromium and Firefox based) errors and warnings suppression
  • Show single bookmark by ID or all bookmarks in a go
  • Delete all bookmarks
  • Add a bookmark at Nth index, to fill deleted bookmark indices
  • Secure parameterized SQLite3 queries to access database
  • Handle first level of redirections (reports IP blocking)
  • Unicode in URL works
  • UTF-8 request and response, page character set detection
  • Works with Python 3.x
  • Coloured output for clarity
  • Manpage for quick reference
  • Optional debug information
  • Fast and clean (no ads or clutter)
  • Minimal dependencies
  • Open source and free

Installation

markit requires Python 3.x to work.

  1. If you have git installed (the steps are tested on Ubuntu 14.04.3 x64_64):
$ git clone https://github.com/jarun/markit/  
$ cd markit
$ sudo make install

To remove, run:

$ sudo make uninstall
  1. If you do not have git installed:
    Download the latest stable release or development version source code. Extract, cd into the directory and run:
$ sudo make install

If you do not want to install, markit is standalone:

$ chmod +x markit
$ ./markit ...

Usage

Operational notes:

  • It's advisable to copy URLs directly from the browser address bar, i.e., along with the leading http:// or https:// token. markit looks up title data (found within tags of HTML) from the web ONLY for fully-formed HTTP(S) URLs.
  • If the URL contains characters like ;, & or brackets they may be interpreted specially by the shell. To avoid it, add the URL within single ' or double " qoutes.
  • The same URL cannot be added twice. You can update tags and re-fetch title data. You can also delete it and insert at the same index.
  • You can either add or update or delete record(s) in one instance. A combination of these operations is not supported in a single run.
  • Search works in mysterious ways:
    • Substrings match (match matches rematched) for URL, tags and title data.
    • All the keywords are treated together as a single tag in the same order. Bookmarks with partial or complete tag matches are shown in results.
    • The same keywords are treated separately as unique tokens. Hence, entries with matching URL or title data are also shown in the results. Order is irrelevant in this case.
    • Search results are indexed serially. The index is different from actual database index of a bookmark record. Use -P option to get DB index.

Cmdline help:

Usage: markit [OPTIONS] KEYWORDS...
Bookmark manager. Your private Google.

Options
  -a URL tag 1, tag 2, ...   add URL as bookmark with comma separated tags
  -d N                       delete entry at DB index N (from -P output)
  -D                         delete ALL bookmarks
  -i N                       insert entry at DB index N, useful to fill deleted index
  -o N                       open URL at DB index N in browser
  -p N                       show details of bookmark record at DB index N
  -P                         show all bookmarks along with index from DB
  -s keyword(s)              search all bookmarks for a (partial) tag or each keyword
  -u N                       update entry at DB index N
  -w                         fetch title info from web, works with -a, -i, -u
  -x N                       works with -P, N=1: show only URL, N=2: show URL and tag
  -z                         show debug information
                             you can either add or update or delete in one instance
                             any other option shows help and exits markit

Keys
  1-N                        open Nth search result in browser. Enter exits markit.

Examples

  1. Add a new bookmark with tags linux news and open source:
$ markit -a http://tuxdiary.com linux news, open source
Added at index 15012014

The assigned automatic index 15012014 is unique, one greater than highest index already in use in database. 2. Add a bookmark, fetch page title information from web:

$ markit -a -w http://tuxdiary.com linux news, open source
Title: [TuxDiary | Linux, open source and a pinch of leisure.]
Added at index 15012014
  1. Update existing bookmark at index 15012014 with a new tag:
$ markit -u 15012014 -w http://tuxdiary.com linux news, open source, magazine
Title: [TuxDiary | Linux, open source and a pinch of leisure.]
Updated
  1. Delete bookmark at index 15012014:
$ markit -d 15012014
  1. Delete all bookmarks:
$ markit -D
  1. Insert a bookmark at deleted index 15012014 (fails if index or URL exists in database):
$ markit -i 15012014 -w http://tuxdiary.com/about linux news, open source
Title: [A journey with WordPress | TuxDiary]
Added at index 15012014

This option is useful in filling deleted indices from database manually. 7. Show info on bookmark at index 15012014:

$ markit -p 15012014
  1. Show all bookmarks with real index from database:
$ markit -P
  1. Open URL at index 15012014 in browser:
$ markit -o 15012014
  1. Search bookmarks:
$ markit -s kernel debugging
  1. Show debug info:
$ markit -z
  1. Show help:
$ markit

or,

$ man markit

#License GPL v3
Copyright (C) 2015 by Arun Prakash Jana <engineerarun@gmail.com>

Contributions

I would love to see pull requests with the following features:

  • Exact word match (against substring in a word as it works currently. Hint: REGEXP)
  • Parse full page data??? Might end up writing a search engine like Google. ;)
  • Optional password protection

Developer(s)

Arun Prakash Jana <engineerarun@gmail.com>