@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
JavaScript
;
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