08-27-周三_17-09-29
This commit is contained in:
58
node_modules/gitbook-plugin-styles-less/index.js
generated
vendored
Normal file
58
node_modules/gitbook-plugin-styles-less/index.js
generated
vendored
Normal file
@@ -0,0 +1,58 @@
|
||||
var Q = require('q');
|
||||
var _ = require('lodash');
|
||||
var path = require('path');
|
||||
var fs = require('fs');
|
||||
var less = require('less');
|
||||
|
||||
// Compile a less file into a css
|
||||
function renderLESS(input, output) {
|
||||
var d = Q.defer();
|
||||
var lessinput = fs.readFileSync(input, {
|
||||
encoding: 'utf-8'
|
||||
});
|
||||
|
||||
less.render(lessinput, {
|
||||
paths: [
|
||||
path.dirname(input)
|
||||
],
|
||||
filename: path.basename(input),
|
||||
compress: true
|
||||
}, function (e, out) {
|
||||
if (e) return d.reject(e);
|
||||
|
||||
fs.writeFileSync(output, out.css);
|
||||
d.resolve();
|
||||
});
|
||||
|
||||
return d.promise;
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
hooks: {
|
||||
// Compile less as CSS
|
||||
init: function() {
|
||||
var book = this;
|
||||
|
||||
var styles = book.config.get('styles');
|
||||
|
||||
return _.reduce(styles, function(prev, filename, type) {
|
||||
return prev.then(function() {
|
||||
if (path.extname(filename).toLowerCase() != '.less') return;
|
||||
|
||||
book.log.info.ln('compile less file: ', filename);
|
||||
|
||||
// Temporary CSS file
|
||||
var tmpfile = type+'-'+Date.now()+'.css';
|
||||
|
||||
// Replace config
|
||||
book.config.set('styles.'+type, tmpfile);
|
||||
|
||||
return renderLESS(
|
||||
book.resolve(filename),
|
||||
path.resolve(book.options.output, tmpfile)
|
||||
);
|
||||
});
|
||||
}, Q());
|
||||
}
|
||||
}
|
||||
};
|
Reference in New Issue
Block a user