效果图

1587719278(1).jpg

main.js

import hljs from "highlight.js";

import "highlight.js/styles/atom-one-dark.css"; // 样式文件

Vue.directive("highlight", function(el) {

console.log("自定义指令", el);

let blocks = el.querySelectorAll("pre code");

blocks.forEach(block => {

console.log(block.innerHTML, "block是", block);

try {

let str = block.innerHTML;

let lang = "js";

// 得到经过highlight.js之后的html代码

const preCode = hljs.highlight(lang, str, true).value;

// 以换行进行分割

// const lines = preCode.split(/\n/).slice(0, -1);

const linesLength = preCode.split("
").length;

// 生成行号 aria-hidden 对浏览器语义化隐藏

let linesNum = '';

for (let index = 0; index < linesLength + 1; index++) {

linesNum = linesNum + "";

}

linesNum += "";

let html = preCode;

// 右上角语言说明

// if (linesLength) {

// html += '' + lang + "";

// }

html =

'

' + html + "" + linesNum + "

";

block.parentNode.parentNode.innerHTML = html;

} catch (__) {

console.log("执行错误", __);

}

// 方法一

// hljs.highlightBlock(block);

// const linesLength = block.innerHTML.split("
").length;

// // 生成行号 aria-hidden 对浏览器语义化隐藏

// let linesNum = '';

// for (let index = 0; index < linesLength + 1; index++) {

// linesNum = linesNum + "";

// }

// linesNum += "";

// block.parentNode.innerHTML = block.parentNode.innerHTML + linesNum;

});

});

父组件

{{ code.title }}

import render from "./render";

export default {

name: "",

components: {

render

},

data() {

// 两种换行都可以

const br =
; //{br}

const n = "\n"; //{n}

return {

code: {

title: "一个标题",

render: h => {

return (

var str = "18127446988"

{n}

console.log(enStr)

);

}

}

};

}

};

.page {

text-align: center;

// 方法二

.codes {

width: 500px;

margin: 0 auto;

}

.hljs {

position: relative;

text-align: left;

padding: 7px 2px 7px 40px;

code {

display: block;

margin: 0 10px;

}

}

// 方法一

// .codes {

// width: 500px;

// margin: 0 auto;

// position: relative;

// background: #282c34;

// }

// pre {

// padding-left: 50px;

// }

// .hljs {

// text-align: left;

// }

// 共用

.line-numbers-rows {

position: absolute;

pointer-events: none;

top: 7px;

bottom: 7px;

left: 0;

font-size: 100%;

width: 40px;

text-align: center;

letter-spacing: -1px;

border-right: 1px solid rgba(0, 0, 0, 0.66);

user-select: none;

counter-reset: linenumber;

span {

pointer-events: none;

display: block;

counter-increment: linenumber;

&:before {

content: counter(linenumber);

color: #999;

display: block;

text-align: center;

}

}

}

}

子组件

export default {

name: "Render",

functional: true,

props: {

render: Function

},

render: (h, ctx) => {

return ctx.props.render ? ctx.props.render(h) : "";

}

};

html pre标签增加行号,vue使用highlight.js 添加行号相关推荐

  1. highlight.js 添加行号

    highlight.js 添加行号 本文地址:blog.lucien.ink/archives/491 现成的轮子 GitHub 上有一个为 highlight.js 添加行号的项目 github.c ...

  2. pythonidle怎样显示行号_给Python IDLE添加行号显示

    文章目录 一.引出问题 1.Spyder编辑Python程序能显示行号 2.Python IDLE编辑Python程序不显示行号 二.解决问题 1.下载IDLEX压缩包 2.将idlex-1.18.r ...

  3. python如何添加行号_Tkinter向文本widg添加行号

    我有一个相对简单的解决方案,但它很复杂,可能很难理解,因为它需要了解Tkinter和底层tcl/tk文本小部件的工作原理.我将在这里介绍一个完整的解决方案,您可以按原样使用它,因为我认为它说明了一种非 ...

  4. Excel表格如何在数据行快速添加行号

    /*** * Excel表格如何快速填充数据行号* * 今天整理一下关于Excel如何快速填充数据行号的问题;* * 有两种方式:* * 首先来讲一下第一种方式:* *//*** * 第一种方式: 添 ...

  5. 表格(增加行号) http://www.blogjava.net/zeyuphoenix/archive/2010/04/19/318788.html

    表格(增加行号) 前面介绍了关于JTable的基本使用.JTable单元格的Renderer和Editor.JTable的单元格的合并和拆分.JTableHeader的Renderer和Editor. ...

  6. 学习笔记101— word 如何给某一页后面所有页增加行号

    word中 如何给特定页增加行号 1.点击"布局" ----> "行号" ----> "连续" 2.如果是从某一页的后面,才还是 ...

  7. C# datagridview、datagrid、GridControl增加行号

    01 - WinForm中datagridview增加行号 在界面上拖一个控件dataGridView1,在datagridview添加行事件中添加如下代码: private void dataGri ...

  8. Latex 生成的PDF增加行号 左右两边

    增加行号 \usepackage[switch]{lineno}\linenumbers \begin{document} \end{document}

  9. vue 的v-pre指令和pre标签

    vue 的v-pre指令和pre标签 1. vue的pre指令 不加v-pre代码 不加v-pre效果图 加v-pre代码 加v-pre效果图 2. vue的pre标签 不加pre标签代码 不加pre ...

最新文章

  1. mysql3.0数据库修复_mysql3.0监控mysql数据库
  2. ngnix服务器搭建
  3. Logstash 使用fingerprint filter过滤重复数据
  4. python 工资管理软件_4_python之路之模拟工资管理系统
  5. C#8.0可空引用类型的使用注意要点 1
  6. String字符串按多个字符Split方法
  7. Mybatis简单数据库查询
  8. 日报管理系统_设备维护管理系统的自动化报告功能
  9. 动词ing形式做定语的用法总结
  10. 向军php视频教程下载,向军hd框架视频教程,后盾网框架下载
  11. 怎么把win10右下角的隐藏图标调出来(把倒三角调出来)
  12. 时光轴一之listView实现时光轴效果
  13. 餐馆管理系统程序流程图_这个交付应用程序使您最喜欢的中国餐馆保持活力
  14. 区块链赚钱攻略:最新干货 区块链人士必读!
  15. 时间间隔输出函数 python3
  16. VR、AR、MR的区别与应用,以及对AR技术的一些实现原理
  17. 《MATLAB SYNTAX》第1章 数据类型
  18. 接口测试工具Postman的基本使用
  19. FL Studio里一起安装的ASIO4ALL有什么用?
  20. windows7 前置耳机插孔无声音解决办法

热门文章

  1. 基于JAVA+SpringMVC+Mybatis+MYSQL的心理咨询预约系统
  2. 基于JAVA+SpringMVC+Mybatis+MYSQL的保险销售管理系统
  3. windows tcp端口占满_TCP与UDP分析、三次握手四次断开、DDOS
  4. SpringCloud分布式开发五大神兽
  5. box-sizing的不同属性值间的区别
  6. [Asp.Net] Form验证中 user.identity为false
  7. C#数据类型02--结构
  8. 关于html5音频如何应用及解决方法?
  9. 自定义调试窗口---上面板
  10. Makefile的几个赋值运算符(转:笔记)