39 lines
1.2 KiB
JavaScript
Executable File
39 lines
1.2 KiB
JavaScript
Executable File
var assign = require('object-assign');
|
|
var postcss = require('postcss');
|
|
var valueParser = require('postcss-value-parser');
|
|
var minifyWeight = require('./lib/minify-weight');
|
|
var minifyFamily = require('./lib/minify-family');
|
|
var minifyFont = require('./lib/minify-font');
|
|
|
|
function transform(opts) {
|
|
opts = assign({
|
|
removeAfterKeyword: true,
|
|
removeDuplicates: true,
|
|
removeQuotes: true
|
|
}, opts);
|
|
|
|
return function (decl) {
|
|
var tree;
|
|
|
|
if (decl.type === 'decl') {
|
|
if (decl.prop === 'font-weight') {
|
|
decl.value = minifyWeight(decl.value, opts);
|
|
} else if (decl.prop === 'font-family') {
|
|
tree = valueParser(decl.value);
|
|
tree.nodes = minifyFamily(tree.nodes, opts);
|
|
decl.value = tree.toString();
|
|
} else if (decl.prop === 'font') {
|
|
tree = valueParser(decl.value);
|
|
tree.nodes = minifyFont(tree.nodes, opts);
|
|
decl.value = tree.toString();
|
|
}
|
|
}
|
|
};
|
|
}
|
|
|
|
module.exports = postcss.plugin('postcss-minify-font-values', function (opts) {
|
|
return function (css) {
|
|
css.walk(transform(opts));
|
|
};
|
|
});
|