An open API service indexing awesome lists of open source software.

https://github.com/brycerussell/htmlrx

Select and manipulate elements in a HTML string without an AST
https://github.com/brycerussell/htmlrx

html htmlparser regex regexp typescript

Last synced: 8 months ago
JSON representation

Select and manipulate elements in a HTML string without an AST

Awesome Lists containing this project

README

          

# HTMLRx

Select and manipulate elements in a HTML string without an AST

> **Note**: This repo is for learning and practice, it is not meant to be a real library and is subject to change

## How to use

```ts
import { HTMLRx } from 'htmlrx`;

const html = `

Open



`

const newHTML = HTMLRx(html)
.clean() // Remove HTML comments
.select('ul') // Select first 'ul' element

// Once an element is selected you can:

// Change the element's tag and/or attributes
.modify('ol', {class: old => old + 'ordered'})
// Remove everything from inside the element
.empty()
// Remove the element from the HTML
.remove()

// or

// Return the element's attributes
.attrs()
// Return the full element as a string
.element()
// Return element's text
.text()
```
### Using `.walk()`
```ts
import { HTMLRx } from 'htmlrx`;

const html = '

Open



'

const newHTML = HTMLRx(html)
.walk(({index, name, attrs, select}) => {
// Select every element and log it to the console
select()
console.log(this.element())
})

```

## Example

```js
const html = `


Title


Paragraph 1


Paragraph 2


Image

`

const newHTML = HTMLRx(html)
.select(null, {class: 'container'})
.modify('section', {class: 'new-class'})
.select('h1')
.modify('h2')
.select('p')
.empty()
.select('img')
.modify('figure', {class: 'image-container'})
.HTML
```

```html

Title



Paragraph 2


```