BibTeX to CSL-JSON Converter

Convert BibTeX to Citation Style Language JSON for Pandoc and editors

Ad placeholder (leaderboard)

Convert BibTeX to CSL-JSON

CSL-JSON is the bibliography format that Pandoc, citeproc-js, and reference managers like Zotero use internally. If you write in Markdown and render with Pandoc, a .json bibliography is often cleaner to work with than .bib. This tool reads standard BibTeX entries and emits a CSL-JSON array you can drop into your Pandoc workflow.

How it works

The parser scans for @type{key, ...} blocks, tracking brace depth so nested braces inside a field value do not end the entry early. Each field = {value} or field = "value" pair is captured, and surrounding braces and quotes are stripped.

Fields are then mapped onto CSL variables: title→title, journal/booktitle→container-title, volume→volume, number→issue, pages→page (with -- normalised to -), doi→DOI, publisher→publisher. The author and editor fields are split on and into CSL name objects with family/given. The year becomes an issued object whose date-parts is [[year]]. The BibTeX entry type chooses the CSL type (@articlearticle-journal, @inproceedingspaper-conference, and so on).

Notes

The output id of each CSL item is the BibTeX cite key, so in-text citations like [@Smith2021] keep working after conversion. Page ranges written with a single hyphen, an en-dash, or -- are all normalised to a single hyphen, which is what CSL expects.

Ad placeholder (rectangle)