|
|
- module.exports = function compressFont(node) {
- var list = node.children;
-
- list.eachRight(function(node, item) {
- if (node.type === 'Identifier') {
- if (node.name === 'bold') {
- item.data = {
- type: 'Number',
- loc: node.loc,
- value: '700'
- };
- } else if (node.name === 'normal') {
- var prev = item.prev;
-
- if (prev && prev.data.type === 'Operator' && prev.data.value === '/') {
- this.remove(prev);
- }
-
- this.remove(item);
- } else if (node.name === 'medium') {
- var next = item.next;
-
- if (!next || next.data.type !== 'Operator') {
- this.remove(item);
- }
- }
- }
- });
-
- // remove redundant spaces
- list.each(function(node, item) {
- if (node.type === 'WhiteSpace') {
- if (!item.prev || !item.next || item.next.data.type === 'WhiteSpace') {
- this.remove(item);
- }
- }
- });
-
- if (list.isEmpty()) {
- list.insert(list.createItem({
- type: 'Identifier',
- name: 'normal'
- }));
- }
- };
|