如何使用js将html、css、js代码格式化并高亮显示

前端学习4:HTML文本格式化 和标签都是实现斜体效果。这是倾斜字体 阅读详情

代码格式化,高亮显示,这在我们开发过程中都是司空见惯的功能,各种编辑器都有,在好多网站上也可以在线格式化代码,但是如何在我们的前端页面上插入一段格式化后高亮显示的代码呢?有些小伙伴可能还不会,那么看完这篇文章之后肯定就学会了。

效果图如下:
在这里插入图片描述

自己要去找实现方法可能很难也很花时间,但是别人总结好的东西就会给你省下很多事情了。

多看多总结多分享,跟大家一起进步,加油!!

好了,下面步入正题吧。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<!-- 引入jquery作为辅助工具 -->
		<script type="text/javascript" src="js/jquery-1.4.2.js"></script>
		<!-- SyntaxHighlighter,用于对代码进行高亮的插件 -->
		<!-- SyntaxHighlighter插件的核心文件 -->
		<script type="text/javascript" src="src/shCore.js"></script>
		<!-- <script type="text/javascript" src="src/shAutoloader.js"></script> -->
		<!-- 用于对html代码并进行高亮处理 -->
		<script type="text/javascript" src="scripts/shBrushXml.js"></script>
		<!-- 用于对js代码并进行高亮处理 -->
		<script type="text/javascript" src="scripts/shBrushJScript.js"></script>
		<!-- 用于对css代码并进行高亮处理 -->
		<script type="text/javascript" src="scripts/shBrushCss.js"></script>
		<!-- 用于对html代码进行格式化 -->
		<script type="text/javascript" src="extra/html_format.js"></script>
		<!-- 用于对js代码进行格式化 -->
		<script type="text/javascript" src="extra/js_format.js"></script>
		<!-- 用于对css代码进行格式化 -->
		<script type="text/javascript" src="extra/css_beautify.js"></script>
		<!-- SyntaxHighlighter插件的核心样式表 -->
		<link type="text/css" rel="stylesheet" href="styles/shCore.css" />
		<!-- SyntaxHighlighter插件的默认样式表 -->
		<link type="text/css" rel="Stylesheet" href="styles/shCoreDefault.css" />
		<!-- SyntaxHighlighter插件的默认主题样式表,可以自己设置主题 -->
		<link type="text/css" rel="Stylesheet" href="styles/shThemeDefault.css" />
		<title>测试代码高亮</title>
	</head>
	<body>
		<!-- 杂乱的css代码,用于进行测试 -->
		<style id="css_code">
			input {				line-height: 32px;				outline: none;				border: 1px solid violet;			}
		</style>
		<!-- 杂乱的html代码,用于进行测试 -->
		<div id="ahri">
			<div>					<p>							<input type="text">							<input type="number">
							<input type="checkbox">							<button type="button">									普通按钮							</button>
							<button type="reset">									重置按钮							</button>
							<button type="submit">									提交按钮							</button>
					</p>
			</div>
			<p>					<span>							<button type="button">									button							</button>
					</span>					<span>							<button type="reset">									reset							</button>
					</span>					<span>							<button type="submit">									submit							</button>
					</span>
			</p>
		</div>
		<!-- 杂乱的js代码,用于进行测试 -->
		<script id="js_code">
			function ahri() {				const map = new Map([					['?  ?', '你在教我做事??'],
					[new Array(5).fill('??'), '你不对劲']
				]);				console.log(map.get('?  ?'));
			}
		</script>
		<!-- 用于显示格式化后高亮的html代码 -->
		<div id="kurumi"></div>
		<!-- 用于显示格式化后高亮的js代码 -->
		<div id="leona"></div>
		<!-- 用于显示格式化后高亮的css代码 -->
		<div id="dianna"></div>
		<div>
			<h2>who's your daddy</h2>
		</div>
		
		
		
		<script type="text/javascript">
			format();
			
			function format() {
				// 获取要进行处理的html代码内容
				html_code = document.getElementById('ahri').innerHTML.replace(/^\s+/, '');
				tabsize = 2;	// 缩进位数
				tabchar = ' ';	// 缩进方式为空格
				if (tabsize == 1) {
						tabchar = '\t';	// 缩进方式为tab
				}
				// SyntaxHighlighter插件处理代码高亮时需要使用到pre标签
				var pre = document.createElement('pre');
				// 设置pre标签的class名称为这个就可以对html代码进行高亮处理
				pre.className = "brush: html;"
				if (html_code && html_code.charAt(0) === '<') {
						// 使用style_html方法对html代码进行格式化
						pre.innerHTML = style_html(html_code, tabsize, tabchar, 80);
				} else {
						// 使用js_beautify方法对js代码进行格式化
						pre.innerHTML = js_beautify(html_code, tabsize, tabchar);
				}
				// 将pre标签内容加入到dom中
				$(`#kurumi`).append(pre);
				
				// 获取js代码内容
				js_code = document.getElementById('js_code').innerHTML.replace(/^\s+/, '');			
				// 创建pre标签同上
				var js_pre = document.createElement('pre');
				// 这里的class名称要设置要变为以下内容
				js_pre.className = "brush: jscript;"
				// 对js代码进行格式化
				js_pre.innerHTML = js_beautify(js_code, tabsize, tabchar);
				// 将pre标签内容放入到dom中
				$('#leona').append(js_pre);
				
				// css代码格式化的方法的配置参数
				var options = {
					indent: '    ',	// 缩进使用空格或 \t(tab)
					// openbrace: 'separate-line'	// 使用第一个{的时候是否换行
				}
				// 获取css代码内容
				var css_code = document.getElementById('css_code').innerHTML.replace(/^\s+/, '');
				// 创建pre标签同上
				var css_pre = document.createElement('pre');
				// 将class名称改一下
				css_pre.className = "brush: css;"
				// 格式化css代码
				css_pre.innerHTML = cssbeautify(css_code, options);
				// 将pre标签内容放入到dom中
				$('#dianna').append(css_pre);
				
				// 配置一下SyntaxHighlighter插件
				Object.assign(SyntaxHighlighter.defaults, {
					toolbar: false,	// 是否显示帮助的?按钮
					'quick-code': false	// 是否双击后编辑代码
				})
				// 调用此方法就可以将代码进行高亮了
				// 如果使用SyntaxHighlighter.all()无法出现代码高亮效果,就直接使用SyntaxHighlighter.highlight();
				SyntaxHighlighter.all();
			}
		</script>
	</body>
