百度编辑器 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;
}
至此,代码高亮加一键复制功能就全部完成了。
相关文档
- 百度关键词价格是啥?影响因素有哪些?你知道吗?
- 百度竞价引流重要但存恶意点击问题?这些处理办法快来看
- 百度工具栏是啥?它在浏览便捷方面的强大作用你知道吗?
- 百度种子搜索神器:看似光鲜,实则坑多,下载体验一言难尽
- 百度不收录怎么办?快来看看这些解决网站问题的妙招
- 百度排名查询有多重要?关乎流量与曝光率,你知道吗?
- 百度指数创建全攻略,这些步骤你得知道!从准备到登录官网
- 百度SEO是什么?关键词选择与布局门道你知道吗?
- 刷百度快照:看似高大上实则无内涵,方法简单粗暴
- 新版百度指数发布,借数据决策之力智赢未来
- 揭秘百度竞价点击器:刷量黑幕与百度盈利背后真相
- 百度主题推广:花钱买流量,被算法操控的无奈与荒诞
- 百度风云榜:明星网红奇葩事,母猪上树也能登上热搜
- 深圳互联网推广太卷!百度竞价与信息流广告效果冰火两重天
- 百度指数可免费添加关键词?实测体验及注意事项全分享
- 揭秘百度指数代刷骗局:李守洪低价代刷背后的陷阱
- 揭秘百度点击器:自动刷点击量原理及应对验证码方法
- 东莞商业必看!网络推广如相亲,百度推广爱恨交织
- 百度指数免费不再?巧用营销中心试用版,七天一换邮箱继续蹭
- 晋中做SEO别空想!先做好县城百度地图商户认领等基础工作
下一篇: 迅睿cms使用全局表单制作证书查询功能