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 相关文章推荐
使用TextRange获取输入框中光标的位
Oct 14 Javascript
Raphael带文本标签可拖动的图形实现代码
Feb 20 Javascript
方便实用的jQuery checkbox复选框全选功能简单实例
Oct 09 Javascript
jQuery实现带动画效果的二级下拉导航方法
Mar 11 Javascript
在Node.js中使用HTTP上传文件的方法
Jun 23 Javascript
详解JavaScript基于面向对象之继承
Dec 13 Javascript
响应式表格之固定表头的简单实现
Aug 26 Javascript
node.js中debug模块的简单介绍与使用
Apr 25 Javascript
Vue3.0结合bootstrap创建多页面应用
May 28 Javascript
layui实现下拉复选功能的例子(包括数据的回显与上传)
Sep 24 Javascript
微信小程序实现一张或多张图片上传(云开发)
Sep 25 Javascript
vue仿淘宝滑动验证码功能(样式模仿)
Dec 10 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
PHP垃圾回收机制简单说明
2010/07/22 PHP
php中定时计划任务的实现原理
2013/01/08 PHP
解析php中heredoc的使用方法
2013/06/17 PHP
php 删除目录下N分钟前创建的所有文件的实现代码
2013/08/10 PHP
PHP字符串中特殊符号的过滤方法介绍
2014/02/18 PHP
phpinfo() 中 Local Value(局部变量)Master Value(主变量) 的区别
2016/02/03 PHP
PHPMAILER实现PHP发邮件功能
2018/04/18 PHP
jquery的ajax从纯真网(cz88.net)获取IP地址对应地区名
2009/12/02 Javascript
javascript题目,重写函数让其无限相加
2012/02/15 Javascript
JS阻止用户多次提交示例代码
2014/03/26 Javascript
关闭页面window.location事件未执行的原因及解决方法
2014/09/01 Javascript
10分钟学会写Jquery插件实例教程
2014/09/06 Javascript
每天一篇javascript学习小结(面向对象编程)
2015/11/20 Javascript
JSONObject使用方法详解
2015/12/17 Javascript
原生JS实现图片轮播效果
2016/12/26 Javascript
axios基本入门用法教程
2017/03/25 Javascript
vue项目如何刷新当前页面的方法
2018/05/18 Javascript
mpvue构建小程序的方法(步骤+地址)
2018/05/22 Javascript
Angular使用ControlValueAccessor创建自定义表单控件
2019/03/08 Javascript
python遍历一个目录,输出所有的文件名的实例
2018/04/23 Python
Python 获取主机ip与hostname的方法
2018/12/17 Python
如何用Python制作微信好友个性签名词云图
2019/06/28 Python
Python中url标签使用知识点总结
2020/01/16 Python
彻底搞懂 python 中文乱码问题(深入分析)
2020/02/28 Python
Brookstone美国官网:独特新奇产品
2017/03/04 全球购物
eBay英国购物网站:eBay.co.uk
2019/06/19 全球购物
项目开发计划书
2014/01/09 职场文书
会计岗位职责模板
2014/03/12 职场文书
对孩子的寄语
2014/04/09 职场文书
业务内勤岗位职责
2014/04/30 职场文书
2014年教师节国旗下讲话稿
2014/09/10 职场文书
工作犯错保证书
2015/05/11 职场文书
Nginx域名转发https访问的实现
2021/03/31 Servers
自己搭建resnet18网络并加载torchvision自带权重的操作
2021/05/13 Python
 Python 中 logging 模块使用详情
2022/03/03 Python
Python 统计序列中元素的出现频度
2022/04/26 Python