From 215cd39c22d706c66d2cdcbfeb23c8919bc652f2 Mon Sep 17 00:00:00 2001 From: GreLI Date: Tue, 8 Mar 2016 20:35:00 +0300 Subject: [PATCH] minifyStyles: preserve CDATA if needed --- lib/svgo/js2svg.js | 3 ++- plugins/minifyStyles.js | 5 +++-- test/plugins/minifyStyles.03.svg | 17 +++++++++++++++++ 3 files changed, 22 insertions(+), 3 deletions(-) create mode 100644 test/plugins/minifyStyles.03.svg diff --git a/lib/svgo/js2svg.js b/lib/svgo/js2svg.js index 2d12eacf..d4f26376 100644 --- a/lib/svgo/js2svg.js +++ b/lib/svgo/js2svg.js @@ -202,7 +202,8 @@ JS2SVG.prototype.createComment = function(comment) { */ JS2SVG.prototype.createCDATA = function(cdata) { - return this.config.cdataStart + + return this.createIndent() + + this.config.cdataStart + cdata + this.config.cdataEnd; diff --git a/plugins/minifyStyles.js b/plugins/minifyStyles.js index e855624e..9698dbeb 100755 --- a/plugins/minifyStyles.js +++ b/plugins/minifyStyles.js @@ -43,10 +43,11 @@ exports.fn = function(item, svgoOptions) { if(item.elem) { if(item.isElem('style') && !item.isEmpty()) { - var styleCss = item.content[0].text || item.content[0].cdata || []; + var styleCss = item.content[0].text || item.content[0].cdata || [], + DATA = styleCss.indexOf('>') >= 0 || styleCss.indexOf('<') >= 0 ? 'cdata' : 'text'; if(styleCss.length > 0) { var styleCssMinified = minifyCss(styleCss, svgoOptions); - item.content[0].text = styleCssMinified; + item.content[0][DATA] = styleCssMinified; } } diff --git a/test/plugins/minifyStyles.03.svg b/test/plugins/minifyStyles.03.svg new file mode 100644 index 00000000..993218d5 --- /dev/null +++ b/test/plugins/minifyStyles.03.svg @@ -0,0 +1,17 @@ + + + + + +@@@ + + + + +