@tanstack/highlight
Version:
Tiny class-based syntax highlighting for documentation.
21 lines (20 loc) • 837 B
JavaScript
import { defineLanguage } from '../core.js';
import { patternTokenizer } from '../internal/patterns.js';
export const css = defineLanguage({
name: 'css',
tokenize: patternTokenizer([
{
className: (match) => match[0].startsWith('/*') ? 'comment' : 'string',
regex: /\/\*[\s\S]*?\*\/|"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'/g,
},
{ className: 'variable', regex: /--[A-Za-z0-9_-]+/g },
{
className: 'selector',
regex: /(^|[}\n])\s*([^@{}\n][^{}\n]*)(?=\s*\{)/g,
group: 2,
},
{ className: 'property', regex: /(?:^|[;{]\s*)([A-Za-z-]+)(?=\s*:)/gm, group: 1 },
{ className: 'function', regex: /\b[A-Za-z-]+(?=\()/g },
{ className: 'number', regex: /\b\d+(?:\.\d+)?(?:px|rem|em|%|s|ms|vh|vw|deg)?\b/g },
]),
});