|
| 1 | +# [Prism](https://prismjs.com/) |
| 2 | + |
| 3 | +[](https://github.com/PrismJS/prism/actions) |
| 4 | +[](https://www.npmjs.com/package/prismjs) |
| 5 | + |
| 6 | +Prism is a lightweight, robust, and elegant syntax highlighting library. It's a spin-off project from [Dabblet](https://dabblet.com/). |
| 7 | + |
| 8 | +You can learn more on [prismjs.com](https://prismjs.com/). |
| 9 | + |
| 10 | +[Why another syntax highlighter?](https://lea.verou.me/2012/07/introducing-prism-an-awesome-new-syntax-highlighter/#more-1841) |
| 11 | + |
| 12 | +[More themes for Prism!](https://github.com/PrismJS/prism-themes) |
| 13 | + |
| 14 | +## Contribute to Prism! |
| 15 | + |
| 16 | +### **Important Notice** |
| 17 | + |
| 18 | +We are currently working on [Prism v2](https://github.com/PrismJS/prism/discussions/3531) and will only accept security-relevant PRs for the time being. |
| 19 | + |
| 20 | +Once work on Prism v2 is sufficiently advanced, we will accept PRs again. This will be announced on our [Discussion](https://github.com/PrismJS/prism/discussions) page and mentioned in the [roadmap discussion](https://github.com/PrismJS/prism/discussions/3531). |
| 21 | + |
| 22 | +<details> |
| 23 | +<summary>Prism v1 contributing notes</summary> |
| 24 | + |
| 25 | +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: |
| 26 | + |
| 27 | +- Read the [documentation](https://prismjs.com/extending.html). Prism was designed to be extensible. |
| 28 | +- Do not edit `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). |
| 29 | +- Use `npm ci` to install Prism's dependencies. Do not use `npm install` because it will cause non-deterministic builds. |
| 30 | +- The build system uses [gulp](https://github.com/gulpjs/gulp) to minify the files and build `prism.js`. With all of Prism's dependencies installed, you just need to run the command `npm run build`. |
| 31 | +- Please follow the code conventions used in the files already. For example, I use [tabs for indentation and spaces for alignment](http://lea.verou.me/2012/01/why-tabs-are-clearly-superior/). 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. |
| 32 | +- 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. |
| 33 | +- 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. |
| 34 | +- If you contribute a new language definition, you will be responsible for handling bug reports about that language definition. |
| 35 | +- If you [add a new language definition](https://prismjs.com/extending.html#creating-a-new-language-definition) or plugin, you need to add it to `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](https://prismjs.com/test-suite.html) and an example in the `examples/` folder. |
| 36 | +- Go to [prism-themes](https://github.com/PrismJS/prism-themes) if you want to add a new theme. |
| 37 | + |
| 38 | +Thank you so much for contributing!! |
| 39 | + |
| 40 | +### Software requirements |
| 41 | + |
| 42 | +Prism will run on [almost any browser](https://prismjs.com/#features-full) and Node.js version but you need the following software to contribute: |
| 43 | + |
| 44 | +- Node.js >= 10.x |
| 45 | +- npm >= 6.x |
| 46 | + |
| 47 | +</details> |
| 48 | + |
| 49 | +## Translations |
| 50 | + |
| 51 | +* [简体中文](https://www.awesomes.cn/repo/PrismJS/prism) (if unavailable, see [here](https://deepmind.t-salon.cc/article/113)) |
0 commit comments