aboutsummaryrefslogtreecommitdiff
path: root/node_modules/postcss-discard-comments/dist/index.js
diff options
context:
space:
mode:
authorruki <waruqi@gmail.com>2018-11-08 00:38:48 +0800
committerruki <waruqi@gmail.com>2018-11-07 21:53:09 +0800
commit26105034da4fcce7ac883c899d781f016559310d (patch)
treec459a5dc4e3aa0972d9919033ece511ce76dd129 /node_modules/postcss-discard-comments/dist/index.js
parent2c77f00f1a7ecb6c8192f9c16d3b2001b254a107 (diff)
downloadxmake-docs-26105034da4fcce7ac883c899d781f016559310d.tar.gz
xmake-docs-26105034da4fcce7ac883c899d781f016559310d.zip
switch to vuepress
Diffstat (limited to 'node_modules/postcss-discard-comments/dist/index.js')
-rw-r--r--node_modules/postcss-discard-comments/dist/index.js98
1 files changed, 98 insertions, 0 deletions
diff --git a/node_modules/postcss-discard-comments/dist/index.js b/node_modules/postcss-discard-comments/dist/index.js
new file mode 100644
index 00000000..92de696d
--- /dev/null
+++ b/node_modules/postcss-discard-comments/dist/index.js
@@ -0,0 +1,98 @@
+'use strict';
+
+exports.__esModule = true;
+
+var _commentRemover = require('./lib/commentRemover');
+
+var _commentRemover2 = _interopRequireDefault(_commentRemover);
+
+var _commentParser = require('./lib/commentParser');
+
+var _commentParser2 = _interopRequireDefault(_commentParser);
+
+var _postcss = require('postcss');
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+var space = _postcss.list.space;
+
+exports.default = (0, _postcss.plugin)('postcss-discard-comments', function () {
+ var opts = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
+
+ var remover = new _commentRemover2.default(opts);
+
+ function matchesComments(source) {
+ return (0, _commentParser2.default)(source).filter(function (node) {
+ return node.type === 'comment';
+ });
+ }
+
+ function replaceComments(source) {
+ var separator = arguments.length <= 1 || arguments[1] === undefined ? ' ' : arguments[1];
+
+ if (!source) {
+ return source;
+ }
+ var parsed = (0, _commentParser2.default)(source).reduce(function (value, node) {
+ if (node.type !== 'comment') {
+ return value + node.value;
+ }
+ if (remover.canRemove(node.value)) {
+ return value + separator;
+ }
+ return value + '/*' + node.value + '*/';
+ }, '');
+
+ return space(parsed).join(' ');
+ }
+
+ return function (css) {
+ css.walk(function (node) {
+ if (node.type === 'comment' && remover.canRemove(node.text)) {
+ node.remove();
+ return;
+ }
+
+ if (node.raws.between) {
+ node.raws.between = replaceComments(node.raws.between);
+ }
+
+ if (node.type === 'decl') {
+ if (node.raws.value && node.raws.value.raw) {
+ if (node.raws.value.value === node.value) {
+ node.value = replaceComments(node.raws.value.raw);
+ } else {
+ node.value = replaceComments(node.value);
+ }
+ node.raws.value = null;
+ }
+ if (node.raws.important) {
+ node.raws.important = replaceComments(node.raws.important);
+ var b = matchesComments(node.raws.important);
+ node.raws.important = b.length ? node.raws.important : '!important';
+ }
+ return;
+ }
+
+ if (node.type === 'rule' && node.raws.selector && node.raws.selector.raw) {
+ node.raws.selector.raw = replaceComments(node.raws.selector.raw, '');
+ return;
+ }
+
+ if (node.type === 'atrule') {
+ if (node.raws.afterName) {
+ var commentsReplaced = replaceComments(node.raws.afterName);
+ if (!commentsReplaced.length) {
+ node.raws.afterName = commentsReplaced + ' ';
+ } else {
+ node.raws.afterName = ' ' + commentsReplaced + ' ';
+ }
+ }
+ if (node.raws.params && node.raws.params.raw) {
+ node.raws.params.raw = replaceComments(node.raws.params.raw);
+ }
+ }
+ });
+ };
+});
+module.exports = exports['default']; \ No newline at end of file