You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.2 KiB
45 lines
1.2 KiB
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' |
|
})); |
|
} |
|
};
|
|
|