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.
42 lines
1.2 KiB
42 lines
1.2 KiB
const Stringifier = require('postcss/lib/stringifier'); |
|
|
|
module.exports = class LessStringifier extends Stringifier { |
|
atrule(node, semicolon) { |
|
if (!node.mixin && !node.variable && !node.function) { |
|
super.atrule(node, semicolon); |
|
return; |
|
} |
|
|
|
const identifier = node.function ? '' : node.raws.identifier || '@'; |
|
let name = `${identifier}${node.name}`; |
|
let params = node.params ? this.rawValue(node, 'params') : ''; |
|
const important = node.raws.important || ''; |
|
|
|
if (node.variable) { |
|
params = node.value; |
|
} |
|
|
|
if (typeof node.raws.afterName !== 'undefined') { |
|
name += node.raws.afterName; |
|
} else if (params) { |
|
name += ' '; |
|
} |
|
|
|
if (node.nodes) { |
|
this.block(node, name + params + important); |
|
} else { |
|
const end = (node.raws.between || '') + important + (semicolon ? ';' : ''); |
|
this.builder(name + params + end, node); |
|
} |
|
} |
|
|
|
comment(node) { |
|
if (node.inline) { |
|
const left = this.raw(node, 'left', 'commentLeft'); |
|
const right = this.raw(node, 'right', 'commentRight'); |
|
this.builder(`//${left}${node.text}${right}`, node); |
|
} else { |
|
super.comment(node); |
|
} |
|
} |
|
};
|
|
|