Awesome
cffconvert
Command line program to validate and convert CITATION.cff
files.
Supported input versions of the Citation File Format
Citation File Format schema version | Link to Zenodo release |
---|---|
1.3.0 | unreleased |
1.2.0 | |
1.1.0 | |
1.0.3 | |
1.0.2 | |
1.0.1 |
Supported output formats
- APA-like plaintext
- BibTeX
- CodeMeta
- EndNote
- RIS
- schema.org JSON
- Zenodo JSON
cffconvert
does not support converting items from references
or preferred-citation
keys at the moment.
Installing
To install in user space,
python3 -m pip install --user cffconvert
Ensure that the user space directory ~/.local/bin/
is on the PATH
.
which cffconvert
should now return the location of the program.
See docs/alternative-install-options.md for alternative install options.
Docker
cffconvert
is available from DockerHub: https://hub.docker.com/r/citationcff/cffconvert
Example usage:
docker run --rm -v $PWD:/app citationcff/cffconvert --validate
docker run --rm -v $PWD:/app citationcff/cffconvert --version
docker run --rm -v $PWD:/app citationcff/cffconvert --help
# etc
pre-commit
hook
cffconvert
is also available as a pre-commit hook. Add the following to your
.pre-commit-config.yaml
file to start validating your CITATION.cff automatically whenever you issue a git commit
:
repos:
- repo: https://github.com/citation-file-format/cffconvert
rev: 054bda51dbe278b3e86f27c890e3f3ac877d616c
hooks:
- id: validate-cff
Command line interface
See cffconvert
's options:
cffconvert --help
Shows:
Usage: cffconvert [OPTIONS]
Command line program to validate and convert CITATION.cff files.
Options:
-i, --infile PATH Path to the CITATION.cff input file. If this
option is omitted, './CITATION.cff' is used.
-o, --outfile PATH Path to the output file.
-f, --format [apalike|bibtex|cff|codemeta|endnote|ris|schema.org|zenodo]
Output format.
-u, --url TEXT URL to the CITATION.cff input file.
-h, --help Show help and exit.
--show-trace Show error trace.
--validate Validate the CITATION.cff file and exit.
--version Print version and exit.
--verbose Control output verbosity.
If this program is useful to you, consider giving it a star on GitHub:
https://github.com/citation-file-format/cffconvert
Example usage
Validating a local CITATION.cff file
cffconvert --validate
cffconvert --validate -i CITATION.cff
cffconvert --validate -i ${PWD}/CITATION.cff
cffconvert --validate -i ../some-other-dir/CITATION.cff
Validating a remote CITATION.cff file
cffconvert --validate --url https://github.com/<org>/<repo>
cffconvert --validate --url https://github.com/<org>/<repo>/commit/<sha>
cffconvert --validate --url https://github.com/<org>/<repo>/tree/<sha>
cffconvert --validate --url https://github.com/<org>/<repo>/tree/<tag>
cffconvert --validate --url https://github.com/<org>/<repo>/tree/<branch>
Converting metadata to other formats
If there is a valid CITATION.cff
file in the current directory, you can convert to various other formats and
print the result on standard out with:
cffconvert -f bibtex
cffconvert -f codemeta
cffconvert -f endnote
cffconvert -f ris
cffconvert -f schema.org
cffconvert -f zenodo
cffconvert -f apalike
Writing to a file
# with i/o redirection:
cffconvert -f bibtex > bibtex.bib
cffconvert -f zenodo > .zenodo.json
cffconvert -f endnote > ${PWD}/endnote.enw
# etc
# without i/o redirection
cffconvert -f bibtex -o bibtex.bib
cffconvert -f zenodo -o .zenodo.json
cffconvert -f endnote -o ${PWD}/endnote.enw
# etc