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
{
'function': {
pattern: /(\bfunction\s+)\w+/,
lookbehind: true
},
'interpolation': {
pattern: /\$\{[^}]+\}/,
inside: {
'variable': /\$\{|\}/,
'expression': { pattern: /[\s\S]+/, inside: Prism.languages.javascript }
}
},
'string': { pattern: /"(?:\\.|[^"\\])*"/, greedy: true }
}
Docusaurus Integration
module.exports = {
themeConfig: {
prism: {
additionalLanguages: ['mylang'],
theme: require('prism-react-renderer').themes.github,
}
}
};
Reference Files