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

37 lines
1.1 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.meta = 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 meta plugin.
*
* Parse CSS comment written in the format of `@key value`.
*
* @function meta
* @param {Object} [opts]
* @param {Object} [opts.metaType] An object for defined types for metadata.
*/
const meta = exports.meta = (0, _postcss_plugin.default)('marpit-postcss-meta', (opts = {}) => (css, {
result
}) => {
const metaType = opts.metaType || {};
result.marpitMeta = result.marpitMeta || {};
css.walkComments(comment => {
comment.text.slice(0).replace(/^[*!\s]*@([\w-]+)\s+(.+)$/gim, (_, metaName, value) => {
if (metaType[metaName] === Array) {
// Array meta
result.marpitMeta[metaName] = [...(result.marpitMeta[metaName] || []), value];
} else {
// String meta (default)
result.marpitMeta[metaName] = value;
}
});
});
});
var _default = exports.default = meta;