Skip to content

andreruffert/syntax-highlight-element

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@1/+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@1/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} prismBaseUrl - Prism base URL to fetch the tokenizer + language data.
 * @property {string[]} languages - Language grammars to highlight.
 * @property {{ [key: string]: string[] }} languageTokens - Language specific token types.
 */

window.she = window.she || {};

/** @type {Config} */
window.she.config = {
  prismBaseUrl: 'https://cdn.jsdelivr.net/npm/prismjs@1.30.0', // Default
  languages: ['markup', 'css', 'javascript'], // Default
};

Full list of all languages supported by the prism tokenizer.

Examples

For examples checkout the CodePen <syntax-highlight> collection.

Browser Support

Baseline newly availability wordmark

Credits

License

Distributed under the MIT license. See LICENSE for details.

Β© AndrΓ© Ruffert

Sponsor this project

 

Contributors 2

  •  
  •  
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy