UNPKG

@mdfriday/foundry

Version:

The core engine of MDFriday. Convert Markdown and shortcodes into fully themed static sites – Hugo-style, powered by TypeScript.

36 lines 1.5 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Shifter = void 0; const pagetrees_1 = require("./pagetrees"); const doctree_1 = require("../../../../pkg/doctree"); class Shifter { delete(n, dimension) { const wasDeleted = n.delete(dimension[doctree_1.dimensionFlag.index(doctree_1.DimensionFlag.DimensionLanguage)]); return [wasDeleted, n.isEmpty()]; } shift(n, dimension, exact) { const [newNode, found] = n.shift(dimension[doctree_1.dimensionFlag.index(doctree_1.DimensionFlag.DimensionLanguage)], exact); if (newNode !== null) { if (found) { return [newNode, true, doctree_1.DimensionFlag.DimensionLanguage]; } return [newNode, true, doctree_1.DimensionFlag.DimensionNone]; } // Return empty node when no match found return [new pagetrees_1.PageTreesNode(), false, doctree_1.DimensionFlag.DimensionNone]; } forEachInDimension(n, d, f) { if (d !== doctree_1.dimensionFlag.index(doctree_1.DimensionFlag.DimensionLanguage)) { throw new Error("only language dimension supported"); } f(n); } insertInto(old, newNode, dimension) { return old.mergeWithLang(newNode, dimension[doctree_1.dimensionFlag.index(doctree_1.DimensionFlag.DimensionLanguage)]); } insert(old, newNode) { return old.merge(newNode); } } exports.Shifter = Shifter; //# sourceMappingURL=shifter.js.map