npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

html2any

v0.0.7

Published

parse html to ast and transform to anything you need

Downloads

4

Readme

html2any

npm version

A non-dependecy package for coverting html/xml string to your customized format/structures.

While building websites, people may met issues for rendering rich text into different formats. For example, I've got an <video> tag, but I wanna render it with my own React video component. But I also want to render the whole html easily rather than parse it manually.

Now html2any help you to render html string. It not only parses your html but also gives you ability to transform it from origin to the dest.

API

html2any provide following APIs

  • AST(Object) parse(String source)

  • void transform(AST ast, function rule)

  • void html2any(html, function rule)

  • parse

Build the AST from source to AST from source html/xml code

  • transform

Convert the AST to the final form with the specific rule.

  • html2any

Convert the html/xml to the final form directly.

Usage

npm i -S html2any
import html2any, { parse, transform } from 'html2any'

const html = escapeHTMLEntity(`<div>123</div>`)

const ast = parse(html)[0]

function rule(node, children) {
  if (typeof node === 'string') {
    return node
  } else {
    return <div>{node}</div>
  }
}

const vdom = transform(ast, rule)
// JSX vdom form of html
// { type: 'div', props: {...}, children: '...' }

Or you can just call html2any directly

const vdom = html2any(html, rule)

How It Works

Use html2any to construct an AST of html string, then convert each node recursively with rule passed to transform function.

For example, we translate <p> tag into React Native component <Text style={styles.paragraph}> with the prepared styles. Then decode the p tag' s content to avoid html entities mess up.