A BitTeX parser implemented in JavaScript (ES6) based on the BibTeX Grammar.
Transforming a BibTeX file to an object in memory or a semi-structured file on disk.
- Full (insensitive-case) entry types support
- To a JSON object
- To a JSON string
- Browser support
- NPM support
- Typing support for TypeScript projects
Input:
@inproceedings{ding_dagbase_2020,
title = {Dagbase: a decentralized database platform {Using} {DAG}-based consensus},
copyright = {All rights reserved},
isbn = {1-72817-303-5},
booktitle = {2020 {IEEE} 44th {Annual} {Computers}, {Software}, and {Applications} {Conference} ({COMPSAC})},
publisher = {IEEE},
author = {Ding, Yepeng and Sato, Hiroyuki},
year = {2020},
pages = {798--807},
}
@article{ding_formalism-driven_2022,
title = {Formalism-{Driven} {Development}: {Concepts}, {Taxonomy}, and {Practice}},
volume = {12},
copyright = {All rights reserved},
issn = {2076-3417},
url = {https://www.mdpi.com/2076-3417/12/7/3415},
doi = {10.3390/app12073415},
number = {7},
journal = {Applied Sciences},
author = {Ding, Yepeng and Sato, Hiroyuki},
year = {2022},
}
Output:
[
{
"id": "ding_dagbase_2020",
"type": "inproceedings",
"title": "Dagbase: a decentralized database platform Using DAG-based consensus",
"copyright": "All rights reserved",
"isbn": "1-72817-303-5",
"booktitle": "2020 IEEE 44th Annual Computers, Software, and Applications Conference (COMPSAC)",
"publisher": "IEEE",
"author": "Ding, Yepeng and Sato, Hiroyuki",
"year": "2020",
"pages": "798--807"
},
{
"id": "ding_formalism-driven_2022",
"type": "article",
"title": "Formalism-Driven Development: Concepts, Taxonomy, and Practice",
"volume": "12",
"copyright": "All rights reserved",
"issn": "2076-3417",
"url": "https://www.mdpi.com/2076-3417/12/7/3415",
"doi": "10.3390/app12073415",
"number": "7",
"journal": "Applied Sciences",
"author": "Ding, Yepeng and Sato, Hiroyuki",
"year": "2022"
}
]
- Install
bibtex-js-parser
from npm registry.
npm i bibtex-js-parser
- Import
BibtexParser
.
import {BibtexParser} from "bibtex-js-parser";
- Parse a BibTeX string.
const bibJSON = BibtexParser.parseToJSON(input);
const bibJSONString = BibtexParser.parseToJSONString(input);
- Include
bibtex-js-parser.js
from CDN.
<script src="https://unpkg.com/bibtex-js-parser/umd/bibtex-js-parser.js"></script>
- Use exposed functions.
<script>
const bibJSON = BibtexParser.parseToJSON(input);
const bibJSONString = BibtexParser.parseToJSONString(input);
</script>
Environment
- Node.js v17.3.1
Build a CommonJS script to dist/dev/bibtex-js-parser-dev.js
with source map.
npm run dev
Configuration is changeable in .webpack.config.dev.js
.
Run tests defined in test
after building for dev.
npm run test
Build a UMD script to umd/bibtex-js-parser.js
and a CommonJS script to cjs/bibtex-js-parser.js
.
npm run build
Configuration is changeable in .webpack.config.prod.js
.
- Build
bibtex-js-parser.js
for production. - Import
bibtex-js-parser.js
in your project. - Use exposed functions
parseToJSON
orparseToJSONString
under namespaceBibtexParser
.