var mdnProperties = require('mdn-data/css/properties.json'); var mdnSyntaxes = require('mdn-data/css/syntaxes.json'); var patch = require('./patch.json'); var data = { properties: {}, types: {} }; function normalizeSyntax(syntax) { return syntax .replace(/</g, '<') .replace(/>/g, '>') .replace(/ /g, ' ') .replace(/&/g, '&'); } function patchDict(dict, patchDict) { for (var key in patchDict) { if (key in dict) { if (patchDict[key].syntax) { dict[key].syntax = patchDict[key].syntax; } else { delete dict[key]; } } else { if (patchDict[key].syntax) { dict[key] = patchDict[key]; } } } } // apply patch patchDict(mdnProperties, patch.properties); patchDict(mdnSyntaxes, patch.syntaxes); // normalize source mdnProperties syntaxes, since it uses html token for (var key in mdnProperties) { data.properties[key] = normalizeSyntax(mdnProperties[key].syntax); } for (var key in mdnSyntaxes) { data.types[key] = normalizeSyntax(mdnSyntaxes[key].syntax); } module.exports = data;