</html>

代码基本都很简单,如果想要实现更多的功能可以去看看工具方法的源码,我也是看了源码慢慢摸索出来的,希望能对大家有所帮助。
源代码可以在这里自行下载查看。

如果大家对高亮代码的颜色有所要求,那么也可以自己设置代码高亮颜色,参考方法如下:

我们可以参考VScode的主题样式来配置自己的代码高亮展示

在这里插入图片描述

在VScode中打开开发者模式,我们就可以像在浏览器中那样查看VScode编辑器中的代码主题颜色样式了,然后在页面上也同样打开开发者模式,一个个元素去对照,修改对应的css文件就可以达到我们自定义代码高亮主题色彩的目的了。

前端实现文本对比,并高亮显示差异! 你有没有想过,常见的代码差异对比是如何都实现的呢?其实这里面涉及到非常复杂的文本对比算法,本文就来看看如何通过现有工具库 jsdiff + diff2html 实现文本对比,并高亮显示差异! 阅读详情

相关推荐

EditPlus自动格式化JS、HTML、CSS的设置指南

首选项窗口是一个包含多个配置选项卡的界面,允许用户进行详细设置以优化他们的编辑体验:通用(General)选项卡:用于调整编辑器的基本设置,如自动完成、鼠标光标和界面语言。语法高亮(Syntax Highlighting)选项卡:用于管理不同文件类型的语法高亮显示。工具栏/菜单(Toolbar/Menu)选项卡:添加或移除工具栏和菜单的项目。自动换行/缩进(Word Wrap/Indent)选项卡:设置文本的自动换行和代码的自动缩进。

weixin_35045970的博客 986

【JavaScript】JavaScript日期和时间的格式化:

【JavaScript】JavaScript日期和时间的格式化:

SunPeng的博客 2万+

Sublime Text插件实践:HTML-CSS-JS Prettify代码美化

Sublime Text 是一款轻量级、高效的文本和源代码编辑器,因其出色的性能和丰富的插件生态系统而受到开发者的喜爱。它支持多种编程语言的语法高亮显示,并且界面简洁,易于定制。Sublime Text 同时提供了跨平台的支持,可在 Windows、macOS 和 Linux 上运行。它配备了快速的搜索功能,强大的多光标编辑和插件管理功能,从而提升了开发者的编码效率。

weixin_28949937的博客 1184

HTML代码格式化实现方式

HTML格式化的实现介绍,基于 https://guud.cn/tools/html-formatter.html 的源码

oqqYY1234567891的博客 3365

【CV论文精读】【协同感知综述】Collaborative Perception for Autonomous Driving :Current Status and Future Trend

感知是自动驾驶系统的关键模块之一,近年来取得了很大进展。然而,单个车辆的有限能力导致感知性能提高的瓶颈。为了突破个体感知的局限,协作感知被提出,它使车辆能够共享信息来感知视线和视野之外的环境。本文综述了有前途的协作感知技术的相关工作,包括介绍了基本概念,概括了协作模式,总结了协作感知的关键要素和应用。最后,我们讨论了这一研究领域面临的挑战和问题,并给出了一些潜在的进一步方向。

