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.
35 lines
1.1 KiB
35 lines
1.1 KiB
module.exports = function(options) { |
|
return { |
|
postcssPlugin: 'postcss-page-break', |
|
Declaration(decl) { |
|
if (decl.prop.startsWith('break-') && /^break-(inside|before|after)/.test(decl.prop)) { |
|
// do not process column|region related properties |
|
if (decl.value.search(/column|region/) >= 0) { |
|
return; |
|
} |
|
|
|
let newValue; |
|
switch (decl.value) { |
|
case 'page': |
|
newValue = 'always'; |
|
break; |
|
case 'avoid-page': |
|
newValue = 'avoid'; |
|
break; |
|
default: |
|
newValue = decl.value; |
|
} |
|
|
|
const newProperty = 'page-' + decl.prop; |
|
if (decl.parent.every((sibling) => sibling.prop !== newProperty)) { |
|
decl.cloneBefore({ |
|
prop: newProperty, |
|
value: newValue, |
|
}); |
|
} |
|
} |
|
}, |
|
}; |
|
|
|
}; |
|
module.exports.postcss = true;
|
|
|