Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
Size: Mime:
"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;