/linkding-injector

Injects search results from the linkding bookmark service into search pages like google and duckduckgo

Primary LanguageCSSMIT LicenseMIT

logo

Community browser extension for the self-hosted linkding bookmark service.

Ever created bookmarks, only to forget about them later? Don't regularly search within your bookmarks? This extension is designed to help with this kind of problem.

Features

  • When searching on a search engine the search term is also sent to your linkding instance and results are added in a new box in the sidebar right to the search engine results.
  • Supports the following search engines:
  • Automatic light or dark theme detection

Works with: Firefox, Chrome

* experimental, please read this if you have problems

Usage

After installation the extension needs to be configured and connected to your linkding instance. Either open the extension options in the browser extension manager or follow the link in the new linkding injector box on the search page of google or duckduckgo.

Once the extension is properly configured linkding search results will show in the right sidebar. If there are no search results nothing will appear.

Screenshots

duckduckgo google

Installation

Firefox: Mozilla Addon Store

Chrome: Chrome Web Store

Manual installation

Firefox

Run the build as described below and then follow the instructions here to load it into Firefox.

Chrome

Run the build as described below and then follow the instructions here to load it into Chrome.

Build

Requirements

  • Latest LTS Node version (v14+)
  • Latest LTS NPM version (v6+)
  • bash (on Linux) or powershell (on Windows)
  • npx (included with npm v5.2+)

Internally, we use web-ext to bundle a distribution package for the extension for Firefox. You do not need to install web-ext. Note that web-ext will generate a zip file which can also be used for the Chrome Web Store (but see the next section for Chrome-specific build instructions).

Then run the following script to generate a build (might need to make the file executable on Linux using chmod +x build.sh):

./build.sh # Linux
./build.ps1 # Windows

The script does:

  • Install all dependencies using NPM
  • Runs rollup to transpile and minify source files, with output written to the build directory
  • Run web-ext to package the extension for uploading to the Mozilla addon store

After the build the root directory contains the complete, unpackaged extension. Use the manifest.json file to load it manually into the browser.

The packaged extension can be found in the web-ext-artifacts folder.

For developing you might prefer using npm run dev to create an unpackaged development build. This won't package the extension and won't minify the code but is faster and makes debugging in the browser easier.

Building for Chrome-based browsers

Chrome switched over to Manifest V3. Same build instructions as above apply, but before building you need to checkout the chrome_manifest_v3 branch. The only relevant difference in that branch is the manifest.json.

Acknowledgements

This extension reuses and adapts code from the official linkding extension.