index.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. var assign = require('object-assign');
  2. var postcss = require('postcss');
  3. var valueParser = require('postcss-value-parser');
  4. var minifyWeight = require('./lib/minify-weight');
  5. var minifyFamily = require('./lib/minify-family');
  6. var minifyFont = require('./lib/minify-font');
  7. function transform(opts) {
  8. opts = assign({
  9. removeAfterKeyword: true,
  10. removeDuplicates: true,
  11. removeQuotes: true
  12. }, opts);
  13. return function (decl) {
  14. var tree;
  15. if (decl.type === 'decl') {
  16. if (decl.prop === 'font-weight') {
  17. decl.value = minifyWeight(decl.value, opts);
  18. } else if (decl.prop === 'font-family') {
  19. tree = valueParser(decl.value);
  20. tree.nodes = minifyFamily(tree.nodes, opts);
  21. decl.value = tree.toString();
  22. } else if (decl.prop === 'font') {
  23. tree = valueParser(decl.value);
  24. tree.nodes = minifyFont(tree.nodes, opts);
  25. decl.value = tree.toString();
  26. }
  27. }
  28. };
  29. }
  30. module.exports = postcss.plugin('postcss-minify-font-values', function (opts) {
  31. return function (css) {
  32. css.walk(transform(opts));
  33. };
  34. });