add initial marp implementation with sample content and build configuration
This commit is contained in:
59
node_modules/@marp-team/marpit/lib/markdown/collect.js
generated
vendored
Normal file
59
node_modules/@marp-team/marpit/lib/markdown/collect.js
generated
vendored
Normal file
@@ -0,0 +1,59 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = exports.collect = void 0;
|
||||
var _plugin = _interopRequireDefault(require("../plugin"));
|
||||
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
||||
/** @module */
|
||||
|
||||
/**
|
||||
* Marpit collect plugin.
|
||||
*
|
||||
* Collect parsed tokens per slide and comments except marked as used for
|
||||
* internally. These will store to lastSlideTokens and lastComments member of
|
||||
* Marpit instance. It would use in the returned object from
|
||||
* {@link Marpit#render}.
|
||||
*
|
||||
* @function collect
|
||||
* @param {MarkdownIt} md markdown-it instance.
|
||||
*/
|
||||
function _collect(md) {
|
||||
const {
|
||||
marpit
|
||||
} = md;
|
||||
md.core.ruler.push('marpit_collect', state => {
|
||||
if (state.inlineMode) return;
|
||||
marpit.lastComments = [];
|
||||
marpit.lastSlideTokens = [];
|
||||
let currentPage;
|
||||
let pageIdx = -1;
|
||||
const collectComment = token => {
|
||||
if (currentPage >= 0 && !(token.meta && token.meta.marpitCommentParsed !== undefined)) marpit.lastComments[currentPage].push(token.content);
|
||||
};
|
||||
const collectable = () => currentPage >= 0 && marpit.lastSlideTokens[currentPage] !== undefined;
|
||||
for (const token of state.tokens) {
|
||||
if (token.meta && token.meta.marpitSlideElement === 1) {
|
||||
pageIdx += 1;
|
||||
currentPage = pageIdx;
|
||||
if (marpit.lastSlideTokens[currentPage] === undefined) {
|
||||
marpit.lastSlideTokens[currentPage] = [token];
|
||||
marpit.lastComments[currentPage] = [];
|
||||
}
|
||||
} else if (token.meta && token.meta.marpitSlideElement === -1) {
|
||||
if (collectable()) marpit.lastSlideTokens[currentPage].push(token);
|
||||
currentPage = undefined;
|
||||
} else {
|
||||
if (collectable()) marpit.lastSlideTokens[currentPage].push(token);
|
||||
if (token.type === 'marpit_comment') {
|
||||
collectComment(token);
|
||||
} else if (token.type === 'inline') {
|
||||
for (const t of token.children) if (t.type === 'marpit_comment') collectComment(t);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
const collect = exports.collect = (0, _plugin.default)(_collect);
|
||||
var _default = exports.default = collect;
|
||||
Reference in New Issue
Block a user