html pre标签增加行号,vue使用highlight.js 添加行号
效果图
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 添加行号相关推荐
- highlight.js 添加行号
highlight.js 添加行号 本文地址:blog.lucien.ink/archives/491 现成的轮子 GitHub 上有一个为 highlight.js 添加行号的项目 github.c ...
- pythonidle怎样显示行号_给Python IDLE添加行号显示
文章目录 一.引出问题 1.Spyder编辑Python程序能显示行号 2.Python IDLE编辑Python程序不显示行号 二.解决问题 1.下载IDLEX压缩包 2.将idlex-1.18.r ...
- python如何添加行号_Tkinter向文本widg添加行号
我有一个相对简单的解决方案,但它很复杂,可能很难理解,因为它需要了解Tkinter和底层tcl/tk文本小部件的工作原理.我将在这里介绍一个完整的解决方案,您可以按原样使用它,因为我认为它说明了一种非 ...
- Excel表格如何在数据行快速添加行号
/*** * Excel表格如何快速填充数据行号* * 今天整理一下关于Excel如何快速填充数据行号的问题;* * 有两种方式:* * 首先来讲一下第一种方式:* *//*** * 第一种方式: 添 ...
- 表格(增加行号) http://www.blogjava.net/zeyuphoenix/archive/2010/04/19/318788.html
表格(增加行号) 前面介绍了关于JTable的基本使用.JTable单元格的Renderer和Editor.JTable的单元格的合并和拆分.JTableHeader的Renderer和Editor. ...
- 学习笔记101— word 如何给某一页后面所有页增加行号
word中 如何给特定页增加行号 1.点击"布局" ----> "行号" ----> "连续" 2.如果是从某一页的后面,才还是 ...
- C# datagridview、datagrid、GridControl增加行号
01 - WinForm中datagridview增加行号 在界面上拖一个控件dataGridView1,在datagridview添加行事件中添加如下代码: private void dataGri ...
- Latex 生成的PDF增加行号 左右两边
增加行号 \usepackage[switch]{lineno}\linenumbers \begin{document} \end{document}
- vue 的v-pre指令和pre标签
vue 的v-pre指令和pre标签 1. vue的pre指令 不加v-pre代码 不加v-pre效果图 加v-pre代码 加v-pre效果图 2. vue的pre标签 不加pre标签代码 不加pre ...
最新文章
- mysql3.0数据库修复_mysql3.0监控mysql数据库
- ngnix服务器搭建
- Logstash 使用fingerprint filter过滤重复数据
- python 工资管理软件_4_python之路之模拟工资管理系统
- C#8.0可空引用类型的使用注意要点 1
- String字符串按多个字符Split方法
- Mybatis简单数据库查询
- 日报管理系统_设备维护管理系统的自动化报告功能
- 动词ing形式做定语的用法总结
- 向军php视频教程下载,向军hd框架视频教程,后盾网框架下载
- 怎么把win10右下角的隐藏图标调出来(把倒三角调出来)
- 时光轴一之listView实现时光轴效果
- 餐馆管理系统程序流程图_这个交付应用程序使您最喜欢的中国餐馆保持活力
- 区块链赚钱攻略:最新干货 区块链人士必读!
- 时间间隔输出函数 python3
- VR、AR、MR的区别与应用,以及对AR技术的一些实现原理
- 《MATLAB SYNTAX》第1章 数据类型
- 接口测试工具Postman的基本使用
- FL Studio里一起安装的ASIO4ALL有什么用?
- windows7 前置耳机插孔无声音解决办法
热门文章
- 基于JAVA+SpringMVC+Mybatis+MYSQL的心理咨询预约系统
- 基于JAVA+SpringMVC+Mybatis+MYSQL的保险销售管理系统
- windows tcp端口占满_TCP与UDP分析、三次握手四次断开、DDOS
- SpringCloud分布式开发五大神兽
- box-sizing的不同属性值间的区别
- [Asp.Net] Form验证中 user.identity为false
- C#数据类型02--结构
- 关于html5音频如何应用及解决方法?
- 自定义调试窗口---上面板
- Makefile的几个赋值运算符(转:笔记)