UNPKG

@podlite/schema

Version:

AST tools for Podlite markup language

89 lines 3.48 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.mkFormulaBlock = exports.mkItemBlock = exports.mkRootBlock = exports.mkImage = exports.mkCaption = exports.mkTocItem = exports.mkTocList = exports.mkToc = exports.mkVerbatim = exports.mkMarkupCodeF = exports.mkFomattingCodeDelete = exports.mkFomattingCodeL = exports.mkFomattingCode = exports.mkBlankline = exports.mkBlock = exports.filterNulls = exports.mkNode = void 0; const nanoid_1 = require("nanoid"); const mkNode = (attr) => { return { ...attr }; }; exports.mkNode = mkNode; const filterNulls = content => { if (Array.isArray(content)) { return content.filter(i => i); } console.warn('[podlite-schema] filterNulls got not array as content'); }; exports.filterNulls = filterNulls; const mkBlock = (attrs, content) => { const type = 'block'; const name = attrs.name; const attributes = { id: (0, nanoid_1.nanoid)(), margin: '', ...attrs }; var result = (0, exports.mkNode)({ type, ...attributes, content: (0, exports.filterNulls)(content) }); return result; }; exports.mkBlock = mkBlock; const mkBlankline = () => { return (0, exports.mkNode)({ type: 'blankline' }); }; exports.mkBlankline = mkBlankline; const mkFomattingCode = (attrs, content) => { return (0, exports.mkNode)({ type: 'fcode', ...attrs, content }); }; exports.mkFomattingCode = mkFomattingCode; const mkFomattingCodeL = (attrs, content) => { return (0, exports.mkNode)({ ...attrs, type: 'fcode', name: 'L', content: (0, exports.filterNulls)(content) }); }; exports.mkFomattingCodeL = mkFomattingCodeL; const mkFomattingCodeDelete = content => { return (0, exports.mkNode)({ type: 'fcode', name: 'Delete', content: (0, exports.filterNulls)(content) }); }; exports.mkFomattingCodeDelete = mkFomattingCodeDelete; const mkMarkupCodeF = (formula) => { return (0, exports.mkNode)({ type: 'fcode', name: 'F', content: [{ type: 'text', value: formula }] }); }; exports.mkMarkupCodeF = mkMarkupCodeF; const mkVerbatim = text => { return (0, exports.mkNode)({ type: 'verbatim', value: text }); }; exports.mkVerbatim = mkVerbatim; // Table of contents helpers const mkToc = (content, title, location) => { return (0, exports.mkNode)({ type: 'toc', title, content, location }); }; exports.mkToc = mkToc; const mkTocList = (content, level) => { return (0, exports.mkNode)({ type: 'toc-list', level, content }); }; exports.mkTocList = mkTocList; const mkTocItem = (content) => { return (0, exports.mkNode)({ type: 'toc-item', node: content, content: [content] }); }; exports.mkTocItem = mkTocItem; const mkCaption = (content) => { return { type: 'block', name: 'caption', content, }; }; exports.mkCaption = mkCaption; const mkImage = (src, alt) => { return { type: 'image', src, alt, }; }; exports.mkImage = mkImage; const mkRootBlock = ({ margin = '' }, content) => { return (0, exports.mkBlock)({ name: 'root', margin }, content); }; exports.mkRootBlock = mkRootBlock; const mkItemBlock = ({ level, location, margin }, content) => { return (0, exports.mkBlock)({ name: 'item', level, margin, location }, content); }; exports.mkItemBlock = mkItemBlock; const mkFormulaBlock = ({ value, location }) => { return (0, exports.mkBlock)({ name: 'formula', location }, [(0, exports.mkVerbatim)(value)]); }; exports.mkFormulaBlock = mkFormulaBlock; //# sourceMappingURL=blocks-helpers.js.map