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

最近有个需求是将jsp页面上的某一段代码块格式化成类似CSDN的代码块的样式

主要从两个方面入手了:

1.高亮显示/换行

2.复制代码按钮

这两方面都有现成的插件。

代码高亮插件——highlight.js

1.下载highlight的js文件。

https://highlightjs.org/

点击get version按钮进入语言选择

勾选常用语言,通常common就足够用了。

点击download,下载,解压,里面会有js文件和css文件。

js文件决定哪些部分高亮,css决定代码颜色

2.在解压后的文件里找到一个highlight.pack.js文件,在使用时导入这个js文件。

<script src="js/jquery-3.1.1.js"></script> 
<script src="js/highlight.pack.js"></script>

3.打开里面的styles文件,里面有很多的css文件。这些文件可以更改你的展示代码的css样式,包括高亮的颜色和背景色(主题色)。

在使用时想使用那种样式只需要导入这个样式的css文件即可。看不懂这些英文都代表的什么样式?这个网址有各个css文件的效果展示:https://highlightjs.org/static/demo/

这里我选择了一个dark.css文件:

<link rel="stylesheet" type="text/css" href="css/dark.css"/>

导入js文件和css文件后然后就可以使用了。

在使用时,一定要将你要展示的代码包在<pre><code></code></pre>标签里!!!

如果你的代码里包含标签,记得将标签的"<"换成"&lt",把">"换成"&gt"

复制插件——clipboard.js

        一开始想直接使用execCommand实现复制,代码如下。结果复制到的内容没有换行空格等相关的格式,且有兼容性问题,在找了大量插件的过程中采用了现成的复制插件clipboard.js,能够较方便快捷的实现功能。

<script type="text/javascript">
function copyLink(){
var e = document.getElementById("copy");
e.select(); // 选择对象
document.execCommand("Copy"); // 执行浏览器复制命令
alert("复制链接成功!");
}
</script>

clipboard.js 可以实现纯 JS 的从浏览器复制文本到系统剪贴板的功能。

使用过程中前端浏览器提示了 Clipboard is not defined 

一开始以为是未定义或者源码错误,找了半天发现是引入js文件时路径有错误(今后在使用插件过程中如果有未定义的问题,一定要F12调试看一下有没有404错误)

1. 下载 clipboard.js。clipboard.js 下载地址: https://github.com/zenorocha/clipboard.js

2.引入插件

下载下来的文件clipboard.js-master\clipboard.js-master\demo中可以看到示例,可直接使用

以下是复制id=copyCode 的div使用实例:

1)引入js文件

<script src="${ctx }/styles/js/clipboard.min.js" type="text/javascript" ></script>

2)实例化clipboard对象

    <script>
    var clipboard = new ClipboardJS('.btn');
    clipboard.on('success', function(e) {
        console.log(e);
    });
    clipboard.on('error', function(e) {
        console.log(e);
    });
    </script>

3)定义复制的按钮跟内容(注:此处需要给触发复制时间的按钮添加两个属性,data-clipboard-action 及 data-clipboard-target,data-clipboard-target的属性值为目标文本的 id 值)

 <div id="copyCode">hello</div>
 <button class="btn" data-clipboard-action="copy" data-clipboard-target="#copyCode">Copy</button>

data-clipboard-target 值也可以是标签,但是如果有多个标签,会失效,注意。

 

两个插件使用过程中没有冲突,可以较好糅合。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: highlight.js 是一个用于网页中代码高亮显示的库。如果您认为默认样式不好看,您可以通过自定义 CSS 来更改样式。您还可以在 highlight.js 的官网上下载其他预定义样式进行使用。 ### 回答2: highlight.js是一个用于在网页中实现代码高亮的工具,它提供了很多内置的代码样式,但是有些人可能认为它提供的样式不够好看。高亮代码样式好不好看,可能是因为个人审美差异或特定需求的差异而有所不同。 首先,highlight.js提供了很多内置的代码样式,覆盖了多种编程语言和主题。每个样式都经过精心设计,以凸显代码的关键部分。然而,这些样式可能不符合某些人的审美标准。某些人可能喜欢更加简洁和现代化的样式,而highlight.js提供的样式可能更注重功能而不是外观。 其次,代码高亮旨在提高代码的可读性和理解度,而不仅仅是外观上的吸引力。因此,一些样式可能更加注重强调代码关键部分的可用性,而不是注重外观的美观性。这可能解释了为什么有些人可能认为highlight.js提供的样式不那么好看。 最后,虽然highlight.js提供了很多内置的样式,但用户也可以自定义样式,以满足个人或特定需求。用户可以通过修改CSS文件或使用定制的样式生成器来改变代码高亮的外观。这使得highlight.js具有很大的灵活性和可定制性,可以满足用户对代码样式的不同审美偏好。 总结来说,highlight.js高亮代码样式好不好看,是主观而个人化的问题。虽然一些人可能认为其提供的样式不够好看,但高亮代码样式的评价应该更注重其在提高代码可读性和理解上的效果。同时,highlight.js也提供了自定义样式的功能,使用户可以根据自己的偏好进行调整。 ### 回答3: highlight.js 是一个用于给网页中的代码进行语法高亮的开源工具。它支持多种编程语言的高亮显示,包括但不限于JavaScript、HTML、CSS、Python等。 不过,有些人认为 highlight.js 的代码样式不够好看。他们可能认为高亮的颜色不够鲜艳,或者文本字体不够清晰。这样的评价是主观的,因为每个人对美观的定义都有所不同。 如果你使用 highlight.js,而又不满意其默认样式,你可以自定义代码的外观。highlight.js 提供了灵活的API,允许你修改颜色、字体、背景等,以使代码更符合你的审美标准。 另外,如果你对 highlight.js 的默认样式不满意,也可以选择其他类似的代码高亮工具,比如 Prism、Prettify 等。它们提供了更多样式可选,满足了不同用户的需求。 总之,每个人对于代码样式的喜好都不同。对于那些认为 highlight.js高亮样式不好看的人来说,他们可以通过自定义代码的外观或选择其他工具来解决他们的问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值