Supercharge your code demo with interactive input knobs
npm install annotative-code

Supercharge your highlight.js code demo with interactive input knobs
Quick links: Get Started | API Doc | Interactive Playground
Demos: React | Vue | Svelte | vanilla JS
```
npm i annotative-code -S

`javascript@lit/react
// 1. Because using web components in React is not mature yet
// we need to create a bridge React component
import React from 'react';
import { createComponent } from '@lit/react';
import { AnnotativeCode as AnnotativeCodeWC } from 'annotative-code';
export const AnnotativeCode = createComponent({
tagName: 'annotative-code',
elementClass: AnnotativeCodeWC,
react: React,
});
`
`javascript
import { AnnotativeCode } from './AnnotativeCode';
// 2. Only import the language function and theme css in need can reduce the bundle size
import languageFn from 'annotative-code/bin/highlight.js/languages/javascript';
import themeCss from 'annotative-code/bin/highlight.js/css/a11y-dark';
// 3. Code/content to be highlighted
const content = ;
// 4. Add annotations to the highlighted code!
const annotation = {
variant: {
type: 'string',
knob: 'select',
options: ['text', 'contained', 'outlined'],
value: variant,
},
};
languageFn={languageFn}
content={content}
annotation={annotation}
onValueChange={({ detail }) => setVariant(detail.valueObj.variant)}
/>;
`
- 📝 Goodies of highlight.js - Syntax highlighting of 190+ programming languages and 240+ themes support
- 🎮 Interactive knobs - Let users play around with your code safely with various knobs e.g. string, number, select and datetime-localstyleMap
- 👂🏻 On change listener - Captures user's input and reflect to the demo
- 🧙🏻♂️ Customizable - Code block styles () and pop up (renderPopup and renderDescription) are customizable
- 🧱 Web component - Works with most of the frameworks e.g. React, Svelte, Vue and more
---
(WIP)
1. (One time only) Install dependencies
``
npm install
The annotative package is built with lit and the local development environment is using vite.
2. (One time only) Generate lit theme CSS and programming languages functions from highlight.js
``
node ./tools/generateThemes
node ./tools/generateProgLangs
3. Run the dev server
``
npm run dev