What is posthtml-render?
The posthtml-render package is a utility for rendering PostHTML tree structures into HTML strings. It is commonly used in conjunction with PostHTML parsers and plugins to transform and generate HTML content programmatically.
What are posthtml-render's main functionalities?
Basic HTML Rendering
This feature allows you to render a basic HTML structure from a PostHTML tree. The code sample demonstrates rendering a simple div element with text content.
const render = require('posthtml-render');
const tree = [{ tag: 'div', content: 'Hello, World!' }];
const html = render(tree);
console.log(html); // <div>Hello, World!</div>
Nested HTML Elements
This feature allows you to render nested HTML elements. The code sample shows how to create a div element containing a nested span element.
const render = require('posthtml-render');
const tree = [{ tag: 'div', content: [{ tag: 'span', content: 'Nested content' }] }];
const html = render(tree);
console.log(html); // <div><span>Nested content</span></div>
Attributes Handling
This feature allows you to add attributes to HTML elements. The code sample demonstrates rendering an anchor tag with an href attribute.
const render = require('posthtml-render');
const tree = [{ tag: 'a', attrs: { href: 'https://example.com' }, content: 'Click here' }];
const html = render(tree);
console.log(html); // <a href="https://example.com">Click here</a>
Other packages similar to posthtml-render
htmlparser2
htmlparser2 is a fast and forgiving HTML/XML parser. It can be used to parse HTML into a DOM-like structure, which can then be manipulated and rendered back to HTML. Compared to posthtml-render, htmlparser2 offers more comprehensive parsing capabilities but requires additional steps to render HTML.
cheerio
Cheerio is a fast, flexible, and lean implementation of core jQuery designed specifically for the server. It parses HTML and XML documents and provides a jQuery-like API for manipulating the resulting structure. Cheerio is more feature-rich in terms of DOM manipulation compared to posthtml-render, but it is also heavier and more complex.
jsdom
jsdom is a JavaScript implementation of the WHATWG DOM and HTML standards, primarily intended for use with Node.js. It allows you to create and manipulate a full DOM environment, including rendering HTML. jsdom is more powerful and comprehensive than posthtml-render, but it is also more resource-intensive.
posthtml-render
Render PostHTML Tree to HTML/XML.
More info for PostHTMLTree
Install
NPM install
$ npm install posthtml-render
is also available for bower and as an AMD, CommonJS, and globals module, uncompressed and compressed.
Usage
In NodeJS
var render = require('posthtml-render');
var listObj = { tag: 'ul' };
listObj.attrs = { class: 'list' };
listObj.content = ['one', 'two', 'three'].map(function(text) { return { tag: 'li', content: text }});
console.log(render(listObj));
In Browser
<!DOCTYPE html>
<html>
<head>
<title>Title</title>
<script type="text/javascript" src="./bower_components/posthtml-render/posthtml-render.min.js"></script>
<script type="text/javascript">
window.onload = function() {
document.body.innerHTML = postHTMLRender({ tag: 'h1', attrs: { style: 'color: red;' }, content: ['Title'] });
};
</script>
</head>
<body>
</body>
</html>
Options
singleTags
Array tags for extend default list single tags
Default: []
Options { singleTags: ['rect', 'custom'] }
...
<div>
...
<rect>
<custom>
</div>
closingSingleTag
Option to specify version closing single tags.
Accepts values: default
, slash
, tag
.
Default: default
Options { closingSingleTag: 'default' }
<img>
Options { closingSingleTag: 'slash' }
<img />
Options { closingSingleTag: 'tag' }
<img></img>
License
MIT