1234567891011121314151617181920212223242526272829303132333435 |
- 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;
|