当前位置:首页 > 日记 > 正文

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

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

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 添加代码行号的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

相关文章

painter怎么使用钢笔画笔绘制图形?

painter怎么使用钢笔画笔绘制图形?

绘制图形,电脑软件,painter,Painter绘制图形很简单,是一款很常用的绘图软件,今天我们就来看看painter中钢笔画笔的使用方法,请看下文详细介绍软件名称:Corel Painter(绘画软件) 2018 官方正式版(附注册机) 在线安装包 64位软件大小:994KB更新时…

excel表格斜杠绘制教程

excel表格斜杠绘制教程

绘制,教程,斜杠,表格,电脑软件,  Excel表格中如何绘制斜杠呢?下面是由小编分享的excel表格斜杠绘制教程,以供大家阅读和学习。excel表格斜杠绘制教程:  绘制斜杠步骤1:有时候,做表格需要给第一个格加斜杠,如下,绘制斜杠步骤2:选中要加斜杠的单…

Bootstrap栅格系统使用方法及页面

Bootstrap栅格系统使用方法及页面

变形,栅格系统,调整,解决方法,使用方法,如果你以前使用过Bootstrap2或者了解过响应式技术,那么肯定对Bootstrap栅格系统并不陌生,由于栅格系统的引入,使得Bootstrap的跨设备布局显示变得可能。什么是栅格系统栅格系统是指,将页面布局划分为等宽…

手机wps的ppt背景怎么编辑

手机wps的ppt背景怎么编辑

模板,方法,幻灯片,背景,编辑,  wps幻灯片的制作,怎么用手机去制作ppt呢?其实手机添加幻灯片模板和制作方法都很简单,关键是多学,下面给大家分享使用手机wps编辑幻灯片模板的方法,欢迎大家来到学习。手机wps添加幻灯片模板的方法wps添加幻灯片…

ps怎么制作一个膨胀文字的动画效果

ps怎么制作一个膨胀文字的动画效果

膨胀,动画效果,文字,电脑软件,ps,ps想要制作一段文字变形的动画,该怎么制作呢?下面我们就来看看ps制作文字膨胀效果的教程。软件名称:Adobe Photoshop 8.0 中文完整绿色破解版软件大小:150.1MB更新时间:2015-11-041、首先启动Photoshop cs5,执行…

用Photoshop把一张裁剪出一个圆形

用Photoshop把一张裁剪出一个圆形

电脑软件,Photoshop,对图片进行裁剪很容易,有时我们直接截图就可以了,可是如果我们要截取一个圆形出来还是借用Photoshop来处理比较好,下面就为大家详细介绍一下,一起来看看吧!步骤:1、用Photoshop打开需要处理的照片,如图2、选择使用椭圆选框工具…

PS怎么设计一个淘宝无线端首页?

PS怎么设计一个淘宝无线端首页?

首页,淘宝,电脑软件,PS,无线端的店铺主页的教程,详细请看下文。软件名称:Adobe photoshop 6.0 汉化中文免费版软件大小:107MB更新时间:2013-04-191、新建一个空白的背景图层如所示大小2、利用圆角矩形工具画出如所示的矩形3、然后将这上面的一…

ppt2010怎么打包成CDppt2010打包成

ppt2010怎么打包成CDppt2010打包成

步骤,方法,电脑软件,CD,strong,  所谓打包,指的就是将独立的已综合起来共同使用的单个或多个文件,集成在一起,生成一种独立于运行环境的文件。ppt如何打包?今天小编就来告诉你ppt2010打包成CD的方法步骤吧。希望对你有帮助!ppt2010打包成cd的…

JavaScript队列函数和异步执行详解

JavaScript队列函数和异步执行详解

队列,函数,执行,异步,详解,编辑注:在Review别人的JavaScript代码时曾看到过类似的队列函数,不太理解,原来这个是为了保证函数按顺序调用。读了这篇文章之后,发现还可以用在异步执行等。假设你有几个函数fn1、fn2和fn3需要按顺序调用,最简单的方…

百度编辑器 ueditor 内容编辑自动

百度编辑器 ueditor 内容编辑自动

标签,替换,百度编辑器,编辑,内容,如图,红框为回车键和shift+回车 : ===>> ueditor.all.js中:1:搜索修改成false:allowDivTransToP: false再搜索并修改以下://编辑器不能为空内容if (domUtils.isEmptyNode(me.body)) {me.body.innerHTML = '<…

PS怎么使用滤镜制作黑白城市艺术?

PS怎么使用滤镜制作黑白城市艺术?

滤镜,黑白,艺术,城市,电脑软件,简单创意的PS教程,效果图虽然只用了简单的动感模糊滤镜,不过效果就非常有创意,建筑有一种动感效果,画面也简洁了很多。喜欢的同学可以去尝试一下。最终效果图如下:软件名称:Adobe Photoshop 8.0 中文完整绿色破解版…

ps怎么给帅哥穿上个性的东北大花衣

ps怎么给帅哥穿上个性的东北大花衣

东北,穿上,大花,帅哥,衣服,衣服增加布纹的方法有很多,例如:直接把衣服单独抠出,并用想要的布纹剪贴到原衣服上;后期把原衣服的褶皱还原到布纹上,再调整颜色和光影等,得到想要的效果。软件名称:Adobe Photoshop 8.0 中文完整绿色破解版软件大小:150.…