@marp-team/marpit
Version:
The skinny framework for creating slide deck from Markdown
39 lines (30 loc) • 1.18 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _split = _interopRequireDefault(require("../helpers/split"));
var _wrap_tokens = _interopRequireDefault(require("../helpers/wrap_tokens"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/** @module */
/**
* Marpit slide container plugin.
*
* @alias module:markdown/slide_container
* @param {MarkdownIt} md markdown-it instance.
* @param {Element[]} containers Array of container elements.
*/
function slideContainer(md, containers) {
if (!containers) return;
const target = [...containers].reverse();
md.core.ruler.push('marpit_slide_containers', state => {
if (state.inlineMode) return;
const newTokens = [];
for (const tokens of (0, _split.default)(state.tokens, t => t.meta && t.meta.marpitSlideElement === 1, true)) {
if (tokens.length > 0) newTokens.push(...target.reduce((slides, conts) => (0, _wrap_tokens.default)('marpit_slide_containers', conts, slides), tokens));
}
state.tokens = newTokens;
});
}
var _default = slideContainer;
exports.default = _default;