Skip to content

bateman/dblp-search-ext

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 BibTeX entries.

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.
  • 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.
  • 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 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. Click the 'Copy BibTeX' button next to a result to copy its BibTeX entry to your clipboard.

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
make build/clean       # Clean build directory and stamps

Note

Safari build will start only on macOS if Xcode is installed.

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 build/chrome directory in your project folder.

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. Navigate to the build/firefox directory in your project folder and select it.

Development Commands

make run/chrome        # Launch Chrome with extension loaded (dev mode)
make run/firefox       # Launch Firefox Dev Edition with extension
make run/safari        # Launch Safari with extension
make run/edge          # Launch Edge with extension
make info              # Show development environment info

Use DEFAULT_URL="https://example.com" to set the opening page for run commands.

Note

  • Browser must not be running before executing make run/* commands
  • Unlike Chrome, Edge does not run in development mode
  • For Firefox, the script assumes you have Firefox Developer Edition installed. You can easily change the name to Firefox in the make script; it also requires web-ext to be installed.

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 manifest.firefox.json (both are updated).

Testing

No automated test suite. Testing is manual:

  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).