1
0
Files
malta-slides/node_modules/@marp-team/marpit/lib/postcss/printable.js

74 lines
1.8 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.printable = exports.postprocess = exports.default = void 0;
var _postcss_plugin = _interopRequireDefault(require("../helpers/postcss_plugin"));
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
/** @module */
const marpitPrintContainerStyle = `
html, body {
background-color: #fff;
margin: 0;
page-break-inside: avoid;
break-inside: avoid-page;
}
`.trim();
/**
* Marpit PostCSS printable plugin.
*
* Make printable slide deck as PDF.
*
* @param {Object} opts
* @param {string} opts.width
* @param {string} opts.height
* @function printable
*/
const printable = exports.printable = (0, _postcss_plugin.default)('marpit-postcss-printable', opts => css => {
css.walkAtRules('media', rule => {
if (rule.params === 'marpit-print') rule.remove();
});
css.first.before(`
@page {
size: ${opts.width} ${opts.height};
margin: 0;
}
@media marpit-print {
section {
page-break-before: always;
break-before: page;
}
section, section * {
-webkit-print-color-adjust: exact !important;
animation-delay: 0s !important;
animation-duration: 0s !important;
color-adjust: exact !important;
print-color-adjust: exact !important;
transition: none !important;
}
:marpit-container > svg[data-marpit-svg] {
display: block;
height: 100vh;
width: 100vw;
}
}
`.trim());
});
/**
* The post-process PostCSS plugin of Marpit printable plugin.
*
* @function postprocess
*/
const postprocess = exports.postprocess = (0, _postcss_plugin.default)('marpit-postcss-printable-postprocess', () => css => css.walkAtRules('media', rule => {
if (rule.params !== 'marpit-print') return;
rule.params = 'print';
rule.first.before(marpitPrintContainerStyle);
}));
var _default = exports.default = printable;