Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/PrismJS/prism
Lightweight, robust, elegant syntax highlighting.
https://github.com/PrismJS/prism
Last synced: about 2 months ago
JSON representation
Lightweight, robust, elegant syntax highlighting.
- Host: GitHub
- URL: https://github.com/PrismJS/prism
- Owner: PrismJS
- License: mit
- Created: 2012-07-10T19:47:14.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2024-08-19T21:27:51.000Z (4 months ago)
- Last Synced: 2024-10-18T05:05:56.546Z (about 2 months ago)
- Language: JavaScript
- Homepage: https://prismjs.com
- Size: 12.6 MB
- Stars: 12,290
- Watchers: 118
- Forks: 1,293
- Open Issues: 413
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
- Security: SECURITY.md
Awesome Lists containing this project
- awesome-web - prism
- awesome - PrismJS/prism - Lightweight, robust, elegant syntax highlighting. (JavaScript)
- awesome-list - prism
- awesomelist - **prism**
- awesomelist - **prism**
- awesome - PrismJS/prism
- awesome-repos - prism
- awesome-javascript - prism - Lightweight, robust, elegant syntax highlighting. - ★ 5923 (Code highlighting)
- awesome-bookmarks - **primjs**
- awesome-star-libs - PrismJS/prism
- starred-awesome - prism - Lightweight, robust, elegant syntax highlighting. (JavaScript)
- awesome-frontend-libraries - prismjs
- awesome-javascript-cn - 官网
- awesome - PrismJS/prism - Lightweight, robust, elegant syntax highlighting. (JavaScript)
- awesome - PrismJS/prism - Lightweight, robust, elegant syntax highlighting. (JavaScript)
- awesome-engineering - Prism
- awesome-engineering - Prism
README
# [Prism](https://prismjs.com/)
[![Build Status](https://github.com/PrismJS/prism/workflows/CI/badge.svg)](https://github.com/PrismJS/prism/actions)
[![npm](https://img.shields.io/npm/dw/prismjs.svg)](https://www.npmjs.com/package/prismjs)Prism is a lightweight, robust, and elegant syntax highlighting library. It's a spin-off project from [Dabblet](https://dabblet.com/).
You can learn more on [prismjs.com](https://prismjs.com/).
[Why another syntax highlighter?](https://lea.verou.me/2012/07/introducing-prism-an-awesome-new-syntax-highlighter/#more-1841)
[More themes for Prism!](https://github.com/PrismJS/prism-themes)
## Contribute to Prism!
### **Important Notice**
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.
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).
Prism v1 contributing notes
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:
- Read the [documentation](https://prismjs.com/extending.html). Prism was designed to be extensible.
- 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).
- Use `npm ci` to install Prism's dependencies. Do not use `npm install` because it will cause non-deterministic builds.
- 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`.
- 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.
- 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.
- 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.
- If you contribute a new language definition, you will be responsible for handling bug reports about that language definition.
- 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.
- Go to [prism-themes](https://github.com/PrismJS/prism-themes) if you want to add a new theme.Thank you so much for contributing!!
### Software requirements
Prism will run on [almost any browser](https://prismjs.com/#features-full) and Node.js version but you need the following software to contribute:
- Node.js >= 10.x
- npm >= 6.x## Translations
* [简体中文](https://www.awesomes.cn/repo/PrismJS/prism) (if unavailable, see [here](https://deepmind.t-salon.cc/article/113))