UNPKG

rehype-citation

Version:

rehype plugin to add citation and bibliography from bibtex files

51 lines (50 loc) 1.57 kB
// @ts-nocheck import { chain as parseInput, chainAsync as parseInputAsync } from '../plugins/input/index.js'; import fetchId from '../util/fetchId.js'; function add(data, options = {}, log = false) { if (options === true || log === true) { this.save(); } this.data.push(...parseInput(data, options)); this.data .filter((entry) => !Object.prototype.hasOwnProperty.call(entry, 'id')) .forEach((entry) => { entry.id = fetchId(this.getIds(), 'temp_id_'); }); return this; } async function addAsync(data, options = {}, log = false) { if (options === true || log === true) { this.save(); } this.data.push(...(await parseInputAsync(data, options))); this.data .filter((entry) => !Object.prototype.hasOwnProperty.call(entry, 'id')) .forEach((entry) => { entry.id = fetchId(this.getIds(), 'temp_id_'); }); return this; } function set(data, options = {}, log = false) { if (options === true || log === true) { this.save(); } this.data = []; return typeof options !== 'boolean' ? this.add(data, options) : this.add(data); } async function setAsync(data, options = {}, log = false) { if (options === true || log === true) { this.save(); } this.data = []; return typeof options !== 'boolean' ? this.addAsync(data, options) : this.addAsync(data); } function reset(log) { if (log) { this.save(); } this.data = []; this._options = {}; return this; } export { add, addAsync, set, setAsync, reset };