All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Updated CLI help text example for
--searchto use a more realistic query
- arXiv DOIs from search results now correctly route to arxiv.org (previously failed with HTML response)
- Commas in search queries are now preserved (e.g., "Smith, John 2024" no longer splits into two queries)
- DOI and DOI URL forms are now deduplicated (e.g.,
10.1234/xandhttps://doi.org/10.1234/x) - arXiv DOIs with different casing are now deduplicated (e.g.,
arXivvsarxiv) - Invalid BibTeX responses (e.g., HTML from Zenodo) now show a warning instead of crashing
- Exit code is now 1 when all search results fail to resolve
- Internal refactoring: introduced
BibTeXEntrydataclass for cleaner BibTeX manipulation - Internal refactoring: consolidated resolution logic into
resolve_to_bibtex()function
- Switched from Crossref to OpenAlex API for free-text search
- Replaced
--config-emailwith--config-api-keyfor OpenAlex API key - API key warning now shows only once per session (instead of on every search)
- Improved error message when results exist but none have DOIs
- Support for
OPENALEX_API_KEYenvironment variable (takes precedence over config file)
--config-exclude-issnflag to toggle exclusion of ISSN from BibTeX entries--config-exclude-doiflag to toggle exclusion of DOI from BibTeX entries (already included in URL)
- arXiv DOI support: DOIs starting with
10.48550/arXiv.*are now routed to arxiv.org's BibTeX endpoint --config-protect-titlesflag to toggle double-bracing of titles (preserves capitalization in BibTeX)- Confirmation messages when changing config settings
-n/--max-resultsflag to control number of results for free-text searches (1-100, default: 1)- Graceful handling of individual DOI failures within free-text searches
- Warning messages for failed DOIs include a URL to try manually
-v/--verboseflag (not useful in practice)
search_crossref()now returns a list of DOIs instead of a single DOI
- Initial release
- DOI resolution via doi.org
- Free-text search via Crossref API
- BibTeX formatting
- File input (
--file) and output (--output,--append) - Configurable email for API requests (
--config-email)