Skip to content

archisman-panigrahi/QuickBib

Repository files navigation


QuickBib

This is a cross platform app that enables you to get the bibtex entry from a DOI number, arXiv ID, article url (supports Nature journals, APS journals, ACS journals, AMS journals, Science, PNAS, ScienceDirect, IOP Science, SciPost and more) or article title. It uses doi2bib3 as its backend. Written in Python, QuickBib is licensed under GPLv3.



Star History

Star History Chart

Stargazers repo roster for @archisman-panigrahi/QuickBub

How to install?

GNU/Linux

Flathub version Packaging status

Ubuntu/Mint

You can use our official PPA

sudo add-apt-repository ppa:apandada1/quickbib
sudo apt update
sudo apt install quickbib

On Debian,you can download and install the prebuilt .deb package from the PPA (or, use Flatpak/Snap).

Arch Linux/EndeavourOS/Manjaro

You can get it from the AUR

yay -S quickbib

Distro agnostic method

QuickBib is available on Flathub and Snap Store.

Get it on Flathub Get it from the Snap Store

Install from source with meson in GNU/Linux

Install the required dependencies, pyqt6 and doi2bib3. Afterwards, you can use meson to install quickbib.

git clone https://github.com/archisman-panigrahi/QuickBib.git
cd QuickBib
meson setup builddir --prefix="$HOME/.local"
meson install -C builddir

To uninstall,

meson uninstall -C builddir

Windows

QuickBib is available on Microsoft Store.

It can be also installed via winget. Open Windows Terminal/Powershell and run

winget install -e --id archisman-panigrahi.QuickBib

Alternatively, prebuilt installers are available to download from GitHub Releases. Note that Windows smartscreen might complain because it doesn't know about this app and you would have to manually bypass it.

Web App

A web app is available at https://archisman-panigrahi.github.io/QuickBib/webapp.

macOS

It is recommended that on macOS you use the web app instead. Continue reading to learn why.

No prebuilt macOS installers: Distributing an app that users can graphically install and run seems to require paying Apple perpetually (US$99/year) to sign and notarize the app even if the app is free — that’s plain extortion — so we ship the source instead. You can run QuickBib from source or build a macOS app using the packaging scripts on GitHub. If you have a better idea about how to package the macOS app in a more convenient way (without perpetually paying Apple), please let us know in GitHub Issues.

You can install the app's dependencies with pip and run from source (see below).

How to run from source? (works in GNU/Linux or macOS and perhaps also Windows with a little bit of tweaking)

  1. Clone the repo and enter it
git clone https://github.com/archisman-panigrahi/QuickBib.git
cd QuickBib
  1. Create and activate a virtual environment (recommended)
python3 -m venv .venv
source .venv/bin/activate
  1. Upgrade pip and install dependencies
python3 -m pip install --upgrade pip
pip install -r requirements.txt
  1. Run QuickBib from source

You can run the package module directly:

python3 -m quickbib

Or run the convenience script in bin/quickbib:

./bin/quickbib

Translations

QuickBib uses gettext-style PO translations in quickbib/po/. All translations were initially done with AI and only some were later modified by native speakers. Therefore there may be some mistakes/bad translation. PRs for modifications and addition of new languages are welcome!

Translation file format

Each language has one PO file:

quickbib/po/<language>/LC_MESSAGES/quickbib.po

For example:

quickbib/po/fr/LC_MESSAGES/quickbib.po
quickbib/po/pt_br/LC_MESSAGES/quickbib.po
quickbib/po/zh_cn/LC_MESSAGES/quickbib.po

In each entry, msgid is the English source text and msgstr is the translation. Translate only msgstr; keep msgid unchanged.

Improve an existing translation

  1. Open the PO file for the language you want to improve.
  2. Edit the msgstr values.
  3. Validate the PO files:
python3 validate_po.py --validate
  1. Open a pull request.

Add a new language

  1. Choose a language code, such as de, es, fr, pt_br, or zh_cn.
  2. Create a new directory using that language code:
mkdir -p quickbib/po/<language>/LC_MESSAGES
  1. Copy the English PO file:
cp quickbib/po/en/LC_MESSAGES/quickbib.po quickbib/po/<language>/LC_MESSAGES/quickbib.po
  1. Edit the new file and translate the msgstr values. Keep msgid unchanged.
  2. Update the Language: header in the new file to match the language code.
  3. Validate the PO files:
python3 validate_po.py --validate
  1. Open a pull request.

Update PO files after source changes

When adding or removing calls like tr("Text to translate") in the source code, refresh the PO files before validating:

python3 validate_po.py --extract
python3 validate_po.py --validate

--extract adds new English strings, removes unused strings, and refreshes source line references while keeping existing translations.

To test a specific locale locally, set LANG (or LC_ALL if your environment already sets it), for example:

LANG=es python3 -m quickbib