@citation-js/plugin-yaml
Version:
Citation.js plugin for YAML files
56 lines (45 loc) • 1.17 kB
JavaScript
"use strict";
var _jsYaml = _interopRequireDefault(require("js-yaml"));
var _core = require("@citation-js/core");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const timestampTag = 'tag:yaml.org,2002:timestamp';
const timestamp = _jsYaml.default.DEFAULT_SCHEMA.compiledTypeMap.scalar[timestampTag];
const date = new _jsYaml.default.Type(timestampTag, {
kind: 'scalar',
resolve: timestamp.resolve,
construct: timestamp.construct,
instanceOf: Date,
represent(object) {
return object.toISOString().split('T')[0];
}
});
const CFF_SCHEMA = _jsYaml.default.DEFAULT_SCHEMA.extend({
implicit: [date],
explicit: []
});
_core.plugins.add('@else', {
input: {
'@else/yaml': {
parseType: {
dataType: 'String',
tokenList: {
split: /\n(\s{2})*(-\s)?/,
token: /^[\w-]*: /,
every: false
}
},
parse(file) {
return _jsYaml.default.load(file, {
json: true
});
}
}
},
output: {
yaml(data) {
return _jsYaml.default.dump(data, {
schema: CFF_SCHEMA
});
}
}
});