Prism
Prism 是一个轻量级、健壮且优雅的语法高亮库。它是 Dabblet 的衍生项目。
你可以在 prismjs.com 上了解更多。
为 Prism 做贡献!
重要通知
我们目前正在开发 Prism v2,在此期间仅接受与安全相关的 PR。
一旦 Prism v2 的开发取得足够进展,我们将重新接受 PR。这将在我们的 Discussion 页面宣布,并在 roadmap discussion 中提及。
Prism v1 贡献说明
Prism 依赖社区贡献来扩展并覆盖更广泛的使用场景。如果你喜欢它,请考虑通过发送 pull request 来回馈。以下是一些提示:
-
阅读文档。Prism 被设计为可扩展的。
-
不要编辑
prism.js,它只是 Prism 网站所使用的 Prism 版本,并且是自动构建的。请将您的更改限制在components/文件夹中的未压缩文件内。prism.js和所有压缩文件均由我们的构建系统生成(见下文)。 -
使用
npm ci安装 Prism 的依赖项。不要使用npm install,因为它会导致非确定性构建。 -
构建系统使用 gulp 来压缩文件并构建
prism.js。在安装了 Prism 的所有依赖项后,您只需运行命令npm run build。 -
请遵循现有文件中使用的代码约定。例如,我使用制表符进行缩进,空格进行对齐。左花括号在同一行,右花括号单独成行,无论是什么结构。左花括号前有一个空格。等等。
-
请尽量倾向于提交更多较小的 PR,而不是少数巨大的 PR。如果一个 PR 包含我希望合并的更改,也包含我不希望合并的更改,处理起来就会变得困难。
-
我最近时间非常有限,因此审查较大的 PR 可能需要很长时间(较小的 PR 通常合并得很快),尤其是那些修改 Prism Core 的 PR。这并不意味着您的 PR 被拒绝。
-
如果您贡献了一个新的语言定义,您将负责处理关于该语言定义的 bug 报告。
-
如果你添加新的语言定义或插件,你还需要将其添加到
components.json中,并通过运行npm run build重新构建 Prism,以便其在下载构建页面中可用。对于新语言,请同时在examples/文件夹中添加一些测试和示例。 -
如果你想添加新主题,请前往 prism-themes。
非常感谢你的贡献!!
软件要求
Prism 几乎可以在任何浏览器](https://prismjs.com/#features-full) 和 Node.js 版本上运行,但你需要以下软件来进行贡献:
- Node.js >= 10.x
- npm >= 6.x