<p>Prism is a lightweight, robust, and elegant syntax highlighting library. It's a spin-off project from <ahref="https://dabblet.com/">Dabblet</a>.</p>
<p>We are currently working on <ahref="https://github.com/PrismJS/prism/discussions/3531">Prism v2</a> and will only accept security-relevant PRs for the time being.</p>
<p>Once work on Prism v2 is sufficiently advanced, we will accept PRs again. This will be announced on our <ahref="https://github.com/PrismJS/prism/discussions">Discussion</a> page and mentioned in the <ahref="https://github.com/PrismJS/prism/discussions/3531">roadmap discussion</a>.</p>
<p>Prism 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:</p>
<li>Do not edit <code>prism.js</code>, 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 <code>components/</code> folder. <code>prism.js</code> and all minified files are generated by our build system (see below).</li>
<li>The build system uses <ahref="https://github.com/gulpjs/gulp">gulp</a> to minify the files and build <code>prism.js</code>. With all of Prism's dependencies installed, you just need to run the command <code>npm run build</code>.</li>
<li>Please follow the code conventions used in the files already. For example, I use <ahref="http://lea.verou.me/2012/01/why-tabs-are-clearly-superior/">tabs for indentation and spaces for alignment</a>. Opening braces are on the same line, closing braces on their own line regardless of construct. There is a space before the opening brace. etc etc.</li>
<li>Please try to err towards more smaller PRs rather than a few huge PRs. If a PR includes changes that I want to merge and also changes that I don't, handling it becomes difficult.</li>
<li>My time is very limited these days, so it might take a long time to review bigger PRs (small ones are usually merged very quickly), especially those modifying the Prism Core. This doesn't mean your PR is rejected.</li>
<li>If you contribute a new language definition, you will be responsible for handling bug reports about that language definition.</li>
<li>If you <ahref="https://prismjs.com/extending.html#creating-a-new-language-definition">add a new language definition</a> or plugin, you need to add it to <code>components.json</code> as well and rebuild Prism by running <code>npm run build</code>, so that it becomes available to the download build page. For new languages, please also add a few <ahref="https://prismjs.com/test-suite.html">tests</a> and an example in the <code>examples/</code> folder.</li>
<li>Go to <ahref="https://github.com/PrismJS/prism-themes">prism-themes</a> if you want to add a new theme.</li>
<p>Prism will run on <ahref="https://prismjs.com/#features-full">almost any browser</a> and Node.js version but you need the following software to contribute:</p>
Documentation generated by <ahref="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> using the <ahref="https://github.com/clenemt/docdash">docdash</a> theme.