Skip to content

About

A simple Chromium extension to ease searching papers on DBLP

Topics

Resources

Stars

5 stars

Watchers

1 watching

Forks

Repository files navigation

dblp Search

Chrome Web Store Version Chrome Web Store Users Chrome Web Store Chrome Web Store Chrome Release

Edge Add-on Version Edge Add-on Users Edge Add-on Rating Edge Add-on Stars Edge Release

Mozilla Add-on Version Mozilla Add-on Users Mozilla Add-on Downloads Mozilla Add-on Rating Mozilla Add-on Stars Firefox Release

GitHub manifest version GitHub Release

GitHub code size in bytes GitHub language count GitHub top language CodeFactor Grade Codacy grade GitHub License

A simple cross-browser extension to ease the process of searching publications on dblp.org and copying, downloading their BibTeX entries, or saving them straight to Zotero.

Avaliable in the Chrome Web Store Avaliable as a Firefox Add-on Avaliable in the Microsoft Edge Add-ons Store

Features

  • Search Papers: Enter the paper's title in the input field or highlight any text on the current web page, then click the search button. The extension will search dblp.org for matching publications and display the results.
  • Copy BibTeX Entries: Next to each search result, there's a 'Copy BibTeX' button. Click this button to copy the BibTeX entry for the corresponding publication to your clipboard.
  • Download BibTeX Entries: Next to the copy button, a 'Download BibTeX' button saves the entry as a .bib file named after its citation key. Not available in Safari, which does not let extensions save files (the button, the D key, and the menu item are hidden there).
  • Save to Zotero: A 'Save to Zotero' button imports the entry directly into the Zotero desktop app through Zotero's local connector API. By default the entry goes to the library or collection currently selected in the Zotero window (the status message names it); in Options you can instead pin a fixed destination — any of your editable libraries (personal or group) or collections, listed live from Zotero. Zotero must be running; on first use, the browser asks for permission to connect to Zotero on your computer (127.0.0.1). The button can be hidden in Options. The imported entry honors your citation-key and field-removal settings, so add-ons like Better BibTeX pick up the same citation key you would have copied.
  • Sort & Filter Results: Click the Authors, Year, or Venue column headers to sort, the Title header to restore the default order, and the Type header to filter results by publication type.
  • Color-Coded Entries: Results are color-coded by publication type (proceedings, books, journals, etc.), matching the dblp.org scheme.
  • Keyboard Navigation: Use ↑/↓ to move between results, and C to copy BibTeX, D to download BibTeX, Z to save to Zotero, B to open the dblp page, and O to open the DOI for the selected result.
  • Context Menu: Right-click selected text on any page to "Search highlighted text on dblp" or "Resolve DOI".
  • Customizable BibTeX Citation Keys: Replace dblp default citation keys with a custom format. Use the drag-and-drop builder in Options to arrange fields (Author, Year, Venue, Title) and separators (dash, underscore) in any order. Additional formatting options include capitalizing the author's name and uppercasing the venue (e.g., Calefato2023ESEM, calefato_2023_esem).
  • Results Count: The extension shows the number of search results found. The extension automatically filters out useless CoRR Abs entries.
  • Pagination: Navigate through search results using Previous/Next buttons. Page info shows the current page, total pages, and result count. Pagination state persists across browser sessions.
  • Save Search State: The content of the input text field and results are saved in the local storage. This allows you to leave the page and come back later without losing your search results.
  • Configurable Popup Width: Set the default popup width (500-800 px) in Options; narrower widths automatically hide some table columns.
  • Configurable Result Limit: Set the maximum number of results per query in Options (default 30, capped at 1000).
  • API: Versions 2+ are faster and more reliable as they rely on the official DBLP.org API to execute the queries.
  • Remove duplicates: Useless, duplicated CoRR abs entries are filtered out.
  • Remove BibTeX fields: When copying or downloading BibTeX entries, the extension can remove the timestamp, bibsource, biburl, and url fields.

Usage

  1. Install the extension to your Chromium browser (e.g., Chrome, Edge, ...), Firefox, or Safari.
  2. Click on the extension icon to open the pop-up.
  3. Enter the title of the paper you want to search for in the input field. Alternatively, highlight some text on the current web page.
  4. Click the 'Search' button to start the search.
  5. The search results will be displayed in the pop-up. Next to each result, click the 'Copy BibTeX' button to copy its BibTeX entry to your clipboard, the 'Download BibTeX' button to save it as a .bib file, or the 'Save to Zotero' button to import it into the running Zotero desktop app.

Contributions

Contributions are welcome! Please submit a pull request or create an issue to contribute to this project.

Build Commands

make build             # Build all extensions (alias for build/all)
make build/chrome      # Build Chrome extension ZIP
make build/firefox     # Build Firefox XPI addon and sources
make build/safari      # Build Safari app-extension (macOS + Xcode required)
make build/edge        # Build Edge extension (same as Chrome)
make build/all         # Build all extensions (Safari is skipped outside macOS)
make build/clean       # Clean build directory and stamps
make test              # Run the unit-test suite
make test/live         # Run the live tests against the dblp API

Note

Safari can only be built on macOS with Xcode installed; elsewhere make build builds the other extensions and skips Safari.

