prism.js——让网页中的代码更好看

粗放的代码展示

有时候,网页中会插入代码。直接把代码放入<pre></pre>标签和<code></code>标签里,也算是可以在页面中显示出来。

比如下面这样的:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>直接写代码</title>
</head>
<body>
    <pre>
        <code>
            function add(a, b){
                return a + b;
            }
        </code>
    </pre>
</body>
</html>

那么效果如何呢?如下:

可以发现上面这样是一种很糟糕的效果。

对比React官网上的代码展示

对比一下react官网上的代码展示方式:

反正我是更喜欢像react官网这样来展示代码。

第一段代码经过一个神秘的处理之后:

这是怎么处理的呢?源码变成什么样了呢?

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>使用prism美化网页中的代码</title>
    <link rel="stylesheet" href="../libaray/prismjs/prism.css">
</head>
<body>
<pre class="line-numbers"><code class="language-javascript">function add(a, b){
    return a + b;
}</code>
</pre>

<script src="../libaray/prismjs/prism.js"></script>
</body>
</html>

可以看到新的网页代码中引入了两个文件:prism.cssprism.js

使用prism.js美化网页中的代码

Prism is a lightweight, extensible syntax highlighter.

Prism是一款轻量的,可扩展的语法高亮处理器。

react、MDN、SitePoint、css-tricks等网站都使用该项目

使用起来特别简单:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <title>Prism不同的使用方式</title>
        <!-- 引入prism.css文件 -->
        <link rel="stylesheet" href="./prism.css">
    </head>
    <body>
        <!-- 放置代码位置 -->
        <!-- css代码 -->
        <pre>
            <code class="language-css">
                body{
                    background-color: red;
                }
            </code>
        </pre>

        <!-- JavaScript代码 -->
        <!-- 使用行号插件和高亮插件 -->
        <pre>
            <code class="language-javascript line-numbers">
                function Person(name, age){
                    this.name = name || ‘pelli‘;
                    this.age = age || 18;
                }

                Person.prototype.sayHi = function(){
                    console.log(‘Hi, I am ‘ + this.name + ‘, I am ‘ + this.age + ‘ years old‘);
                };
            </code>
        </pre>

<!-- JavaScript代码 -->
<!-- 使用行号插件和高亮插件 -->
<pre>
<code class="language-javascript line-numbers">function Person(name, age){
    this.name = name || ‘pelli‘;
    this.age = age || 18;
}

Person.prototype.sayHi = function(){
    console.log(‘Hi, I am ‘ + this.name + ‘, I am ‘ + this.age + ‘ years old‘);
};</code>
</pre>

        <!-- 引入prism.js文件 -->
        <script src="./prism.js"></script>
    </body>
</html>

效果如下:

除了以上介绍的简单使用方式以外,还能够在node里面使用,输出处理好的dom字符串。相关内容,请看官网介绍。

相关链接


微信公众号:撩码

原文地址:https://www.cnblogs.com/pellime/p/9949843.html

时间: 2025-01-02 03:30:32

prism.js——让网页中的代码更好看的相关文章

JavaScript运行网页中的代码,保存网页中的代码

<!DOCTYPE html> <html> <head> <title>在网页中运行代码,保存代码</title> <meta charset="utf-8"> </head> <body> <textarea id="code" style="width: 500px;height: 300px"> <html> <h

JS获取网页中HTML元素的几种方法分析

getElementById getElementsByName getElementsByTagName 大概介绍 getElementById ,getElementsByName ,getElementsByTagName ###adv### 后两个是得到集合,byid只是得到单个对象 getElementById 的用法 举个例子: <a id="link1" name="link1" href=http://homepage.yesky.com>

使用 prismjs 在网页中高亮显示代码

最近在总结这一年来制作的网页模块,网站风格统一的情况下,网站页面结构不会改变,因此想记录一部分网站中统一的结构,方便日后维护. 用到的相关技术: vue, element-ui, prismjs, vue-prism-editor, vue-router 做成的效果如图: 因为是在 vue 环境下,因此需要安装以下插件: npm i prismjs npm i vue-prism-editor npm i element-ui 制作过程中有三个知识点: element-ui 菜单 展示代码通过组

学习淘宝网页中的代码

1.HTML <!DOCTYPE> 标签 <!DOCTYPE> 声明必须是 HTML 文档的第一行,位于 <html> 标签之前. <!DOCTYPE> 声明不是 HTML 标签:它是指示 web 浏览器关于页面使用哪个 HTML 版本进行编写的指令. 在 HTML 4.01 中,<!DOCTYPE> 声明引用 DTD,因为 HTML 4.01 基于 SGML.DTD 规定了标记语言的规则,这样浏览器才能正确地呈现内容. HTML5 不基于 SG

仿CSND实现网页中程序代码高亮显示

关于SyntaxHighlighter 3.0.83的使用 下载SyntaxHighlighter 可以到官方网站下载 在页面引入 引入shCore.js and shCore.css 添加支持相应语言的js文件 需要支持什么语言,就引入该语言对应的JS文件 引入shThemeDefault.css 将需要高亮显示的代码放置在<pre /> 或是<script />中 调用SyntaxHighlighter.all() 方法 实例 程序如下: <meta charset=&q

JS 导出网页中Table内容到excel

1 <html> 2 <head> 3 <script type="text/javascript" language="javascript"> 4 var idTmr; 5 function method1(tableid) {//整个表格拷贝到EXCEL中 6 var curTbl = document.getElementById(tableid); 7 var oXL = new ActiveXObject("

使用 js替换网页中的关键词为链接

要求把一段html脚本中的疾病名添加到疾病库的链接,只添加一次,要避开超链接或图片链接. 最初是用的    str.replace('糖尿病', '<a href=...>糖尿病</a>'); 结果找了半天,愣是没找到替换后的效果,原来是有个图片的title中包含糖尿病,被它捷足先登了. 因此要把<a>链接.<img>标签避开,但<p><div>等标签不用避开 上图: [javascript] view plaincopy s = &

网页中HTML代码如何实现字体删除线效果

有的朋友在制作网站的时候,需要给字体制作删除线,例如:选择题,错误标识等!那么我们就需要用到了<s>这个标签写法如下 字体删除线: <s>这里是内容</s> 效果如下:未加删除线  加了删除线 当我们在<s>标签里面加入了删除线文字中间就会出现一横线,这就是删除线的效果 原文地址:https://www.cnblogs.com/wicc/p/10778084.html

【翻译】如何在AJAX生成的内容中再次运行Prism.js

一.前言 最近用一个十分轻量级的网页代码高亮Js库,应用到项目中发现了一个问题,对于静态的已经写好的代码,Prism的高亮插件是没有问题的,但是通过Ajax异步获取数据并修改DOM时发现,Prism高亮插件失效了,经过各种调试还是没办法解决,最后终于找到了解决办法.原文是英文版的,我做了简要的翻译,如有不妥之处还请指出.以下是原文地址: http://schier.co/blog/2013/01/07/how-to-re-run-prismjs-on-ajax-content.html 原标题: