使用Highlight.js高亮显示代码时,如何为其添加行号?

使用Highlight.js高亮显示代码时,如何为其添加行号?

highlight.js本身不具备添加行号的功能,需要借助css和javascript实现。本文将详解如何为highlight.js高亮的html代码添加行号,并解释此前未能成功添加的原因。

问题根源在于Highlight.js缺乏内置行号支持,需手动添加。解决方案是通过JavaScript动态生成行号,并用CSS控制其样式和位置。 我们需要创建一个

    元素来容纳行号,然后用JavaScript遍历代码行,为每个

  • 元素添加对应的行号。 同时,CSS样式确保行号与代码块对齐。

    以下是一个改进后的代码示例,包含必要的CSS和JavaScript代码:

    
        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;
        }
    
    
    
     
        hljs.highlightAll();
        $(function () {
            $('pre code').each(function () {
                var lines = $(this).text().split('n').length - 1;
                var $numbering = $('
      ').addClass('pre-numbering'); $(this) .addClass('has-numbering') .parent() .append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('
    • ').text(i)); } }); });
      
      
          
          行号
      
      
          

      测试页面

      此代码使用了jQuery简化DOM操作,当然也可以用纯JavaScript实现。 它先加载Highlight.js和jQuery,然后遍历代码行数,动态创建行号列表并添加到代码块中。 CSS样式控制行号的样式和位置,最终实现为Highlight.js高亮的代码添加行号。

    以上就是使用Highlight.js高亮显示代码时,如何为其添加行号?的详细内容,更多请关注昆居客【www.kunjuke.com】。

相关推荐:

迷你世界如何添加人物到地图中

迷你世界游戏里面有很多的内容,今天给大家带来了游戏里面的添加人物到地图中方法,还有小伙伴不清楚要怎么如何添加人物到地图中,那么下面就是相关的内容,来看看吧. 迷你世界添加人物到地图中方法 玩法地图 点击添加按钮,从插件库选取插件或者制作新插件。 勾选已经完成的插件或者新建插件。 修改原版生物:适用于修改自然中会经常刷新的生物,例如:想要爆爆蛋不会自爆,就是选择这个选项。千万别让这些生物获得与方块交...

晋江app怎么将书添加到书架

在晋江app中畅享优质网络文学时,将钟爱的作品添加至书架是一项基础却实用的功能,助你随时无缝续读。那么,如何快速完成这一操作呢? 当你通过晋江App搜索到心仪的小说后,进入该作品的详情页,添加书架的入口一般布局清晰、易于识别。常见位置包括小说封面正下方,或紧邻章节列表的上方区域,此处通常设有明确标注的“加入书架”按钮。只需轻触一下,即可顺利将该书收入个人书架。 若你已开启某部小说的阅读模式,添加书...

秀米编辑器如何添加表情符号

在秀米编辑器中插入表情符号,是提升图文表现力与读者互动感的实用技巧。以下是几种官方支持、稳定可用的操作方式(以当前主流版本为准): 方法一:通过「格式」→「插入符号」添加(推荐首选) 登录秀米官网,进入【我的秀米】; 点击【添加新图文】,创建或打开待编辑内容; 在编辑区将光标定位至需插入表情的位置(或选中某段文字); 点击顶部工具栏中的【格式】按钮,选择【插入符号】; 在弹出的符号面板中切换至「表...

如何把网页以Web App的形式直接添加到Safari浏览器的程序坞?

Mac用户可用Safari原生功能将HTTPS网站转为独立Web App:点击共享按钮选“添加到程序坞”,或通过菜单栏“文件→添加到程序坞”,支持自定义图标与单独窗口,首次运行需授权。 你想在Mac上把常用网站变成独立窗口的Web App,点击Dock图标就能秒开、不带地址栏、还能保持登录状态,直接用Safari原生功能就能实现,不用装任何第三方软件,整个过程不到30秒。 用共享按钮一键添加到程序...

石文app如何添加下划线_石文app添加下划线修饰方法【分享】

石文App添加下划线有四种方法:一、通过文字属性面板启用下划线开关;二、点击工具栏“U”按钮一键切换;三、在“格式→字体样式→下划线”菜单中选择样式;四、表格内需在单元格文字设置中单独开启下划线。 如果您在使用石文App编辑文档时需要为文字添加下划线修饰,但未找到对应功能入口,则可能是因操作路径不明确或界面版本差异导致。以下是多种可行的添加下划线方法: 一、通过文字属性面板添加下划线 该方法适用于...

word添加脚注在哪里找 word脚注格式怎么设置

品牌型号:联想thinkpad 系统:Windows 7 64位旗舰版 软件版本:Microsoft 365 近日,一位朋友在撰写学术论文时,希望为部分专业术语添加脚注,以便读者更准确地理解其含义,但却不清楚如何在Word中操作。为此,本文将为大家详细介绍Word中脚注的插入位置、格式设置方法[1],以及统一调整脚注字体与字号的操作步骤。 一、Word中脚注功能位于何处 虽然插入脚注属于基础操作,...

石文app如何添加背景音乐_石文app添加背景音乐步骤【教程】

石文App添加背景音乐有三种方法:一、主编辑界面通过“音频”图标添加并精细调节;二、用带音符标识的模板一键配乐;三、导入多段音频分层混合处理,支持音量与声像独立调整。 如果您在使用石文App为视频或音频添加背景音乐时遇到操作困惑,可能是由于界面更新或功能入口不熟悉所致。以下是解决此问题的步骤: 一、通过主编辑界面添加背景音乐 该方法适用于已导入视频或音频素材后,在时间轴上直接叠加配乐的操作场景,可...

可灵AI怎么给视频添加特效转场?

可灵AI视频转场需激活特效模块或手动干预:一、启用场景语义分析自动匹配转场;二、手动标注锚点绑定转场类型;三、导入含空间锚点的分镜脚本驱动原生转场;四、用动态遮罩实现局部转场;五、通过首尾帧控制过渡起点与终点。 如果您使用可灵ai生成视频,但发现段落之间缺乏视觉衔接、过渡生硬或节奏断裂,则可能是由于系统未激活特效转场模块、未识别场景语义变化,或默认采用直连帧序列方式拼接。以下是为视频添加特效转场的...