ocat-lang
Version:
A programming language for the web design and development
21 lines (20 loc) • 941 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.processLayout = void 0;
const DEFAULT_LAYOUT = '<div>{* children *}</div>';
const PLACEHOLDER_REGEX = /\{\*\s*(\w+)\s*\*\}/g;
const replacePlaceholder = (layout, name, value) => {
return layout.replace(new RegExp(`\\{\\*\\s*${name}\\s*\\*\\}`, 'g'), value);
};
const getDefaultLayout = (layout, children) => {
return layout.length === 0 ? DEFAULT_LAYOUT.replace('{* children *}', children) : layout;
};
const processLayout = (layout, title, description, children) => {
let processedLayout = getDefaultLayout(layout, children);
const replacements = { title, description, children };
for (const [name, value] of Object.entries(replacements)) {
processedLayout = replacePlaceholder(processedLayout, name, value);
}
return processedLayout.replace(PLACEHOLDER_REGEX, 'onotdefined');
};
exports.processLayout = processLayout;