UNPKG

@citation-js/plugin-yaml

Version:

Citation.js plugin for YAML files

56 lines (45 loc) 1.17 kB
"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 }); } } });