@zettlr/citr
Version:
A small library to parse Markdown Citeproc notation as CSL JSON
36 lines (35 loc) • 1.09 kB
JavaScript
;
/*!
* BEGIN HEADER
*
* Contains: A utility function to extract citations from a piece of text.
* Maintainer: Hendrik Erz
* License: GNU GPL v3
*
* Description: Simply pass a full Markdown file to this function to extract
* all citations as an array.
*
* END HEADER
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.extractCitations = void 0;
const validator_1 = require("./validator");
const regex_1 = require("./regex");
function extractCitations(file, strict = false) {
let allCitations = [];
let citation;
while ((citation = regex_1.citationExtractionRE.exec(file)) !== null) {
if (citation[3]) {
if (!validator_1.validateCitationID(citation[3], strict))
continue;
allCitations.push(citation[3]);
}
else if (citation[1]) {
if (!validator_1.validateFullCitation(citation[1]))
continue;
allCitations.push(citation[1]);
}
}
return allCitations;
}
exports.extractCitations = extractCitations;