Repository URL to install this package:
|
Version:
1.1.21 ▾
|
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.prettify = prettify;
exports.default = void 0;
// simple syntax highlighter and formatter
const formats = {
tabs(match) {
return '\t' + match;
},
newlines(match, group) {
// /*_*/
return group + (group === '}' ? '\n\n' : '\n');
},
value(match, group) {
return ': <span class=value>' + group.trim() + '</span>;';
},
valueIndent(match, group) {
return ': ' + group.trim() + ';';
},
selectorNewLine(match, group) {
return '' + group.trim() + ' {\n';
},
selector(match, group) {
return '<span class=selector>' + group.trim() + '</span> {\n';
},
block(match, group1, group2, group3) {
// /*_*/
return group1 + group2.split('\n').join('\n\t') + group3;
},
string(match) {
return '<span class=string>' + match.trim() + '</span>';
}
}; // @todo re-format tags for demo out back for debug
function prettify(css) {
let processed = css;
processed = processed.replace(/(;|\})/g, formats.newlines); // processed = processed.replace(/(.*?)\{/g, formats.selector)
processed = processed.replace(/(.*?)\{/g, formats.selectorNewLine);
processed = processed.replace(/:(.*);/g, formats.valueIndent);
processed = processed.replace(/^.*;$/gm, formats.tabs);
processed = processed.replace(/\}\n\n\}/g, '}\n}');
processed = processed.replace(/(.*@.*\{)([^\0]+\})(\n\})/g, formats.block); // processed = processed.replace(/['"`].*?['"`]/g, formats.string)
return `\n` + processed;
}
var _default = prettify;
exports.default = _default;