Skip to content

Commit d92c0f8

Browse files
committed
accept root query parameter for root-relative urls
1 parent e88ae21 commit d92c0f8

File tree

3 files changed

+5
-12
lines changed

3 files changed

+5
-12
lines changed

index.js

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -26,14 +26,15 @@ module.exports = function(content) {
2626
else
2727
throw new Error("Invalid value to query parameter attrs");
2828
}
29+
var root = query.root;
2930
var links = attrParse(content, function(tag, attr) {
3031
return attributes.indexOf(tag + ":" + attr) >= 0;
3132
});
3233
links.reverse();
3334
var data = {};
3435
content = [content];
3536
links.forEach(function(link) {
36-
if(/^data:|^(https?:)?\/\/|^[\{\}\[\]#*;,'§\$%&\(=?`´\^°<>]/.test(link.value)) return;
37+
if(!loaderUtils.isUrlRequest(link.value, root)) return;
3738
do {
3839
var ident = randomIdent();
3940
} while(data[ident]);
@@ -59,14 +60,6 @@ module.exports = function(content) {
5960
}
6061
return "module.exports = " + JSON.stringify(content).replace(/xxxHTMLLINKxxx[0-9\.]+xxx/g, function(match) {
6162
if(!data[match]) return match;
62-
return '" + require(' + JSON.stringify(urlToRequire(data[match])) + ') + "';
63+
return '" + require(' + JSON.stringify(loaderUtils.urlToRequest(data[match], root)) + ') + "';
6364
}) + ";";
6465
}
65-
66-
function urlToRequire(url) {
67-
if(/^~/.test(url))
68-
return url.substring(1);
69-
else
70-
return "./"+url;
71-
}
72-

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"dependencies": {
77
"html-minifier": "0.5.x",
88
"source-map": "0.1.x",
9-
"loader-utils": "0.2.x"
9+
"loader-utils": "~0.2.2"
1010
},
1111
"devDependencies": {
1212
"mocha": "1.17.x",

test/loaderTest.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ describe("loader", function() {
4848
});
4949
it("should accept root from query", function() {
5050
loader.call({
51-
query: "?root=/test/"
51+
query: "?root=/test"
5252
}, 'Text <img src="/image.png">').should.be.eql(
5353
'module.exports = "Text <img src=\\"" + require("/test/image.png") + "\\">";'
5454
);

0 commit comments

Comments
 (0)