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.

36 lines
1.1 KiB

2 years ago
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;