πŸ“˜ yaml2bib: Convert YAML to BibTeX with Correct Journal Abbreviations Using Only DOIs πŸš€οƒ

license tests codecov docs version PyPI - Python Version

Introducing 🌟 yaml2bib, an easy-to-use and powerful Python library and command-line tool that seamlessly converts YAML files to BibTeX format, all while maintaining the correct journal abbreviations using only DOIs! πŸŽ‰ Whether you’re a researcher or a student, yaml2bib will simplify and streamline your bibliography management process. With an intuitive interface, customizable options, and compatibility as both a library and a command-line tool, it’s never been more convenient to create and maintain your citation records. Say goodbye to manual conversions and hello to yaml2bib! πŸš€

πŸ› οΈ Installation

pip install yaml2bib

πŸš€ Usage

Command Line Tool

Check out the help message yaml2bib --help:

```bash Usage: yaml2bib [OPTIONS] Options: --bib_fname TEXT Output file. (default: 'dissertation.bib') --dois_yaml TEXT The `key: doi` YAML file, may contain wildcards (*). (default: 'bib.yaml', example: '*/*.yaml') --replacements_yaml TEXT Replacements to perform, might be None. (default: None, example: 'replacements.yaml') --static_bib TEXT Static bib entries, might be None, may contain wildcards (*). (default: None, example: 'chapter_*/not_on_crossref.bib') --doi2bib_database TEXT The doi2bib database folder πŸ“ to not query doi.org more than needed. (default: 'yaml2bib-doi2bib.db') --crossref_database TEXT The Crossref database folder πŸ“ to not query crossref.org more than needed. (default: 'yaml2bib-doi2bib.db') --email TEXT E-mail πŸ“§ for crossref.org, such that one can make more API calls without getting blocked. (default: 'anonymous', example: 'bas@nijho.lt') --help Show this message and exit. ```

Example invocation for Bas Nijholt’s thesis:

yaml2bib \
  --bib_fname "dissertation.bib" \
  --dois_yaml "*/*.yaml" \
  --replacements_yaml "replacements.yaml" \
  --static_bib "chapter_*/not_on_crossref.bib" \
  --email "bas@nijho.lt"

Python Library

from yaml2bib import yaml2bib

yaml2bib(
    bib_fname="dissertation.bib",
    dois_yaml="*/*.yaml",
    replacements_yaml="replacements.yaml",
    static_bib="chapter_*/not_on_crossref.bib",
    email="bas@nijho.lt",
)

🌟 Full Example

Check out the ``examples` <[https://github.com/basnijholt/yaml](https://github.com/basnijholt/yaml>`_

Convert with:

yaml2bib \
  --bib_fname "example.bib" \
  --dois_yaml "example.yaml" \
  --replacements_yaml "replacements.yaml" \
  --static_bib "not_on_crossref.bib" \
  --email "bas@nijho.lt"