123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- let Stringifier = require('postcss/lib/stringifier')
- class ScssStringifier extends Stringifier {
- comment(node) {
- let left = this.raw(node, 'left', 'commentLeft')
- let right = this.raw(node, 'right', 'commentRight')
- if (node.raws.inline) {
- let text = node.raws.text || node.text
- this.builder('//' + left + text + right, node)
- } else {
- this.builder('/*' + left + node.text + right + '*/', node)
- }
- }
- decl(node, semicolon) {
- if (!node.isNested) {
- super.decl(node, semicolon)
- } else {
- let between = this.raw(node, 'between', 'colon')
- let string = node.prop + between + this.rawValue(node, 'value')
- if (node.important) {
- string += node.raws.important || ' !important'
- }
- this.builder(string + '{', node, 'start')
- let after
- if (node.nodes && node.nodes.length) {
- this.body(node)
- after = this.raw(node, 'after')
- } else {
- after = this.raw(node, 'after', 'emptyBody')
- }
- if (after) this.builder(after)
- this.builder('}', node, 'end')
- }
- }
- rawValue(node, prop) {
- let value = node[prop]
- let raw = node.raws[prop]
- if (raw && raw.value === value) {
- return raw.scss ? raw.scss : raw.raw
- } else {
- return value
- }
- }
- }
- module.exports = ScssStringifier
|