prism-syntax

star 1

Use when adding syntax highlighting for custom languages to Prism.js, used by Docusaurus and many documentation sites

mcclowes By mcclowes schedule Updated 12/20/2025

name: prism-syntax

prettier-ignore

description: Use when adding syntax highlighting for custom languages to Prism.js, used by Docusaurus and many documentation sites

Prism.js Syntax Highlighting

Quick Start

Prism.languages.mylang = {
  'comment': /\/\/.*/,
  'string': /"(?:\\.|[^"\\])*"/,
  'keyword': /\b(?:if|else|while|for|return)\b/,
  'number': /\b\d+(?:\.\d+)?\b/,
  'operator': /[+\-*/%=<>!&|]+/,
  'punctuation': /[{}[\];(),.:]/
};

Token Types (CSS Classes)

  • comment - Comments
  • string - String literals
  • keyword - Language keywords
  • number - Numeric literals
  • operator - Operators
  • punctuation - Punctuation marks
  • function - Function names
  • class-name - Type/class names
  • property - Object properties
  • boolean - true/false
  • builtin - Built-in functions

Pattern Techniques

{
  // Lookbehind for context
  'function': {
    pattern: /(\bfunction\s+)\w+/,
    lookbehind: true
  },
  // Nested grammar
  'interpolation': {
    pattern: /\$\{[^}]+\}/,
    inside: {
      'variable': /\$\{|\}/,
      'expression': { pattern: /[\s\S]+/, inside: Prism.languages.javascript }
    }
  },
  // Greedy matching
  'string': { pattern: /"(?:\\.|[^"\\])*"/, greedy: true }
}

Docusaurus Integration

// docusaurus.config.js
module.exports = {
  themeConfig: {
    prism: {
      additionalLanguages: ['mylang'],
      theme: require('prism-react-renderer').themes.github,
    }
  }
};

// Create src/prism/prism-mylang.js and import in src/theme/prism-include-languages.js

Reference Files

Install via CLI
npx skills add https://github.com/mcclowes/vague --skill prism-syntax
Repository Details
star Stars 1
call_split Forks 0
navigation Branch main
article Path SKILL.md
More from Creator