代码块高亮可复制显示js插件highlight.js+clipboard.js整合

yizhihongxing

代码块高亮可复制显示是网站开发中一个常用的功能。highlight.js和clipboard.js都是常用的JS库,它们可以很好地实现代码块高亮、复制功能,两个库结合使用可以很好地提高网站的用户体验性。下面是整合highlight.js+clipboard.js的完整攻略,分为以下几个步骤:

步骤1 安装highlight.js和clipboard.js

首先需要在你的网站中安装highlight.js和clipboard.js库。可以使用npm进行安装,也可以直接在网址上下载相关文件。例如,使用npm安装可以使用以下命令:

npm install highlight.js -S
npm install clipboard -S

安装完成后,需要在JS文件中引入highlight.js和clipboard.js。示例代码如下:

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.2.0/styles/default.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.2.0/highlight.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.8/clipboard.min.js"></script>

步骤2 设置highlight.js样式

设置highlight.js样式,可以通过以下方式进行:

<script>
    hljs.configure({languages: []});
    hljs.initHighlightingOnLoad();
</script>

其中hljs.initHighlightingOnLoad()方法会自动查找页面上所有的标签,并将其高亮显示。

步骤3 设置clipboard.js

定义要复制的元素以及设置复制成功后的提示信息可以如下设置:

<script>
    new ClipboardJS('.btn');
    document.querySelectorAll('pre code').forEach((block) => {
        block.insertAdjacentHTML("beforebegin",
        "<button class='btn' data-clipboard-target='#" + block.id + "'><i class='far fa-copy'></i></button>");
    });
</script>

上述代码中定义了复制操作要触发的按钮样式,并为每个需要复制的代码块所在的标签添加了复制按钮。

步骤4 效果展示

最后,放上一个示例代码,以及代码块的样式展示:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>highlight.js+clipboard.js 整合展示</title>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.2.0/styles/default.min.css">
</head>
<body>
    <pre><code id="example1" class="html"> 
        &lt;html&gt;
            &lt;head&gt;
                &lt;meta charset="UTF-8"&gt;
                &lt;title&gt;Hello World!&lt;/title&gt;
            &lt;/head&gt;
            &lt;body&gt;
                &lt;p&gt;Hello World!&lt;/p&gt;
            &lt;/body&gt;
        &lt;/html&gt;
    </code></pre>

    <pre><code id="example2" class="javascript">
        function sayHello() {
            console.log("Hello World!");
        }

        sayHello();
    </code></pre>

    <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.2.0/highlight.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.8/clipboard.min.js"></script>
    <script>
        hljs.configure({languages: []});
        hljs.initHighlightingOnLoad();

        new ClipboardJS('.btn');
        document.querySelectorAll('pre code').forEach((block) => {
            block.insertAdjacentHTML("beforebegin",
            "<button class='btn' data-clipboard-target='#" + block.id + "'><i class='far fa-copy'></i></button>");
        });
    </script>

</body>
</html>

以上就是使用highlight.js+clipboard.js整合并实现高亮、复制操作的完整攻略,可以在你的网站中灵活使用并提高用户使用体验。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:代码块高亮可复制显示js插件highlight.js+clipboard.js整合 - Python技术站

(0)
上一篇 2023年6月27日
下一篇 2023年6月27日

相关文章

  • Go语言中的延迟函数defer示例详解

    Go语言中的延迟函数defer示例详解 延迟函数(defer)是Go语言中的一个特性,它允许我们在函数执行完毕后执行一些清理操作。在本攻略中,我们将详细讲解延迟函数的使用,并提供两个示例说明。 基本语法 延迟函数使用defer关键字后跟一个函数调用来定义。当包含defer语句的函数执行完毕后,延迟函数会按照它们被定义的顺序逆序执行。 下面是延迟函数的基本语法…

    other 2023年8月20日
    00
  • JavaScript中的this到底是什么(一)

    当然!下面是关于\”JavaScript中的this到底是什么(一)\”的完整攻略,包含两个示例说明。 … … … … … … … … … … … … … … … … … … … … … … … … … … …

    other 2023年8月20日
    00
  • 免费临时短信临时邮箱接收验证码

    很多时候,在进行一些注册登录等操作时,需要输入验证码。但有时候我们并不想使用己的手机号或邮箱接收验证码,这时候可以使用免费的临时短和临时邮箱来接收验证码。 这里推荐两个常用的临时短信和临时邮箱网站: 临时短信 临时邮箱 使用这些网站可以免费获取临时的手机号和邮箱,用于接收验证码。因特殊原因,您访问此网站可能需借助科学上网工具,推荐阅读:《推荐几个靠谱的VPN…

    2023年5月7日
    00
  • Flutter组件生命周期和App生命周期示例解析

    下面是详细讲解“Flutter组件生命周期和App生命周期示例解析”的完整攻略。 Flutter组件生命周期 在Flutter中,每个组件都有其生命周期,即组件创建、销毁和重建时的一系列操作。Flutter的组件生命周期有四个部分,分别为: 创建阶段(Create):在这个阶段中,组件通过调用StatelessWidget或StatefulWidget构造函…

    other 2023年6月27日
    00
  • java数据结构关于栈的实例应用

    Java数据结构之栈的实例应用攻略 1. 栈的概述 栈是一种具有特定操作规则的线性数据结构,遵循先进后出(Last-In-First-Out,LIFO)的原则。栈的操作包括入栈(push)和出栈(pop),以及获取栈顶元素(peek)等。 2. 栈的实例应用 2.1. 括号匹配 栈在括号匹配问题中有广泛的应用。通过使用栈,我们可以检查一个字符串中的括号是否匹…

    other 2023年8月6日
    00
  • Android NDK开发(C语言–动态内存分配)

    Android NDK开发(C语言–动态内存分配)攻略 介绍 Android NDK(Native Development Kit)是一个允许开发者使用C和C++编写Android应用程序的工具集。在Android NDK开发中,动态内存分配是一个重要的概念,它允许我们在运行时动态地分配和释放内存。本攻略将详细介绍如何在Android NDK开发中使用C语…

    other 2023年8月2日
    00
  • Access窗体怎么创建组合框及列表框控件?

    创建Access窗体时,可以通过添加组合框和列表框控件来提供更好的用户体验。下面是创建这些控件的完整攻略。 创建组合框控件 在Access窗体设计器中,选择“设计”视图。 从工具箱中选择“组合框”控件并将其拖到你的窗体中。 右击组合框控件,选择“属性”窗口。 在“数据”选项卡中,选择你想要提供选项的表或查询。 在“格式”选项卡中,选择你想要显示的字段。 指定…

    other 2023年6月27日
    00
  • jmeterjdbcrequest使用详解

    jmeterjdbcrequest使用详解 简介 jmeterjdbcrequest是jmeter的一个插件,它可以模拟对数据库的操作。在测试中,我们通常需要对数据库进行一些操作,例如插入、更新、查询等等,而jmeterjdbcrequest可以帮助我们进行这些操作并且提供较高的灵活性。 安装 在使用jmeterjdbcrequest之前,我们需要先安装它。…

    其他 2023年3月29日
    00
合作推广
合作推广
分享本页
返回顶部