https://github.com/posthtml/posthtml-render
Render PostHTMLTree to HTML/XML
https://github.com/posthtml/posthtml-render
Last synced: 2 months ago
JSON representation
Render PostHTMLTree to HTML/XML
- Host: GitHub
- URL: https://github.com/posthtml/posthtml-render
- Owner: posthtml
- License: other
- Created: 2015-10-15T05:58:22.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2024-06-19T10:51:11.000Z (over 1 year ago)
- Last Synced: 2025-11-23T19:27:00.486Z (3 months ago)
- Language: TypeScript
- Homepage:
- Size: 1.25 MB
- Stars: 45
- Watchers: 5
- Forks: 18
- Open Issues: 10
-
Metadata Files:
- Readme: readme.md
- Changelog: changelog.md
- Funding: .github/funding.yml
- License: license
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
[![npm][npm]][npm-url]
[![node]]()
[![tests][tests]][tests-url]
[![coverage][cover]][cover-url]
Install
```bash
npm i -D posthtml-render
```
Usage
### `NodeJS`
```js
import { render } from 'posthtml-render';
const tree = [];
const node = {};
node.tag = 'ul';
node.attrs = { class: 'list' };
node.content = [
'one',
'two',
'three'
].map((content) => ({ tag: 'li', content }));
tree.push(node);
const html = render(tree, options);
```
```html
- one
- two
- three
```
Options
|Name|Type|Default|Description|
|:--:|:--:|:-----:|:----------|
|**[`singleTags`](#singletags)**|`{Array}`|`[]`|Specify custom single tags (self closing)|
|**[`closingSingleTag`](#closingSingleTag)**|`{String}`|[`>`](#default)|Specify the single tag closing format|
|**[`quoteAllAttributes`](#quoteAllAttributes)**|`{Boolean}`|[`true`](#default)|Put double quotes around all tags, even when not necessary.|
|**[`replaceQuote`](#replaceQuote)**|`{Boolean}`|[`true`](#default)|Replaces quotes in attribute values with `"e;`.|
|**[`quoteStyle`](#quoteStyle)**|`{0 or 1 or 2}`|[`2`](#default)|Specify the style of quote arround the attribute values|
### `singleTags`
Specify custom single tags (self closing)
### `{String}`
```js
const render = require('posthtml-render')
const tree = [ { tag: 'name' } ]
const options = { singleTags: [ 'name' ] }
const html = render(tree, options)
```
**result.html**
```html
```
#### `{RegExp}`
```js
const render = require('posthtml-render')
const tree = [ { tag: '%=title%' } ]
const options = { singleTags: [ /^%.*%$/ ] }
const html = render(tree, options)
```
**result.html**
```html
<%=title%>
```
### `closingSingleTag`
Specify the single tag closing format
#### `Formats`
```js
const render = require('posthtml-render')
const tree = [ { tag: 'img' } ]
```
##### `'tag'`
```js
const html = render(tree, { closingSingleTag: 'tag' })
```
```html
```
##### `'slash'`
```js
const html = render(tree, { closingSingleTag: 'slash' })
```
```html
```
##### `'default' (Default)`
```js
const html = render(tree)
```
```html
```
##### `'closeAs'`
```js
const tree = [ {
tag: 'custom',
closeAs: 'default' // Available types: `tag` | `slash` | `default`
} ]
const html = render(tree, { closingSingleTag: 'closeAs' })
```
```html
```
### `quoteAllAttributes`
Specify if all attributes should be quoted.
##### `true (Default)`
```html
```
##### `false`
```html
```
### `replaceQuote`
Replaces quotes in attribute values with `"e;`.
##### `true (Default)`
```html
```
##### `false`
```html
">
```
### `quoteStyle`
##### `2 (Default)`
Attribute values are wrapped in double quotes:
```html
```
##### `1`
Attribute values are wrapped in single quote:
```html
```
##### `0`
Quote style is based on attribute values (an alternative for `replaceQuote` option):
```html
```
[npm]: https://img.shields.io/npm/v/posthtml-render.svg
[npm-url]: https://npmjs.com/package/posthtml-render
[node]: https://img.shields.io/node/v/posthtml-render.svg
[node-url]: https://img.shields.io/node/v/posthtml-render.svg
[tests]: http://img.shields.io/travis/posthtml/posthtml-render.svg
[tests-url]: https://travis-ci.org/posthtml/posthtml-render
[cover]: https://coveralls.io/repos/github/posthtml/posthtml-render/badge.svg
[cover-url]: https://coveralls.io/github/posthtml/posthtml-render