UNPKG

@marp-team/marpit

Version:

The skinny framework for creating slide deck from Markdown

31 lines (29 loc) 1.19 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.pseudoSelectorPrepend = exports.default = void 0; var _postcss_plugin = _interopRequireDefault(require("../../helpers/postcss_plugin")); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } /** @module */ /** * Marpit PostCSS pseudo selector prepending plugin. * * Prepend `:marpit-container > :marpit-slide` pseudo selector to each selector * of Marpit theme CSS for modulized styling. * * @function pseudoSelectorPrepend */ const pseudoSelectorPrepend = exports.pseudoSelectorPrepend = (0, _postcss_plugin.default)('marpit-postcss-pseudo-selector-prepend', () => css => css.walkRules(rule => { const { type, name } = rule.parent || {}; if (type === 'atrule' && name === 'keyframes') return; rule.selectors = rule.selectors.map(selector => { if (/^section(?![\w-])/.test(selector)) return `:marpit-container > :marpit-slide${selector.slice(7)}`; if (selector.startsWith(':marpit-container')) return selector; return `:marpit-container > :marpit-slide ${selector}`; }); })); var _default = exports.default = pseudoSelectorPrepend;