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.
34 lines
930 B
34 lines
930 B
/* eslint no-param-reassign: off */ |
|
|
|
const afterPattern = /:$/; |
|
const beforePattern = /^:(\s+)?/; |
|
// const bracketsPattern = /\{/; |
|
|
|
module.exports = (node) => { |
|
const { name, params = '' } = node; |
|
|
|
// situations like @page :last { color: red } should default to the built-in AtRule |
|
// LESS variables are @name : value; < note that for them to be valid LESS vars, they must end in |
|
// a semicolon. |
|
|
|
if (node.name.slice(-1) !== ':') { |
|
return; |
|
} |
|
|
|
if (afterPattern.test(name)) { |
|
const [match] = name.match(afterPattern); |
|
|
|
node.name = name.replace(match, ''); |
|
node.raws.afterName = match + (node.raws.afterName || ''); |
|
node.variable = true; |
|
node.value = node.params; |
|
} |
|
|
|
if (beforePattern.test(params)) { |
|
const [match] = params.match(beforePattern); |
|
|
|
node.value = params.replace(match, ''); |
|
node.raws.afterName = (node.raws.afterName || '') + match; |
|
node.variable = true; |
|
} |
|
};
|
|
|