Lightweight, robust, elegant syntax highlighting.
Prism is a lightweight, robust, and elegant syntax highlighting library. It's a spin-off project from Dabblet.
You can learn more on prismjs.com.
Why another syntax highlighter?
We are currently working on Prism v2 and will only accept security-relevant PRs for the time being.
Once work on Prism v2 is sufficiently advanced, we will accept PRs again. This will be announced on our Discussion page and mentioned in the roadmap discussion.
Prism v1 contributing notesPrism depends on community contributions to expand and cover a wider array of use cases. If you like it, consider giving back by sending a pull request. Here are a few tips:
prism.js, it’s just the version of Prism used by the Prism website and is built automatically. Limit your changes to the unminified files in the components/ folder. prism.js and all minified files are generated by our build system (see below).npm ci to install Prism's dependencies. Do not use npm install because it will cause non-deterministic builds.prism.js. With all of Prism's dependencies installed, you just need to run the command npm run build.components.json as well and rebuild Prism by running npm run build, so that it becomes available to the download build page. For new languages, please also add a few tests and an example in the examples/ folder.Thank you so much for contributing!!
Prism will run on almost any browser and Node.js version but you need the following software to contribute:
Use the token overlay helper for the remaining structure-merging code
Removing $placeholder changes how an unquoted template attribute value, attribute name, or tag name parses (13 languages)
An unchanged diff line takes only the last selector reading, so a construct spanning into a deleted line renders half-highlighted
diff:<lang> glues hunks and files together, so one unterminated construct contaminates the rest
Changed lines in `diff:<lang>` blocks are visually unmarked
[v2] Language combinations / extensions / embeddings / ...
Add IBM SPSS Command Syntax to Prism
Swift class regex doesn't support private names (ex. '_Foo')
New Language: CakePHP
Language Request: fish