使用Prism高亮显示代码

简介: 使用CDN链接引入必备的文件,一个css,一个js文件。如下: (注意个别站点的cdn链接国内有时候无法访问,用之前可以先在浏览器测试一下)

image.png


在 HTML 文件中使用


引入cdn文件


使用CDN链接引入必备的文件,一个css,一个js文件。如下: (注意个别站点的cdn链接国内有时候无法访问,用之前可以先在浏览器测试一下)


<!DOCTYPE html>
<html>
<head>
  <title>Prism</title>
  <link href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.22.0/themes/prism.min.css" rel="stylesheet" />
</head>
<body>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.22.0/prism.min.js"></script>
</body>
</html>


高亮显示代码

CSS, JS如果是直接高亮显示


代码,写在 <pre><code> ... </code></pre> 中,设置对应的 language-xxx 属性,如直接显示css,js代码,高亮显示效果

image.png


...
<body>
  CSS
  <pre><code class="language-css">p { color: red; }</code></pre>
  JavaScript
  <pre><code class="language-js">function getName() { return 'Mike'; }</code></pre>
  <pre><code class="language-js">function getName() { 
  return 'Mike'; 
}</code></pre>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.22.0/prism.min.js"></script>
</body>
...


代码格式化显示需要单独处理, 如js代码格式化高亮显示


<pre><code class="language-js">function getName() { 
  return 'Mike'; 
}</code></pre>
复制代码

HTML

直接在 <pre><code> 标签中显示 HTML 内容是不能直接高亮显示原代码的,浏览器会直接解析标签,如 <h1>Title</h1>

image.png


HTML
<pre><code class="language-markup"><h1>Title</h1></code></pre>
<pre><code class="language-html"><h1>Title</h1></code></pre>
复制代码


正确高亮显示 HTML 需要引入 plugin 解决, 一个 css prism-unescaped-markup.min.css, 一个 js prism-unescaped-markup.min.js, 使用 script type="text/plain" 包一下

image.png


<link href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.22.0/plugins/unescaped-markup/prism-unescaped-markup.min.css" rel="stylesheet" />
...
HTML code
<pre><code><script type="text/plain" class="language-markup"><h1>Title</h1></script></code></pre>
...
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.22.0/plugins/unescaped-markup/prism-unescaped-markup.min.js"></script>
复制代码


高亮显示外部文件


如果代码太多,又需要格式化显示,可以使用外部文件的方式, 使用 <pre> 标签的 data-src 属性引入文件. 默认支持 html,css,js,svg

image.png


HTML file
<pre data-src="./assets/index.html"></pre>
CSS File
<pre data-src="./assets/main.css"></pre>
JS File
<pre data-src="./assets/code.js"></pre>
SVG File
<pre data-src="./assets/logo.svg"></pre>
复制代码


如果高亮显示 python 外部文件代码,需要引入一个 plugin prism-autoloader.min.js 文件. 其他类型同样思路 (注意文件引入顺序)

image.png


...
<body>
  ...
  HTML file
  <pre data-src="./assets/index.html"></pre>
  CSS File
  <pre data-src="./assets/main.css"></pre>
  JS File
  <pre data-src="./assets/code.js"></pre>
  Python File
  <pre data-src="./assets/code.py"></pre>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.22.0/prism.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.22.0/plugins/autoloader/prism-autoloader.min.js"></script>
</body>
...


总结


目前体验的功能就那么多,还有一些其他特性没用到,主要用于基本了解和练习,实际使用的时候有问题再进行记录,下一步在 vue 项目里使用 Prism。


Github 项目源码


github.com/gywgithub/e…


参考链接


prismjs.com

cdnjs.com/libraries/p…

prismjs.com/plugins/une…


目录
相关文章
|
JavaScript 容器
Ant Design Vue 中Drawer自定头部的样式、内容部分的样式、弹出层的样式
Ant Design Vue 中Drawer自定头部的样式、内容部分的样式、弹出层的样式
|
自然语言处理 数据可视化
Qt开发技术:Qt富文本(二)Qt文本光标操作、文档布局、富文本编辑、处理和Demo
Qt开发技术:Qt富文本(二)Qt文本光标操作、文档布局、富文本编辑、处理和Demo
Qt开发技术:Qt富文本(二)Qt文本光标操作、文档布局、富文本编辑、处理和Demo
|
2月前
|
JavaScript
extjs表格行拖动插件
extjs表格行拖动插件
41 3
|
5月前
|
前端开发 JavaScript
文本,wangEditor5展示HTML无样式,wangEditor5如何看源码,Ctrl + U看CSS文件,代码高亮,Prism.js可以实现,解决方法,参考网页源代码的写法
文本,wangEditor5展示HTML无样式,wangEditor5如何看源码,Ctrl + U看CSS文件,代码高亮,Prism.js可以实现,解决方法,参考网页源代码的写法
|
6月前
|
前端开发 JavaScript 数据可视化
详尽分享表格的编辑插件editable.js
详尽分享表格的编辑插件editable.js
125 0
|
7月前
|
JavaScript 前端开发 CDN
使用Prism高亮显示代码
使用Prism高亮显示代码
81 1
|
JSON JavaScript 前端开发
【2023-11-01】一款基于 pdf.js 的 PDF 批注注释插件库(纯JS、高亮、画笔、多边形、历史记录)
基于纯 JavaScript 和 PDF.js 做的一款 PDF 批注拓展插件-PDFMaster,一款仍能兼容支持IE 11的PDF批注插件,界面美观功能强大,有无开发经验都可以快速简单快速使用。
311 0
【2023-11-01】一款基于 pdf.js 的 PDF 批注注释插件库(纯JS、高亮、画笔、多边形、历史记录)
|
7月前
|
JavaScript
Ant Design Vue设置表格滚动 宽度自适应 不换行
Ant Design Vue设置表格滚动 宽度自适应 不换行
|
JavaScript 前端开发 Java
35jqGrid 行编辑- 内嵌导航
35jqGrid 行编辑- 内嵌导航
26 0
|
数据挖掘
Seurat::DotPlot 样式美化-Facet方法添加X轴注释标签
本文示例了 Seurat::DotPlot 气泡图通过 GGPLOT Facet 美化展示效果的代码过程,以供参考学习
699 0