diff --git a/lib/inline-css-url.js b/lib/inline-css-url.js
index 19a95d0..5e71a82 100644
--- a/lib/inline-css-url.js
+++ b/lib/inline-css-url.js
@@ -1,5 +1,6 @@
var datauri = require('datauri');
var isLocalPath = require('is-local-path');
+var isTemplateExpression = require('./is-template-expression');
var path = require('path');
var postcss = require('postcss');
var postcssUrl = require('postcss-url');
@@ -33,7 +34,7 @@ var inline = function (css, filename) {
var result = postcss()
.use(postcssUrl({
url: function (urlPath) {
- if (isLocalPath(urlPath)) {
+ if (isLocalPath(urlPath) && !isTemplateExpression(urlPath)) {
urlPath = clean(urlPath);
urlPath = path.resolve(basePath, urlPath);
files.push(urlPath);
diff --git a/lib/inline-img.js b/lib/inline-img.js
index e7758cc..f68c1f6 100644
--- a/lib/inline-img.js
+++ b/lib/inline-img.js
@@ -1,6 +1,7 @@
var cheerio = require('cheerio');
var datauri = require('datauri');
var isLocalPath = require('is-local-path');
+var isTemplateExpression = require('./is-template-expression');
var path = require('path');
var inline = function (html, filename) {
@@ -8,7 +9,8 @@ var inline = function (html, filename) {
var basedir = path.dirname(filename);
var $ = cheerio.load(html, {decodeEntities: false});
var images = $('img').filter(function (index, element) {
- return isLocalPath($(element).attr('src'));
+ var path = $(element).attr('src');
+ return isLocalPath(path) && !isTemplateExpression(path);
});
images.each(function (index, element) {
var src = $(element).attr('src');
diff --git a/lib/is-template-expression.js b/lib/is-template-expression.js
new file mode 100644
index 0000000..d43c61b
--- /dev/null
+++ b/lib/is-template-expression.js
@@ -0,0 +1,14 @@
+/**
+ * Tests whether a path is a mustache template expression.
+ *
+ * Note: would be best if this was file extension specific
+ * (i.e. *.hbs => test for `{{ }}` )
+ *
+ * @param {String} path
+ * @return {Boolean}
+ */
+var isTemplateExpression = function (path) {
+ return /^{{.*}}$/.test(path);
+};
+
+module.exports = isTemplateExpression;
diff --git a/test/index.js b/test/index.js
index 1de3f9d..2e00dbd 100644
--- a/test/index.js
+++ b/test/index.js
@@ -152,6 +152,14 @@ describe('inlineHtml', function () {
var html = `
`;
return expect(inline(html)).to.eventually.equal(html);
});
+ it('ignore css url template expression paths', function () {
+ var html = ``;
+ return expect(inline(html)).to.eventually.equal(html);
+ });
+ it('ignore img src template expression paths', function () {
+ var html = `
`;
+ return expect(inline(html)).to.eventually.equal(html);
+ });
it('ignore query strings and hashes on local paths', function () {
var filename = path.resolve(__dirname, 'fixtures/file.txt');
var url = `${filename}?query=string#hash`;