marcinsmialek / yet-another-pinboard-extension

Manage your Pinboard bookmarks in your browser.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Yet Another Pinboard Extension

Shows your Pinboard bookmarks in the omnibar suggestions if "pin" is prepended. Also, allows you to view, open and edit your bookmarks in your browser. Furthermore, enables (optionally) auto-copying new browser bookmarks to pinboard.

Written in pure Javascript/HTML/CSS without external dependencies (But uses Mozilla's Web Extension Polyfill to be able to handle Chrome's differences (mostly, at least)).

Does not send any data anywhere, as far as I know (except to pinboard, of course).

Download / Install

Instructions

  • To connect the add-on with your pinboard account, enter your API key in the options page (about:addons or chrome://extensions). Do not enter your normal password! The key will be stored in the add-on's local browser storage, and I have no idea if other add-ons / users / whoever can access that. Also, it probably wouldn't even work.
  • The API key can be found on https://pinboard.in/settings/password.
  • You can search through your bookmarks, create new ones and edit old ones via the button in the Action Menu (add it to the bar if it is not there)

Reasons for the permissions

  • "https://api.pinboard.in/v1/*" to connect to the API of course...
  • "storage" to save the pins and settings across restarts and network losses
  • "tabs" to set listeners on changing tab URLs to update the pin button
  • "bookmarks" to be able to auto-save new bookmarks as pins as well (see issue #31 for a future change)
  • "contextMenus" to create a context menu entry to save the page as a pin
  • "activeTab" for the "save link as to read" context menu functionality to read the link URL and text
  • "alarms" to rate-throttle API requests and periodically check for new pins

To build

  • Install npm/node and run npm install
  • Alternatively, manually install these packages:
    • webextension-polyfill (necessary to be included)
    • web-ext-types (typescript declarations for web extensions)
    • tslint (optionally, to use standardised formatting)
    • typescript (to cross-compile .ts to .js)
  • run the scripts outlined in package.json or:
    • create folder structure below
    • copy html and css in their folders
    • copy browser-polyfill.min.js in the vendor/webextension-polyfill folder
    • (run tslint)
    • run tsc (typescript compiler)
  dist
    +-- hml
    +-- css
    +-- js
    +-- vendor
    |   +-- webextension-polyfill

Thanks

Changelog (incomplete)

v1.3.1 - 1.3.6:

  • Fixed some bugs
  • Started adding keyboard controls to the popup
  • Made the options screen more clear with regards to the API key

v1.3.0:

  • Adds customisable colours: Set the addon to dark mode, light mode, or any colour scheme your heart desires
  • Firefox only: Adds a sidebar containing a searchable list of all your bookmarks.
  • Updates icons in the popup
  • Backend stuff:
    • Updated to v1.2.0 of Mozilla's webextension-polyfill
    • Streamlined some more code
    • The icons were unicode characters before, now they are embedded SVG
    • Moved the filter functionality into appropriate class to try and reduce code duplication
    • Made background scripts not persistent (https://developer.chrome.com/extensions/event_pages)

v1.2.6 - v1.2.9:

  • Adds the option to run a regex on the tab title (might be useful when using an addon to modify the tab title). Thanks @alerque for the suggestion (see #25)!
  • Adds css scaling on the popup for firefox when using two screens with different DPI (see issue #3)
  • Updates the timeout increase to introduce a maximum timeout of 10 minutes
  • Adds badges to the button to show when a connection issue occurs
  • Fixes a bug causing high CPU load when addon options are missing
  • Misc. stuff, check the commits if you are interested, nothing worth mentioning

v1.2.1 - v1.2.5:

  • Adds symbol in popup for shared bookmarks
  • Adds filter in popup for bookmarks flagged as "to read"
  • Optimized API request queue (deleting duplicates)
  • Added API polling to check every 5 minutes for new bookmarks

v1.2:

  • Adds deleting of pins
  • Adds private/public flags
  • Revamps API access (caches connection if internet doesn't work)
  • Adds context menu item for "To Read"
  • Changes icon scheme -- show pin status as badge instead of changing the icon itself
  • Adds tag suggestions

v1.1:

  • Adds option to auto-save new bookmarks to pinboard
  • Adds Google Chrome support, among others using Mozilla's Web Extension Polyfill

v1.0

  • Initial release, only for Firefox

About

Manage your Pinboard bookmarks in your browser.

License:GNU General Public License v3.0


Languages

Language:TypeScript 77.9%Language:HTML 14.6%Language:CSS 7.6%