Skip to content
This repository was archived by the owner on May 24, 2024. It is now read-only.

vivaxy/WXML

Folders and files

NameName
Last commit message
Last commit date

Latest commit

9b353af · May 24, 2024
May 24, 2024
May 20, 2020
May 20, 2020
Sep 11, 2018
Jan 23, 2020
Sep 8, 2018
Aug 8, 2018
May 5, 2020
Aug 8, 2018
Aug 16, 2019
Aug 8, 2018
May 20, 2020
Apr 10, 2023
Aug 8, 2018
Apr 10, 2023
Jun 9, 2020
May 9, 2020
Jan 23, 2020
Jun 9, 2020

Repository files navigation

WXML

🌇WXML parser and serializer.

Build Status NPM Version NPM Downloads MIT License Standard Version Codecov DOI

Install

yarn add @vivaxy/wxml or npm i @vivaxy/wxml --save

Usage

import * as wxml from '@vivaxy/wxml';
const parsed = wxml.parse('<view></view>');
wxml.traverse(parsed, function visitor(node, parent) {
  const type = node.type;
  const parentNode = node.parentNode;

  if (type === wxml.NODE_TYPES.ELEMENT) {
    // handle element node
    const tagName = node.tagName;
    const attributes = node.attributes; // an object represents the attributes
    const childNodes = node.childNodes;
    const selfClosing = node.selfClosing; // if a node is self closing, like `<tag />`
  } else if (type === wxml.NODE_TYPES.TEXT) {
    // handle text node
    const textContent = node.textContent;
  } else if (type === wxml.NODE_TYPES.COMMENT) {
    // handle comment node
    const comment = node.comment;
  }
});
const serialized = wxml.serialize(parsed);

API

parse

(input: string) => AST

traverse

(node: Node, visitor: (node: Node, parent: Node) => void) => void

serialize

(node: Node) => string