Skip to content

Latest commit

 

History

History
56 lines (31 loc) · 2.59 KB

DEVELOP.md

File metadata and controls

56 lines (31 loc) · 2.59 KB

Development Notes for Pinboard Pin

This is an add-on for pinning pages on Pinboard in the web browser, based on the WebExtensions system. This web extension has been developed for and tested with Firefox 80 for Windows and Linux. Since WebExtensions was created as a cross-browser standard, it should be portable to other platforms and web browsers like Chrome, Opera or Edge with only few adaptations.

The web extension has been created using Angular and the Angular CLI.

Installation

Install the application for development:

npm install

Building and testing

Build extension for development:

npm run build

Test extension with Firefox:

npm run test

Build unsigned extension for production:

npm run build:prod

Package unsigned extension as zip file:

npm run build:zip

Known issues

  • Due to limitations in the Web-Ext API, the keyboard shortcut (Alt+P) cannot be changed or deactivated (at least I don't see a simple way how to do this - let me know if I'm overlooking something).

  • Unfortunately, storing tabsets is not supported by the Pinboard API. Therefore you need to be logged in to Pinboard in order use this feature. This works the same as in the official add-on.

  • If you get errors when requesting data from the Pinboard API via https, these could be caused by the Privacy Badger extension. Make sure that the domain pinboard.in is fully enabled in Privacy Badger or whitelist it.

Future development

  • Use v2 of the Pinboard API when this is available with all the necessary functionality.

  • Require only those permissions that are needed for the selected options (issue #8).

  • The Pinboard API seems to have the "popular" and "recommended" categories interchanged in the "suggest" method for tags. "Popular" are actually those taken from our own tags, contrary to what the Pinboard API docs say. This has already been reported to the Pinboard support. If they will changed this behavior, we need to adapt our code that currently swaps these categories.

  • Ask Pinboard author to provide a method for storing tabsets and support it in the add-on.

  • The PinPageComponent is much too big, and should be refactored to use child components, and objects instead of individual properties for the form fields, similar to the OptionsComponent.

  • Make this extension also work with Chrome (use the chrome.* API instead of the browser.* API provided by Firefox).