Skip to content

andreruffert/syntax-highlight-element

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

93 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

<syntax-highlight> element

Syntax Highlighting using the CSS Custom Highlight API.

Test status npm version npm downloads jsDelivr hits (npm)

The code is highlighted without having to wrap a bunch of <span> elements around each token, thanks to Prism's tokenizer and the CSS Custom Highlight API.



Screenshot of the <syntax-highlight> element demo in the browser with DevTools open

Install

Install via npm

npm install syntax-highlight-element

Usage

JavaScript

Import as ES module

import 'syntax-highlight-element';

Or via CDN

<script type="module" src="https://cdn.jsdelivr.net/npm/syntax-highlight-element/+esm"></script>

HTML

<syntax-highlight language="js">
  // ... 
</syntax-highlight>

CSS

Make sure to load a theme e.g. syntax-highlight-element/themes/prettylights.css.

Or via CDN

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/syntax-highlight-element/dist/themes/prettylights.min.css">

Currently there are only limited themes available/converted. You can always create your own theme. Contributions are also very welcome.

Attributes

  • language The code language. The default is plaintext. Default suported languages html|css|js.
  • content-selector A CSS selector to specify the content element. The default is the element itself.

Configuration

/**
 * @typedef Config
 * @type {object}
 * @property {string[]} [languages=['markup', 'css', 'javascript']] - Language grammars to highlight.
 * @property {{ [key: string]: string[] }} languageTokens - Language specific token types.
 */
window.she = window.she || {};
/** @type {Config} */
window.she.config = {};

Full list of all languages supported by the prism tokenizer.

Browser Support

Baseline limited availability wordmark

Credits

License

Distributed under the MIT license. See LICENSE for details.

ยฉ Andrรฉ Ruffert

About

๐Ÿ‘“ Syntax Highlighting using the CSS Custom Highlight API

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Contributors 2

  •  
  •