JS库 Highlightjs 添加代码行号的实现代码


Posted in Javascript onSeptember 13, 2017

Highlightjs是一款优秀的代码高亮Js组件,可以很方便地对各种语言编写的代码添加语法高亮样式。

然而,Highlightjs默认是不包括显示代码行号(Line Number)这一特性的,不过可以通过简单的JS代码和CSS样式表实现对Highlightjs的行号显示功能。

参考博文链接: syntax-highlighting-with-highlightjs

Javascript代码:

//numbering for pre>code blocks
$(function(){
  $('pre code').each(function(){
    var lines = $(this).text().split('\n').length - 1;
    var $numbering = $('<ul/>').addClass('pre-numbering');
    $(this)
      .addClass('has-numbering')
      .parent()
      .append($numbering);
    for(i=1;i<=lines;i++){
      $numbering.append($('<li/>').text(i));
    }
  });
});

实际上很简单,首先找到代码块$('pre code')。然后取得内容并按照换行符split,我们可以得到代码块的行数。最后,我们构建一个包含从数字1到行数n的行号列表,然后把这个列表追加到</pre>和</code>的闭合标签之间。

此外通过添加适当的css样式将行号列表渲染到代码的左手边缘。使用时请结合页面样式对下面的css做出相应修改。

pre {
  position: relative;
  margin-bottom: 24px;
  border-radius: 3px;
  border: 1px solid #C3CCD0;
  background: #FFF;
  overflow: hidden;
}
code {
 display: block;
 padding: 12px 24px;
 overflow-y: auto;
 font-weight: 300;
 font-family: Menlo, monospace;
 font-size: 0.8em;
}
code.has-numbering {
  margin-left: 21px;
}
.pre-numbering {
  position: absolute;
  top: 0;
  left: 0;
  width: 20px;
  padding: 12px 2px 12px 0;
  border-right: 1px solid #C3CCD0;
  border-radius: 3px 0 0 3px;
  background-color: #EEE;
  text-align: right;
  font-family: Menlo, monospace;
  font-size: 0.8em;
  color: #AAA;
}

通过上面的js代码和css样式表,即可完成简单易用的Highlightjs行号显示。

总结

以上所述是小编给大家介绍的JS库 Highlightjs 添加代码行号的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
用js判断用户浏览器是否是XP SP2的IE6
Mar 08 Javascript
Javascript 定时器调用传递参数的方法
Nov 12 Javascript
JS隐藏参数post传值实例
Apr 18 Javascript
jQuery 监控键盘一段时间没输入
Apr 22 Javascript
js验证框架之RealyEasy验证详解
Jun 08 Javascript
VC调用javascript的几种方法(推荐)
Aug 09 Javascript
对js eval()函数的一些见解
Aug 15 Javascript
Angular.JS实现无限级的联动菜单(使用demo)
Feb 08 Javascript
微信小程序 setData使用方法及常用错误解决办法
May 11 Javascript
ES6解构赋值实例详解
Oct 31 Javascript
js canvas实现二维码和图片合成的海报
Nov 19 Javascript
如何使用puppet替换文件中的string
Dec 06 Javascript
详解动画插件wow.js的使用方法
Sep 13 #Javascript
JS库之Highlight.js的用法详解
Sep 13 #Javascript
详解wow.js中各种特效对应的类名
Sep 13 #Javascript
强大的JavaScript响应式图表Chartist.js的使用
Sep 13 #Javascript
JS库之Waypoints的用法详解
Sep 13 #Javascript
JS库particles.js创建超炫背景粒子插件(附源码下载)
Sep 13 #Javascript
详解React Native开源时间日期选择器组件(react-native-datetime)
Sep 13 #Javascript
You might like
PHPCMS的使用小结
2010/09/20 PHP
PHP CURL获取返回值的方法
2014/05/04 PHP
PHP闭包函数详解
2016/02/13 PHP
了解了这些才能开始发挥jQuery的威力
2013/10/10 Javascript
js操纵dom生成下拉列表框的方法
2014/02/24 Javascript
Jquery原生态实现表格header头随滚动条滚动而滚动
2014/03/18 Javascript
关于Vue.js 2.0的Vuex 2.0 你需要更新的知识库
2016/11/30 Javascript
简单实现Bootstrap标签页
2020/08/09 Javascript
js实现文字列表无缝滚动效果
2017/06/23 Javascript
three.js实现3D模型展示的示例代码
2017/12/31 Javascript
详解Angular结合zTree异步加载节点数据
2018/01/20 Javascript
web3.js增加eth.getRawTransactionByHash(txhash)方法步骤
2018/03/15 Javascript
vuejs点击class变化的实例
2018/09/05 Javascript
Vue computed 计算属性代码实例
2020/04/22 Javascript
利用Python实现简单的相似图片搜索的教程
2015/04/23 Python
浅析Python中yield关键词的作用与用法
2016/11/29 Python
python实现rsa加密实例详解
2017/07/19 Python
Python变量访问权限控制详解
2019/06/29 Python
python的re模块使用方法详解
2019/07/26 Python
Django CSRF认证的几种解决方案
2020/03/03 Python
Python使用socket_TCP实现小文件下载功能
2020/10/09 Python
使用phonegap克隆和删除联系人的实现方法
2017/03/31 HTML / CSS
HTML5中indexedDB 数据库的使用实例
2017/05/11 HTML / CSS
韩国爱茉莉太平洋化妆品美国站:Amore Pacific US
2016/10/28 全球购物
伊芙丽官方旗舰店:中国淑女一线品牌
2017/12/01 全球购物
如何提高JDBC的性能
2013/04/30 面试题
艺术应用与设计专业个人的自我评价
2013/11/19 职场文书
给护士表扬信
2014/01/19 职场文书
青春寄语大全
2014/04/09 职场文书
新闻报道策划方案
2014/06/11 职场文书
党支部综合考察意见
2015/06/01 职场文书
MySQL索引篇之千万级数据实战测试
2021/04/05 MySQL
FFmpeg视频处理入门教程(新手必看)
2022/01/22 杂记
Java如何实现通过键盘输入一个数组
2022/02/15 Java/Android
Elasticsearch 索引操作和增删改查
2022/04/19 Python
Tomcat弱口令复现及利用
2022/05/06 Servers