prismic-element
Version:
Render Prismic.io fragments as (real) DOM elements
63 lines (45 loc) • 2.07 kB
Markdown
[](https://npmjs.org/package/prismic-element) [](https://npmjs.org/package/prismic-element)
[](https://npmjs.org/package/prismic-element)
Mimics [prismic-dom](https://github.com/prismicio/prismic-dom) except that it renders _real_ DOM nodes and not just HTML strings.
*NOTE:*
Requires version 2 of the Prismic.io API and the compatible JavaScript library [prismic-javascript](https://github.com/prismicio/prismic-javascript).
Pass a rich text object to the function and get HTML Element(s) back.
```javascript
const Prismic = require('prismic-javascript')
const asElement = require('prismic-element')
Prismic.api('https://<YOUR_API_ENDPOINT>.cdn.prismic.io/api').then(api => {
api.getSingle('my-page').then(doc => {
document.body.appendChild(asElement(doc.data.body));
})
})
```
Working with DOM elements integrates beautifully with tools such as [bel](https://github.com/shama/bel) and [choo](https://github.com/yoshuawuyts/choo).
```javascript
const html = require('bel')
const Prismic = require('prismic-javascript')
const asElement = require('prismic-element')
Prismic.api('https://<YOUR_API_ENDPOINT>.cdn.prismic.io/api').then(api => {
api.getSingle('my-page').then(doc => {
document.body.appendChild(html`
<article>
${asElement(doc.data.title)}
<figure>
${asElement(doc.data.image)}
<figcaption>${doc.data.image.alt}</figcaption>
</figure>
<hr />
${asElement(doc.data.body)}
</article>
`)
})
})
```
- [Prismic.io](https://prismic.io) – CMS as a service
- [bel](https://github.com/shama/bel) – Create DOM elements using tagged templates
- [choo](https://github.com/yoshuawuyts/choo) - High level framework using tagged templates
MIT