package bibfmt

  1. Overview
  2. Docs
CLI tools to format and deduplicate bibtex files

Install

dune-project
 Dependency

Authors

Maintainers

Sources

doi2bib-0.9.2.tbz
sha256=58e1588f0923de4573dd8bf0637d0b0695126f66558a08f8758211f0eda89557
sha512=11bf9a488a4b23b50ba452d0bdea25a7101c69743dfa91e8a38ef651f589e32445fe65e45c8966cb383713824ec825171656449f28eda09684a933d10e6775f3

doc/CHANGES.html

0.9.2 (2026-03-03)

  • doi2bib: drop dependency on astring (we can do everything with ocaml 4.14+ standard library).
  • doi2bib: add some escaping of html entities that may appear in field values returned by the DOI API (e.g., & becomes \&).

0.9.1 (2026-02-26)

  • bibfmt: added -l/--single-line flag to collapse newlines within field values into a single space.
  • bibfmt: field values are now trimmed of leading and trailing whitespace when pretty-printing.
  • bibfmt: empty fields (values that are empty or whitespace-only after trimming) are now dropped when pretty-printing.
  • bibfmt: column alignment is now computed from the fields that remain after filtering, so dropped fields no longer affect padding.

0.9.0 (2025-12-10)

  • bibfmt: reduced default verbosity, introduced --verbose flag to show detailed processing information.
  • (breaking) bibfmt and bibdedup: updated CLI flags. Now bibfmt directly accepts a list of files. To make it read from stdin, useful for autoformatting, use - as filename.
  • doi2bib: now supports processing multiple IDs at once from the command line (e.g., doi2bib ID1 ID2 ID3).
  • bibfmt: allow . and / in the citekey.

0.7.9 (2025-10-12)

  • bibfmt: added --quiet flag to suppress all output except errors.
  • bibfmt: added --force flag to ignore parsing errors and output only successfully parsed entries.
  • bibfmt: refactored deduplication functions - moved all deduplication logic (deduplicate_entries, resolve_conflicts, merge_entries_non_interactive) from library to bibdedup CLI tool. The library now provides only the core find_duplicate_groups function for programmatic use.

0.7.8 (2025-10-09)

  • bibfmt: introduced new bibdedup CLI tool for deduplicating BibTeX entries across multiple files.
  • bibfmt: added deduplication library functions (deduplicate_entries, find_duplicate_groups, merge_entries_non_interactive) with support for configurable keys.
  • bibfmt: in strict mode, print a warning if there are multiple repeated citekeys (case-insensitive).

0.7.7 (2025-08-07)

  • bibfmt and doi2bib drop the month field in bibtex. It is useless and the way DOI API reports it is also incompatible with many bibtex configurations.
  • doi2bib: fix for changes in PubMed API
  • bibfmt: add support for field entries capitalization and stricter parsing. Now, by default, field names are always upper cased.
  • doi2bib: make the parser fails if there are duplicate fields in a bibtex entry.

0.7.6 (2025-06-24)

  • Introduced new bibfmt tool and library (as a new package) for pretty printing and formatting BibTeX files.
  • doi2bib: always uses the improved BibTeX pretty-printer from bibfmt for output.
  • doi2bib: removed custom url-unescaping logic; this is now handled by bibfmt in a more systematic way.
  • Improved error reporting if parsing a BibTeX entry fails.

0.6.2 (2022-10-17)

  • Workaround for %-escapes in crossref's doi url field

0.6.1 (2022-02-03)

  • Fix batch processing: don't quit if some IDs are invalid
  • Fix static compilation of artifacts

0.6.0 (2022-02-03)

  • Support batch processing of files of IDs
  • Support append result to file

0.5.2 (2021-12-17)

  • Move from cuz to the published clz
  • Move from dx.doi.org to crossref rest api service, the latter gives better and more consistent results and does not seem to require a fallback service any longer
  • Update arxiv generated bibtex accordingly
  • Update ocamlformat

0.5.1 (2021-07-01)

  • Fix for transitive dependency in cuz
  • Improved lower bounds on the opam file

0.5.0 (2021-07-01)

  • Use cuz for the get calls with compression
  • Use arxiv.org/bibtex to obtain the bibtex entry for unpublished arxiv manuscripts and rely on the manual generation only if that fails reachable.
  • Handcrafted pretty printing of the output from crossref

0.4.1 (2021-04-20)

  • Fix incorrect use of Lwt.ignore_result

0.4.0 (2021-04-02)

  • Added support for gzipped stream using decompress