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.
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:
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/cffconvertExample 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.cffValidating 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