add initial marp implementation with sample content and build configuration
This commit is contained in:
47
node_modules/@marp-team/marpit/lib/helpers/wrap_tokens.js
generated
vendored
Normal file
47
node_modules/@marp-team/marpit/lib/helpers/wrap_tokens.js
generated
vendored
Normal file
@@ -0,0 +1,47 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
exports.wrapTokens = wrapTokens;
|
||||
/** @module */
|
||||
|
||||
/**
|
||||
* Wrap array of tokens by specified container object.
|
||||
*
|
||||
* @param {Token} Token markdown-it's Token class.
|
||||
* @param {String} type Token type. It will be suffixed by `_open` / `_close`.
|
||||
* @param {Object} container A container object to wrap tokens, includes tag
|
||||
* name and attributes.
|
||||
* @param {String} container.tag The name of container element.
|
||||
* @param {Object} [container.open] The object assigning to an opening token.
|
||||
* @param {Object} [container.close] The object assigning to a closing token.
|
||||
* @param {Token[]} [tokens=[]] Wrapping tokens.
|
||||
* @returns {Token[]} Wrapped tokens.
|
||||
*/
|
||||
function wrapTokens(Token, type, container, tokens = []) {
|
||||
const {
|
||||
tag
|
||||
} = container;
|
||||
|
||||
// Update nesting level of wrapping tokens
|
||||
for (const t of tokens) t.level += 1;
|
||||
|
||||
// Create markdown-it tokens
|
||||
const open = new Token(`${type}_open`, tag, 1);
|
||||
const close = new Token(`${type}_close`, tag, -1);
|
||||
Object.assign(open, {
|
||||
...(container.open || {})
|
||||
});
|
||||
Object.assign(close, {
|
||||
...(container.close || {})
|
||||
});
|
||||
|
||||
// Assign attributes
|
||||
for (const attr of Object.keys(container)) {
|
||||
if (!['open', 'close', 'tag'].includes(attr) && container[attr] != null) open.attrSet(attr, container[attr]);
|
||||
}
|
||||
return [open, ...tokens, close];
|
||||
}
|
||||
var _default = exports.default = wrapTokens;
|
||||
Reference in New Issue
Block a user