📅  最后修改于: 2023-12-03 15:41:46.975000             🧑  作者: Mango
语法高亮库是程序员在写代码时使用的工具,它能够将代码中的关键字、变量名、注释等部分按照不同的颜色进行区分,使得代码更加美观易读。Html是一种常见的语言,有许多语法高亮库可以用于Html代码的高亮。
Prism是一个轻量级的语法高亮库,它支持许多常见的编程语言和标记语言,包括Html、CSS、JavaScript、Java、C++等。Prism使用简单明了,支持自定义样式和插件。
<link href="//cdnjs.cloudflare.com/ajax/libs/prism/1.24.1/themes/prism.min.css" rel="stylesheet" />
<script src="//cdnjs.cloudflare.com/ajax/libs/prism/1.24.1/prism.min.js"></script>
Highlight.js是一种适用于web的语法高亮库,支持超过180种编程语言和文本格式的高亮。它在使用方面也非常简便,只需引入相应的js和css文件即可。
<link href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/11.2.0/styles/default.min.css" rel="stylesheet" />
<script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/11.2.0/highlight.min.js"></script>
Codemirror是一款专业的在线代码编辑器,拥有先进的代码高亮和语法检测能力。除了Html,它还支持多种编程语言的高亮,如Java、Python、Ruby等。Codemirror具有良好的可扩展性,用户可以自定义样式和插件。
<link href="//cdnjs.cloudflare.com/ajax/libs/codemirror/5.63.0/codemirror.min.css" rel="stylesheet" />
<link href="//cdnjs.cloudflare.com/ajax/libs/codemirror/5.63.0/theme/dracula.min.css" rel="stylesheet" />
<script src="//cdnjs.cloudflare.com/ajax/libs/codemirror/5.63.0/codemirror.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/codemirror/5.63.0/mode/htmlmixed/htmlmixed.min.js"></script>
在静态页面中使用语法高亮库时,只需将相应的js和css文件引入到html文件中即可。以Prism为例,我们可以在<head>
标签中加入下面的内容:
<head>
<link href="//cdnjs.cloudflare.com/ajax/libs/prism/1.24.1/themes/prism.min.css" rel="stylesheet" />
<script src="//cdnjs.cloudflare.com/ajax/libs/prism/1.24.1/prism.min.js"></script>
</head>
在需要高亮的代码块前后分别加上<pre>
和<code>
标签,并在<code>
标签内部加上class
属性,指定要高亮的语言。例如:
<pre><code class="language-html">
<!DOCTYPE html>
<html>
<head>
<title>My Webpage</title>
</head>
<body>
<p>Welcome to my webpage!</p>
</body>
</html>
</code></pre>
注意到上面的代码块中,<
和>
是Html中保留字符的转义形式。
在动态加载的情况下,我们可以使用语法高亮库提供的API进行高亮。以Highlight.js为例,我们可以在js文件中使用下面的代码:
import hljs from 'highlight.js/lib/highlight';
hljs.registerLanguage('html', require('highlight.js/lib/languages/html'));
hljs.registerLanguage('css', require('highlight.js/lib/languages/css'));
hljs.registerLanguage('javascript', require('highlight.js/lib/languages/javascript'));
document.querySelectorAll('pre code').forEach((block) => {
hljs.highlightBlock(block);
});
在这个例子中,我们注册了Html、CSS、JavaScript三种语言的高亮规则,然后通过遍历文档中的<pre>
和<code>
标签,对其中的代码块使用highlightBlock
方法进行高亮。