Hyperscript (and virtual-hyperscript) compatible DSL for creating virtual HAST trees.
npm:
npm install hastscriptvar h = require('hastscript'); var tree = h('.foo#some-id', [ h('span', 'some text'), h('input', {type: 'text', value: 'foo'}), h('a.alpha', { class: 'bravo charlie', download: 'download' }, ['delta', 'echo']) ]);Yields:
{ type: 'element', tagName: 'div', properties: { id: 'some-id', className: [ 'foo' ] }, children: [ { type: 'element', tagName: 'span', properties: {}, children: [ { type: 'text', value: 'some text' } ] }, { type: 'element', tagName: 'input', properties: { type: 'text', value: 'foo' }, children: [] }, { type: 'element', tagName: 'a', properties: { className: [ 'alpha', 'bravo', 'charlie' ], download: true }, children: [ { type: 'text', value: 'delta' }, { type: 'text', value: 'echo' } ] } ] }DSL for creating virtual HAST trees.
Simple CSS selector (string, optional). Can contain a tag name (foo), IDs (#bar), and classes (.baz), defaults to a div element.
Map of properties (Object.<string, *>, optional).
(List of) child nodes (string, Node, Array.<string|Node>, optional). When strings are encountered, they are normalised to text nodes.
See contribute.md in syntax-tree/hast for ways to get started.
This organisation has a Code of Conduct. By interacting with this repository, organisation, or community you agree to abide by its terms.