.. | ||
icons | ||
src | ||
.gitignore | ||
.parcelrc | ||
manifest.json | ||
package-lock.json | ||
package.json | ||
README.md | ||
tsconfig.json |
Focalboard Web Clipper Browser Extension ✂️
This is the Focalboard Web Clipper browser extension. It aims at supporting various use cases around converting web content from your browser directly into Focalboard cards.
⚠️ Warning: The extension is currently in an early and experimental state. Use it at your own risk only. Don't expect any eye candy.
Status
The extension currently is in a proof-of-concept state with minimal functionality. The only supported use case at the time is building a read-later list. Things that work:
- Logging in to the Focalboard server from the extension settings
- Selecting a board to capture cards into from the extension settings
- Saving websites (title & URL) into cards from a page action (like e.g. Pocket does it)
Only Firefox was tested so far but polyfills have already been enabled so there's a good chance that it'll work in Chrome and maybe even Safari, too.
Next Steps
We're really at the very beginning here so there's a lot to be done. Notable tasks include:
- Improve the React code by extracting components
- Style the options and popup pages to mimic the look and feel of Focalboard
- Replace the logo with something better (the current one was snatched from the Focalboard Windows app)
- Link to the extension's options page from page action error messages
- Clip parts of a website into image attachments on cards
- Extract website content in reader mode into card descriptions
- Optimise the logic for finding the first URL property (currently the whole board subtree has to be requested because there is no other API available)
- Add some tests
- Test the extension on Chrome / Safari and add infrastructure to facilitate this in future (e.g.
.web-ext-config.js
) - Add an onboarding (displayed after first install) and upboarding (displayed after update) page
- Distribute the extension via the various browser add-on stores (ok, maybe too early 😜)
Hacking
First, install dependencies with
$ npm i
You can then compile and bundle the code with
$ npm run watchdev
This will write output into dist/dev/
and automatically recompile and bundle on any source change.
To run the extension in a separate Firefox instance, use
$ npm run servedev
Note that in the above commands you can substitue dev
with prod
to build and run the extension with production settings.
Distribution
To build a distributable ZIP archive, run
$ npm run build
The archive will be placed into the web-ext-artifacts
folder.