UNPKG

minecraft-text

Version:

Parse Minecraft text into many formats including HTML.

47 lines 1.65 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.renderComponent = exports.wrap = void 0; const parse_js_1 = __importDefault(require("./parse.js")); const static_js_1 = require("./static.js"); function wrap(tag, content) { return `<${tag}>${content}</${tag.split(" ")[0]}>`; } exports.wrap = wrap; function renderComponent(jsonPart) { let classlist = ""; let text = ""; for (const key of Object.keys(jsonPart)) { if (key === "text") { text += jsonPart.text; continue; } if (static_js_1.Classes.hasOwnProperty(key)) { classlist += " mc-" + static_js_1.Classes[key]; continue; } if (key === "color") { classlist += " mc-" + jsonPart[key]; continue; } if (key === "extra") { for (const jsonPartExtra of jsonPart.extra) { text += renderComponent(jsonPartExtra); } } } classlist = classlist.replace(/dark_acqua/gm, "dark_aqua"); return wrap(`span${classlist.trim() !== "" ? ` class="${classlist.trim()}"` : ""}`, text); } exports.renderComponent = renderComponent; function render(input, delimiter = "§") { let json = (0, parse_js_1.default)(input, delimiter); json = JSON.parse(JSON.stringify(json) .split("\\n") .join("<br>")); return wrap("span class=\"mc\"", renderComponent(json)); } exports.default = render; //# sourceMappingURL=render.js.map