Manual installation

Google Chrome

  1. Open Google Chrome and navigate to chrome://extensions.

  2. Enable Developer mode by clicking the toggle switch next to "Developer mode".

  3. Click "Load unpacked" and select the project folder (the one containing manifest.json), or a folder where you unzipped the archive from build/chrome.

Note

A single manifest.json serves every browser, so Chrome lists two expected manifest warnings under "Errors": the unrecognized browser_specific_settings key (Firefox-only) and the ignored background.scripts key (Firefox uses it instead of service_worker). Likewise, web-ext lint reports background.service_worker as unsupported in Firefox. Requires Chrome/Edge 121+ and Firefox 140+ (Firefox for Android 142+).

Edge

Same as above, the only difference is that you need to navigate to edge://extensions.

Firefox

  1. Open Firefox and navigate to about:debugging.

  2. Click "This Firefox" and "Load Temporary Add-on...".

  3. Select the .xpi file in build/firefox (or manifest.json in build/firefox/src/<addon-folder>).

Development Commands

make run/chrome        # Launch Chrome with the extension loaded (dev mode)
make run/firefox       # Launch Firefox with the extension (via web-ext)
make run/safari        # Launch Safari with the extension (macOS only)
make run/edge          # Launch Edge with the extension
make info              # Show development environment info, including the browsers found

The run targets work on macOS and Linux. Each browser runs with a throwaway profile in build/profiles, so your own browser can stay open; make build/clean deletes the profiles. All run targets keep the terminal until the browser is closed; Ctrl-C closes it. Chrome and Edge load build/chromium-dev, a folder of symlinks to the sources, so reloading the extension in the browser picks up your changes. Firefox runs through web-ext with a fresh profile that is deleted when you close it with Ctrl-C, and reloads the add-on when make build/firefox updates it.

Variable Purpose
DEFAULT_URL="https://example.com" Opening page
CHROME_BIN, EDGE_BIN, FIREFOX_BIN Browser executable to launch (found automatically when unset)
APPS_DIR macOS folder searched for the browser apps (default /Applications, e.g. APPS_DIR=~/Applications)
BROWSER_ARGS="..." Extra flags passed to the browser

Note

  • run/chrome and run/edge also run through web-ext (--target=chromium), which loads the extension with the DevTools protocol: Google Chrome ignores the --load-extension flag since version 137. Any Chrome works: Google Chrome, Chrome for Testing, or Chromium.
  • On macOS, Firefox Developer Edition is preferred over Firefox. web-ext runs through npx, so it needs no global install.
  • Unlike Chrome, Edge does not run in development mode

Release Workflow

To release a new version:

make release/check     # 1. Check if commits exist since last tag
make bump/patch        # 2. Bump version (or bump/minor, bump/major)
git add -A && git commit -m "Bump version to X.Y.Z"  # 3. Commit changes
make release           # 4. Push commits and tag (triggers CI/CD)

Available commands:

make release/check     # Check if a new release is needed
make bump/patch        # Bump patch version (1.0.0 -> 1.0.1)
make bump/minor        # Bump minor version (1.0.0 -> 1.1.0)
make bump/major        # Bump major version (1.0.0 -> 2.0.0)
make tag/apply         # Create local tag from manifest version
make release           # Push commits and tag to origin (alias: tag/push)
make tag/delete        # Delete the tag for the current version

Version is stored in manifest.json and package.json (both are kept in sync by make bump/*).

Testing

The project has an automated unit-test suite (Vitest) covering the model, controller, and the BibTeX, DOI, and validation utilities:

make test              # Run the unit tests once
make test/watch        # Run the unit tests in watch mode

Tests live in tests/unit/. Dependencies are installed automatically on first run (npm ci).

The Firefox package is also checked with Mozilla's web-ext lint (run through npx, needs network); CI runs it next to the unit tests:

make test/lint          # Build the Firefox addon and lint it (fails on errors)

The unit tests mock every network request, so they cannot notice when dblp itself changes. A small live suite in tests/live/ runs the real search and BibTeX download against dblp.org (2 requests, spaced by the extension's rate limiter), and checks that the extension can parse the results and process the BibTeX entry:

make test/live         # Run the live tests against the dblp API (needs network)

The dblp Live Check workflow runs it every Monday and can be started by hand from the Actions tab. It is not part of make test or of the release workflows, so a dblp outage never blocks CI.

Manual testing in the browser is still recommended for UI changes:

  1. Run make run/chrome (or firefox/safari/edge)
  2. Test the modified functionality in the browser
  3. Check the browser console for errors (pop-up and background service worker)

Debugging

Popup console: Right-click extension icon → Inspect popup

Background service worker:

  • Chrome: chrome://extensions → Find extension → "Service worker" link
  • Firefox: about:debugging → This Firefox → Inspect

Storage inspection: In console, run browser.storage.local.get(null, console.log)

Donations

License

This project is licensed under the MIT license, see the LICENSE file.

Credits

Developed by Fabio Calefato (@bateman).

About

A simple Chromium extension to ease searching papers on DBLP

Topics

Resources

Stars

5 stars

Watchers

1 watching

Forks

Releases

Used by

Contributors

Languages