Fast html to react jsx transformer
This project transforms html into react jsx markup.
This helps when using find and replace tools when you scrape content getting raw html and need a way to convert it back to the form it would be in a valid React codebase.
toml
[dependencies]
htr = "0.5.4"
```rust extern crate htr; use htr::convertpropsreact;
fn main(){ let html = r#"
println!("{}", react_html);
// <div className="something" htmlFor="mystuff" tabIndex="2" style={{color: "white", backgroundColor: "black"}}>
} ```
```rust extern crate htr; use htr::converttoreact;
/// convert html to react component fn main(){ let html = r#"
"#;
let react_component = convert_to_react(&html.to_string(), "Something");
println!("{}", react_component);
// import React from "react"
//
// function Something() {
// return (
// <>
// <script>window.alert()</script>
// <div className="something" htmlFor="mystuff" tabIndex="2" style={{color: "white", backgroundColor: "black"}}>
// <div className="child" htmlFor="mychildstuff" tabIndex="2">
// child
// </div>
// </div>
// <span className="react" style={{position: "relative", display: "block", marginLeft: "auto", marginRight: "auto", maxWidth: "577px"}}
// ></span>
// </>
// )
// }
} ```
| 64gb apple silicon
| parse
|
| :---------------------------------------------------- | :-------------------------- |
| convert_props_react: simultaneous 1000 samples
| 4.86 us
(✅ 1.00x) |
| convert_props_react: concurrent10x 1000 samples
| 45.130 us
(✅ 10.00x) |
This project uses BTrees and parses the html with the order sorted before lookup for speed.
An example of this being used with ripgrep to perform search and replace from scraped content to find exactly where in the codebase it would be, the react way.