Skip to content

Commit 187b006

Browse files
committed
skip over src modules
1 parent 7454e1a commit 187b006

File tree

2 files changed

+32
-12
lines changed

2 files changed

+32
-12
lines changed

codepen-data.js

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,41 @@
1-
var scriptRegExp = /<script\s([^>]+)>([\s\S]*?)<\/script>/i;
1+
var scriptRegExp = /<script\s([^>]+)>([\s\S]*?)<\/script>/ig;
22
var styleRegExp = /<style>([\s\S]*?)<\/style>/i;
33
var moduleTest = /type=["']module["']/;
4+
var srcTest = /src=/;
45
var types = {
56
html: function htmlType(text){
6-
// test if a module script tag exists
7-
var results = text.match(scriptRegExp);
8-
if(results) {
9-
var attrs = results[1];
10-
if(moduleTest.test(attrs)) {
117

12-
var HTML = text.replace(results[0],"").trim();
8+
var result;
9+
10+
text.replace(scriptRegExp, function(match, attrs, code){
11+
12+
if(moduleTest.test(attrs) && !srcTest.test(attrs)) {
13+
14+
var HTML = text.replace(match,"").trim();
1315

1416
var styleResults = HTML.match(styleRegExp);
1517
if(styleResults) {
1618
HTML = HTML.replace(styleResults[0],"").trim();
17-
return {
19+
result = {
1820
html: HTML,
19-
js: results[2],
21+
js: code.trim(),
2022
js_module: true,
2123
editors: "1011",
2224
css: styleResults[1].trim()
2325
};
2426
} else {
25-
return {
27+
result = {
2628
html: HTML,
27-
js: results[2],
29+
js: code.trim(),
2830
js_module: true,
2931
editors: "1011"
3032
};
3133
}
3234

3335

3436
}
35-
}
37+
});
38+
return result;
3639
},
3740
js: function (text){
3841
return {

test.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ var assert = require("assert");
22
var generate = require("bit-docs-generate-html/generate");
33
var path = require("path");
44
var fs = require("fs");
5+
var codepenData = require("./codepen-data");
56

67
var Browser = require("zombie");
78
var connect = require("connect");
@@ -74,4 +75,20 @@ describe("bit-docs-html-codepen-link", function() {
7475
}, done);
7576
}, done);
7677
});
78+
79+
it("is able to ignore scripts with sources", function(){
80+
var data = codepenData.html(`
81+
<mock-url></mock-url>
82+
<bit-json-editor></bit-json-editor>
83+
<script src="//unpkg.com/mock-url@^5.0.0" type="module"></script>
84+
<script src="//unpkg.com/bit-json-editor@^5.0.0" type="module"></script>
85+
<script type="module">
86+
foo = "bar";
87+
</script>
88+
<style>
89+
bit-json-editor { height: 200px; }
90+
</style>
91+
`);
92+
assert.equal(data.js, 'foo = "bar";')
93+
});
7794
});

0 commit comments

Comments
 (0)