web component inserts prism JS syntax colored HTML in demo-element before rendered UI for this HTML
Dependent prism script is located on unpkg.com CDN.
The code
<html-demo-element legend="Error case">
<slotted-element src="https://badUrl.heck">
<p slot="loading" hidden>Loading... ⏳ </p>
<p slot="error" hidden>Something went wrong. 😭 </p>
</slotted-element>
</html-demo-element>
<script type="module" src="https://unpkg.com/[email protected]/html-demo-element.js"></script>
<script type="module" src="https://unpkg.com/[email protected]/slotted-element.js"></script>
If do not want to use template, include the script BEFORE inner content is modified. I.e. immediately after HTML and before scripts with components.
The use of template
would defer the demo code injection after the source is rendered:
<html-demo-element legend="Error case">
<template><i>Candle 🕯️</i></template>
</html-demo-element>
When you want to control where the source is located and where to render the code text, use slots:
<html-demo-element>
<template>ignored</template>
<template slot="source"> <i>Croissant 🥐️ </i></template>
<p><code>slot="source"</code> defines where to get code </p>
<p><code>slot="demo" </code> inject the html from source: </p>
<div slot="demo"> replaced with tasty demo </div>
<p><code>slot="text" </code> inject colored code text: </p>
<div slot="text"> replaced with colored code </div>
<div slot="description"></div>
<div slot="legend"></div>
</html-demo-element>
- https://unpkg.com/[email protected]/demo/index.html
- https://unpkg.com/[email protected]/demo/advanced.html
- https://unpkg.com/[email protected]/demo/index.html
source
- the source code node. If omitted it would be taken either from embeddedtemplate
content or from embedded intohtml-demo-element
dom.text
- placeholder where the highlighted code would be rendered. If omitted the text would be rendered on top of template or top ofhtml-demo-element
content.demo
- placeholder where the code would be moved into for displaying live DOM( for HTML type ). If omitted it would be placed beneath oftext
slotlegend
- placeholder where the value oflegend
attribute would be rendered as H3. When omitted, it would be placed on top.description
- placeholder where the value ofdescription
attribute would be rendered as dd. When omitted, it would be placed on beneath of description.
source
- the source code text. If the attribute is not defined, it would be initialized fromsource
slot ^^type
- one of prism js supported languages orauto
.html
,css
,js
imported by default. When omitted, assumedhtml
.legend
- optional heading forhtml-demo-element
description
- additional text in title, bellow the legendsrc
- optional url to retrieve the source. Whentype
is omitted, it is detected fromcontent-type
or extension.