63 lines
1.7 KiB
JavaScript
63 lines
1.7 KiB
JavaScript
|
(function() {
|
||
|
var LessPlugin;
|
||
|
|
||
|
module.exports = LessPlugin = (function() {
|
||
|
LessPlugin.identifier = 'less';
|
||
|
|
||
|
LessPlugin.version = '1.0';
|
||
|
|
||
|
function LessPlugin(window, host) {
|
||
|
this.window = window;
|
||
|
this.host = host;
|
||
|
}
|
||
|
|
||
|
LessPlugin.prototype.reload = function(path, options) {
|
||
|
if (this.window.less && this.window.less.refresh) {
|
||
|
if (path.match(/\.less$/i)) {
|
||
|
return this.reloadLess(path);
|
||
|
}
|
||
|
if (options.originalPath.match(/\.less$/i)) {
|
||
|
return this.reloadLess(options.originalPath);
|
||
|
}
|
||
|
}
|
||
|
return false;
|
||
|
};
|
||
|
|
||
|
LessPlugin.prototype.reloadLess = function(path) {
|
||
|
var i, len, link, links;
|
||
|
links = (function() {
|
||
|
var i, len, ref, results;
|
||
|
ref = document.getElementsByTagName('link');
|
||
|
results = [];
|
||
|
for (i = 0, len = ref.length; i < len; i++) {
|
||
|
link = ref[i];
|
||
|
if (link.href && link.rel.match(/^stylesheet\/less$/i) || (link.rel.match(/stylesheet/i) && link.type.match(/^text\/(x-)?less$/i))) {
|
||
|
results.push(link);
|
||
|
}
|
||
|
}
|
||
|
return results;
|
||
|
})();
|
||
|
if (links.length === 0) {
|
||
|
return false;
|
||
|
}
|
||
|
for (i = 0, len = links.length; i < len; i++) {
|
||
|
link = links[i];
|
||
|
link.href = this.host.generateCacheBustUrl(link.href);
|
||
|
}
|
||
|
this.host.console.log("LiveReload is asking LESS to recompile all stylesheets");
|
||
|
this.window.less.refresh(true);
|
||
|
return true;
|
||
|
};
|
||
|
|
||
|
LessPlugin.prototype.analyze = function() {
|
||
|
return {
|
||
|
disable: !!(this.window.less && this.window.less.refresh)
|
||
|
};
|
||
|
};
|
||
|
|
||
|
return LessPlugin;
|
||
|
|
||
|
})();
|
||
|
|
||
|
}).call(this);
|