weixin_44184852的博客 4690

国产机载操作系统天脉ACoreOS实战:从零搭建开发环境到应用移植

本文详细介绍了国产机载操作系统天脉ACoreOS的实战开发流程,从核心特性解析到开发环境搭建,再到VxWorks应用移植策略。重点阐述了其符合ARINC 653标准的时空分区架构如何保障高可靠性,并提供了从零创建分区工程、重构通信与任务代码的具体步骤,为开发者向这一国产化平台迁移提供了实用指南。

flower的专栏 634

JS格式化字符串(两种方法)

本文一共介绍了两种实现方式: 文章目录1. 使用反引号实现(推荐)2. 自定义方法实现 1. 使用反引号实现(推荐) ES6 模板字符串(Template String)是增强版的字符串,用反引号(`)标识,它可以当作普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量。 语法格式: `想要输出的字符串……${变量名称}想要输出的字符串……${变量名称}` 应用实例: <script> window.onload = function() {

COCO56的博客 2万+

通达信-申万宏源金融终端本地数据转sqlite3,2、解析申万宏源C:/zd_swhy_gm/vipdoc/sh/lday的sh600000股票数据

为量化做准备,通达信-申万宏源金融终端本地数据转sqlite3,解析申万宏源C:/zd_swhy_gm/vipdoc/sh/lday的sh600000股票数据

wuyaqi的博客 511

JavaScript 日期和时间的格式化大汇总(收集)

其中,y 会被替换为年份,M、d、h、H、m、s、q、S、a、A 分别表示月份、日期、小时(12 小时制)、小时(24 小时制)、分钟、秒、季度、毫秒、上午/下午、AM/PM。可以使用 Date 对象的一些方法来进行日期和时间的操作,例如,使用 setDate() 方法设置日期,使用 setHours() 方法设置小时数,使用 setTime() 方法设置毫秒数等等。这个函数接受两个参数,第一个参数是要格式化的日期时间,可以是 Date 对象或表示日期时间的字符串,第二个参数是要格式化的格式,例如。

风清扬的专栏 2万+

在CoppeliaSim里实现一个最简单的强化学习

前言 上一篇文章中介绍了CoppeliaSim的一些基本知识和一个简单的用python去控制CoppeliaSim里面四旋翼无人机运动的一个例子。文章链接 :https://blog.youkuaiyun.com/qq_37051669/article/details/115324851 本文将继续介绍如何利用CoppeliaSim的物理环境去实现一个最简单的强化学习。 如何实现强化学习 强化学习(Reinforcementlearning)是机器学习中的一个领域,强调如何基于环境而行动,以取得最大化的预期利.

qq_37051669的博客 3765

在 Ubuntu 上安装和配置 PostgreSQL 实录

本文介绍了在Ubuntu系统上安装和配置PostgreSQL数据库的完整步骤。主要内容包括:1)通过官方源或PPA源安装最新版本;2)修改配置文件(postgresql.conf和pg_hba.conf)以允许远程访问;3)设置postgres用户密码;4)创建新用户并配置权限;5)防火墙设置和重启服务;6)验证安装和远程连接方法。文章提供了详细的命令行操作指导,帮助用户完成从安装到远程访问的全部配置过程。

qq_58168857的博客 1207

JS格式化代码和高亮显示

前端开发中经常遇到了一个需要,即在页面上显示一些代码。这时候就需要考虑在前端对某些代码进行格式化处理,比如压缩过的JS。格式化之后,为了显示效果,需要进行代码高亮。 为解决这两个问题,引入两个常用库。

qijiqiguai的专栏 2767

maya权重拷贝一对一,一对多

是不是有时候盔甲很多很碎头很大,用代理一个个拷贝很麻烦吧 用下面代码直接运行进行一对多或者一对一拷贝 第一个先选择参考物体,加选其他一堆有的没的有权重或没权重的物体执行一键拷贝,就可以啦 以下是源码送上,带走吧 ------------------------ #! -*- coding:utf -8 -*- #author:liubingdong #date:20...

weixin_30852367的博客 1532

在HTML页面中显示html代码

在HTML页面中显示html代码

潘威威的博客 1万+

MATLAB基础应用精讲-【深度强化学习】SAC(Soft Actor-Critic)算法(附MATLAB和python代码实现)

Actor 网络:用于选择动作。Critic 1 和 Critic 2 网络:用于估计 Q 值。Target Critic 1 和 Target Critic 2:与 Critic 网络架构相同,用于生成更稳定的目标 Q 值。,即在保证探索的情况下选择高价值动作。软更新目标 Q 网络参数,使得目标网络参数缓慢向当前网络靠近,避免振荡。

qq_36130719的博客 454

【AI for Medecine】吴恩达医学图像AI专项课程(诊断、预测、治疗)

近期需要简单了解AI4Science上的一些应用,看到吴恩达大佬的专项课程,于是开始来个“全面”的了解--医学人工智能(诊断、预测、治疗)。

图挖掘领域,新晋砖家 ☞ 未来可期,欢迎和静静一起学习交流吖 773

html中格式化显示json

JSON.stringify可以将JSON格式化,用法如下 JSON.stringify(json, null, 4); //res是要JSON化的对象,2是spacing  如果需要对key和value加上颜色,还需要以下代码 function syntaxHighlight(json) { if (typeof json != 'string') { jso...

umgsai的专栏 2808

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Layui格式化并高亮显示XML

1.js部分 // 格式化xml 高亮显示 //返回已经处理的xml字符,配合CSS产生高亮 function formatXml (content) { debugger; let xml_doc = null; const formatContent = content.replace(/[\n\r]/g, ""); try { xml_do...

qq_39996389的博客 1666

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

html图片高亮显示,css代码高亮显示的js实现代码(图文)

完整代码如下:复制代码 代码示例:Js实现CSS代码高亮显示_www.jquerycn.cnbody{font-size:12px;line-height:1.8;font-family:'Courier New', Courier, monospace;}#area{width:320px;height:120px;}body{font-size:12px;line-height:1.8;}#a...

weixin_33046149的博客 1022

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Jquery+Css+Html实现返选、批量删除、高亮显示功能

Jquery+Css+Html实现返选、批量删除、高亮显示功能 文章目录Jquery+Css+Html实现返选、批量删除、高亮显示功能前言一、什么是Jquery?二、什么是Css?三、什么是Html?四、Jquery前端代码实现1.创建一个文本然后打开2.效果实现总结 前言 返选应用场景:页面需选中多条记录提交后台(最最贴合身边实际的使用就是我们扫健康宝需要勾选 是、否 去过中高等风险地区,但如果都没去也不能一个一个去点否,这时会有一个功能就是“全部为否”的按钮,就是使用以上的基础代码实现的)。 批量

zhx__的博客 1449

pre 显示html代码插件,pre标签内JavaScript代码的高亮显示插件

插件经过IE6-10、Chrome、Firefox等浏览器的测试。目前支持关键字、字符串、注释、正则表达式的高亮显示,现在逻辑可能比较简单,后期会继续完善。使用示例:Html代码Page Title//this is commentvar me = "tjuking";var reg = /[0-9]*/g;需要在head标签内引入CSS文件,在body标签结束前引入JS文件,需要加亮的pre标签...

weixin_42275078的博客 805

vscode使用Ctrl+s保存代码自动格式化html/css/js

1、使用时首先安装一下插件: 1、ESlint //代码分格检查, 2、vetur // 语法高亮,Vetur支持.vue文件的语法高亮显示,除了支持template模板以外,还支持大多数主流的前端开发脚本和插件 3、Prettier - Code formatter 4、Manta's Stylus Supremacy // 格式化 css 2、修改配置: 3、设置配置内容: {...

mm 1万+

html页面展示json数据并格式化的方法

json数据在html页面展示并格式化 一、展现效果图 描述信息: key值全部采用红色标出,表示重要参数; value值采用不同颜色标出,数值类型的采用橘黄色,字符串采用绿色,布尔采用蓝色。。。 二、源代码展示 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <style> pre ...

2601

HTML5+CSS3

HTML 1. 浏览器内核 五大浏览器四大内核 浏览器:IE(edge), 火狐, Safari, chrome, Opera 内核: Trident, Gecko, webkit, chromium/Blink, blink 注1: 提到Chrome浏览器,一般人会认为使用的Webkit内核(移动设备多),这种说法不完全确。Chrome发布于2008年,使用的渲染内核是Chromium...

qq_38620301的博客 2万+

javascript_代码格式化

这个JAVASCRIPT的格式化的JS不错,收藏下来使用,顺便可以学习下。

小白的专栏 876

html 代码块显示 插件,代码区高亮显示插件-SNIPPET

插件描述:Snippet 是一款Jquery高亮插件,他提供了一个快速和简便的在html中高亮显示源代码的方式。Snippet 是一款Jquery高亮插件,他提供了一个快速和简便的在html中高亮显示源代码的方式。高亮语言支持原始支持15种流行语言C、C++、C#、CSS、Flex、HTML、Java、JavaScript、JavaScript with DOM、Perl、PHP、Python、R...

weixin_42300798的博客 2649
上一篇: vue框架如何将SPA项目改为SSR项目
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值