From 5fb455eae204b99491fc059b007fe81c4b575256 Mon Sep 17 00:00:00 2001 From: Ivan Demidov Date: Mon, 24 Jun 2019 17:52:34 +0300 Subject: [PATCH 1/7] build: update depDev --- package.json | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 7c7295d..73480a9 100644 --- a/package.json +++ b/package.json @@ -3,14 +3,13 @@ "version": "0.1.1", "description": "posthtml style-to-file plugin", "main": "index.js", - "dependencies": { - }, + "dependencies": {}, "devDependencies": { - "chai": "^3.2.0", - "jscs": "^1.13.1", + "chai": "^4.2.0", + "jscs": "^3.0.7", "jshint": "^2.8.0", - "posthtml": "^0.3.0", - "mocha": "^2.2.5" + "mocha": "^6.1.4", + "posthtml": "^0.11.4" }, "scripts": { "test": "npm run lint && mocha", From 650008538f42348706f0b14103008f30a9ad1a9d Mon Sep 17 00:00:00 2001 From: Ivan Demidov Date: Tue, 25 Jun 2019 11:54:25 +0300 Subject: [PATCH 2/7] test: for feat remove style --- test/test.js | 86 ++++++++++++++++++++++++++++++++------- test/testRemoveAll.html | 15 +++++++ test/testRemoveAttrs.html | 17 ++++++++ test/testRemoveTag.html | 15 +++++++ 4 files changed, 119 insertions(+), 14 deletions(-) create mode 100644 test/testRemoveAll.html create mode 100644 test/testRemoveAttrs.html create mode 100644 test/testRemoveTag.html diff --git a/test/test.js b/test/test.js index ccc6548..618aac9 100644 --- a/test/test.js +++ b/test/test.js @@ -4,30 +4,88 @@ var plugin = require('..'); var expect = require('chai').expect; var fs = require('fs'); -var HTML = fs.readFileSync('./test/test.html', 'utf-8'), - CSS = fs.readFileSync('./test/test.css', 'utf-8'); +var HTML = fs.readFileSync('./test/test.html', 'utf-8'); +var CSS = fs.readFileSync('./test/test.css', 'utf-8'); -function test(html, referenceCss, done) { +function test(html, options, callbackSuccess, callbackError) { posthtml() - .use(plugin({ path: './test/test2.css' })) + .use(plugin(options)) .process(html) - .then(function(/*result*/) { - setTimeout(function() { - expect(referenceCss).to.eql(fs.readFileSync('./test/test2.css', 'utf-8').toString()); - done(); - }, 20); - }).catch(function(error) { - done(error); - }); + .then(callbackSuccess) + .catch(callbackError); } describe('Simple test', function() { it('style to file', function(done) { test( HTML, - CSS, - done + { path: './test/test2.css' }, + function() { + setTimeout(function() { + expect(CSS).to.eql(fs.readFileSync('./test/test2.css', 'utf-8').toString()); + done(); + }, 20); + }, + function(error) { + done(error); + } ); }); + it('remove style attrs', function(done) { + test( + HTML, + { + path: './test/test2.css', + removeStyle: 'attrs' + }, + function(result) { + setTimeout(function() { + expect(result.html).to.eql(fs.readFileSync('./test/testRemoveAttrs.html', 'utf-8').toString()); + done(); + }, 20); + }, + function(error) { + done(error); + } + ); + }); + + it('remove style tag', function(done) { + test( + HTML, + { + path: './test/test2.css', + removeStyle: 'tag' + }, + function(result) { + setTimeout(function() { + expect(result.html).to.eql(fs.readFileSync('./test/testRemoveTag.html', 'utf-8').toString()); + done(); + }, 20); + }, + function(error) { + done(error); + } + ); + }); + + it('remove style all', function(done) { + test( + HTML, + { + path: './test/test2.css', + removeStyle: 'all' + }, + function(result) { + setTimeout(function() { + expect(result.html).to.eql(fs.readFileSync('./test/testRemoveAll.html', 'utf-8').toString()); + done(); + }, 20); + }, + function(error) { + done(error); + } + ); + }); }); diff --git a/test/testRemoveAll.html b/test/testRemoveAll.html new file mode 100644 index 0000000..4711247 --- /dev/null +++ b/test/testRemoveAll.html @@ -0,0 +1,15 @@ + + + Wow + + + +
+
+
+ Text +
+
+
+ + diff --git a/test/testRemoveAttrs.html b/test/testRemoveAttrs.html new file mode 100644 index 0000000..38cb66b --- /dev/null +++ b/test/testRemoveAttrs.html @@ -0,0 +1,17 @@ + + + Wow + + + +
+
+
+ Text +
+
+
+ + diff --git a/test/testRemoveTag.html b/test/testRemoveTag.html new file mode 100644 index 0000000..49d731c --- /dev/null +++ b/test/testRemoveTag.html @@ -0,0 +1,15 @@ + + + Wow + + + +
+
+
+ Text +
+
+
+ + From 4917203485398c1185d661d9a278926a45fa22ef Mon Sep 17 00:00:00 2001 From: Ivan Demidov Date: Tue, 25 Jun 2019 11:54:59 +0300 Subject: [PATCH 3/7] feat: remove style attrs and tag, close #1 --- index.js | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/index.js b/index.js index 557853e..372adb7 100644 --- a/index.js +++ b/index.js @@ -10,7 +10,12 @@ module.exports = function posthtmlStyleToFile(options) { tree.match({ tag: 'style' }, function(node) { buf += node.content[0].trim() || ''; - return node; + + if (options.removeStyle === 'tag' || options.removeStyle === 'all') { + return ''; + } + + return node; }); tree.match({ attrs: { style: true }}, function(node) { @@ -22,6 +27,11 @@ module.exports = function posthtmlStyleToFile(options) { node.tag + (node.attrs.id? ('#' + node.attrs.id ): '') + cls + '{' + node.attrs.style + '}'; + + if (options.removeStyle === 'attrs' || options.removeStyle === 'all') { + delete node.attrs.style; + } + return node; }); From 8d896808e65692adc6700a4ed095bf3e6fadb2ee Mon Sep 17 00:00:00 2001 From: Ivan Demidov Date: Tue, 25 Jun 2019 11:55:27 +0300 Subject: [PATCH 4/7] docs: add description for remove style --- readme.md | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/readme.md b/readme.md index b7d84b9..a694fda 100644 --- a/readme.md +++ b/readme.md @@ -18,9 +18,21 @@ npm i -D posthtml-style-to-file

Usage

-### Options +## Options -__`path`__ +#### `path` + +Type: `String` +Default: `./result.css` +Description: *Destination path, where the extracted CSS is saved to.* + +#### `removeStyle` + +Type: `String` +Default: `` +Description: *Removes the specified value `attrs` | `tag` | `all`* + +__`removeStyle`__ Destination path, where the extracted CSS is saved to. From 51f287f1377ba371137d35e57827912e16e6b4f1 Mon Sep 17 00:00:00 2001 From: Ivan Demidov Date: Tue, 25 Jun 2019 12:00:29 +0300 Subject: [PATCH 5/7] ci: add travis config --- .travis.yml | 9 +++++++++ package.json | 5 ++++- 2 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..156f12b --- /dev/null +++ b/.travis.yml @@ -0,0 +1,9 @@ +sudo: false +language: node_js +node_js: + - "node" + - "lts/*" + - "8" + +after_script: + - npm run coverage diff --git a/package.json b/package.json index 73480a9..1d41e42 100644 --- a/package.json +++ b/package.json @@ -6,13 +6,16 @@ "dependencies": {}, "devDependencies": { "chai": "^4.2.0", + "coveralls": "^3.0.4", "jscs": "^3.0.7", "jshint": "^2.8.0", "mocha": "^6.1.4", + "nyc": "^14.1.1", "posthtml": "^0.11.4" }, "scripts": { - "test": "npm run lint && mocha", + "coverage": "nyc report --reporter=text-lcov | coveralls", + "test": "npm run lint && nyc mocha", "lint": "jshint . && jscs . -v" }, "repository": { From 7d17ab08606adf435cef64a581d1bd270f9b7432 Mon Sep 17 00:00:00 2001 From: Ivan Demidov Date: Tue, 25 Jun 2019 12:00:52 +0300 Subject: [PATCH 6/7] build: update config ignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 46c912c..a84175b 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ # NODEJS node_modules npm-debug.log +.nyc_output From 56326c83204627820dcc832500c91265027a2a85 Mon Sep 17 00:00:00 2001 From: Ivan Demidov Date: Tue, 25 Jun 2019 14:16:54 +0300 Subject: [PATCH 7/7] 0.2.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 1d41e42..7052e46 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "posthtml-style-to-file", - "version": "0.1.1", + "version": "0.2.0", "description": "posthtml style-to-file plugin", "main": "index.js", "dependencies": {},