JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 256
  • Score
    100M100P100Q92834F
  • License MIT

Parse Minecraft text component and render it to css.

Package Exports

  • @xmcl/text-component
  • @xmcl/text-component/dist/index.js
  • @xmcl/text-component/dist/index.mjs

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@xmcl/text-component) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Text-component Module

npm version Downloads Install size npm Build Status

Provide functions to parse Minecraft text component.

Usage

TextComponent

Create TextComponent from string OR Minecraft's formatted string, like '§cThis is red':

import { TextComponent, fromFormattedString } from "@xmcl/text-component";
const formattedString: string;
const fromFormatted: TextComponent = fromFormattedString(formattedString);

Render the TextComponent to css:

import { TextComponent, render, RenderNode } from "@xmcl/text-component";
const yourComponent: TextComponent;
const node: RenderNode = render(yourComponent);

node.text; // the text of the node
node.style; // style of the node
node.children; // children

// you can render in dom like this:

function renderToDom(node: RenderNode) {
    const span = document.createElement('span');
    span.style = node.style;
    span.textContent = node.text;
    for (const child of node.children) {
        span.appendChild(renderToDom(child));
    }
} 

Iterate the TextComponent and its children:

import { TextComponent, flat } from "@xmcl/text-component";
const yourComponent: TextComponent;
const selfAndAllChildren: Array<TextComponent> = flat(yourComponent);