百度编辑器 UEditor 用 highlight.js 库实现代码高亮
代码高亮
下载插件
首先下载highlight.js插件,可在本文页尾免费下载,或自行百度下载。
引用插件
将下载的压缩包解压,引用css和js(本文提供的附件中 monokai-sublime.css,是 sublime 编辑器的一种常用样式,自行下载的插件包 styles 文件夹有很多不同的样式库,也可以自己挑个自己喜欢的用)
<!-- 引入css和js -->
<link rel="stylesheet" type="text/css" href="你的路径/monokai-sublime.css">
<script type="text/javascript" src="实际路径/highlight.pack.js"></script>
<script>hljs.initHighlightingOnLoad();</script>
添加代码
highlight.js 代码高亮遵循的格式是:<pre><code>**</code></pre>,而百度编辑器的代码语言模式生成的为 <pre>**</pre> 缺少 <code></code> 那一层,所以还要在页面加一段 js,循环往 pre 标签里添加 code 标签。如下:
<script type="text/javascript">
var allpre = document.getElementsByTagName("pre");
for(i = 0; i < allpre.length; i++)
{
var onepre = document.getElementsByTagName("pre")[i];
var mycode = document.getElementsByTagName("pre")[i][xss_clean];
onepre[xss_clean] = '<code id="mycode">'+mycode+'</code>';
}
</script>
至此,基本的代码高亮显示效果就制作完成了,如果还想在代码框中增加一键复制功能,可继续按照以下教程开发。
一键复制
下载插件
首先下载clipboard.js插件,可在本文页尾免费下载,或自行百度下载。
引用插件
将下载的压缩包解压,引用js
<script src="实际路径/clipboard.min.js"></script>
添加代码
将代码高亮那一步中添加的代码,循环插入 <code></code> 的代码改为以下代码(在 code 层前面增加了一个 button)
<script type="text/javascript">
var allpre = document.getElementsByTagName("pre");
for(i = 0; i < allpre.length; i++)
{
var onepre = document.getElementsByTagName("pre")[i];
var mycode = document.getElementsByTagName("pre")[i][xss_clean];
onepre[xss_clean] = '<button class="btn" data-clipboard-action="copy">COPY</button><code id="mycode">'+mycode+'</code>'; //在 code 层前面增加了一个 button
}
</script>
为 pre 循环增加 id,并为 pre 内的 button 增加 data-clipboard-target 属性
<script>
$("pre").each(function(){
$(this).attr('id',"pre"+$(this).index());
var btns = $(this).find("button");
$(btns).attr('data-clipboard-target',"#pre"+$(this).index())
});
</script>
添加官方demo中的复制代码
<script>
var clipboard = new ClipboardJS('.btn');
clipboard.on('success', function(e) {
console.log(e);
});
clipboard.on('error', function(e) {
console.log(e);
});
</script>
复制按钮的css样式,添加到你的css文件中
pre {
position: relative;
}
pre .btn{
display: none;
position: absolute;
top:0;
right: 0;
background: #333;
color: #9c9c9c;
border: 1px solid #232323;
}
pre .btn:hover{
color: #fff
}
pre:hover .btn{
display: block;
}
至此,代码高亮加一键复制功能就全部完成了。
相关文档
- 百度无线推广:提升移动流量的高效策略
- 源码中国:程序员的开源代码宝库,这些经验你知道吗?
- 如何查找网页快照?教你通过百度搜索引擎快速找到备份副本
- 百度指数是什么?为何要关注它?你知道多少?
- 百度网页快照是什么?怎么用?有啥特点?这篇文章告诉你
- 怀念百度空间?曾经能写日志传照片的免费个人主页,你了解吗?
- 百度竞价推广常见问题解答:关键词选择技巧大揭秘
- 日常上网常用的百度和 360 搜索引擎,到底哪个更好用?
- 百度快照优化公司揭秘:如何让官网在百度快照中脱颖而出?
- 想在株洲做百度推广?这些基础知识和操作要点你得知道
- 想在百度做免费推广?这些门路得费劲钻研一阵子
- 百度搜索排行榜是啥?咋来的?都有哪些不一样的榜?
- 百度十大神器超好用!无需下载安装,满足工作学习生活需求
- 深入剖析百度医疗推广:为医疗机构与药企提供的广告平台?
- 信息爆炸时代常遇陌生事物?快用百度APP或网站查询
- 百度竞价恶意点击咋回事?如何避免与防范?你真得搞清楚
- 揭秘百度SEO点击软件,小白用户经验分享及使用要点
- 网站优化必知:百度索引量代表啥?与流量有何关系?
- 企业网络推广选百度推广代理商?这些关键事宜要知晓
- 苏州百度推广怎么做?基本概念、形式及选对关键词是关键
下一篇: 迅睿cms使用全局表单制作证书查询功能