热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

代码格式化,高亮显示,这在我们开发过程中都是司空见惯的功能,各种编辑器都有,在好多网站上也可以在线格式化代码,

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

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

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

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

好了,下面步入正题吧。


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

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

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

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

在这里插入图片描述

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


推荐阅读
  • Ihavethefollowingonhtml我在html上有以下内容<html><head><scriptsrc..3003_Tes ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • FineReport平台数据分析图表显示部分系列接口的应用场景和实现思路
    本文介绍了FineReport平台数据分析图表显示部分系列接口的应用场景和实现思路。当图表系列较多时,用户希望可以自己设置哪些系列显示,哪些系列不显示。通过调用FR.Chart.WebUtils.getChart("chartID").getChartWithIndex(chartIndex).setSeriesVisible()接口,可以获取需要显示的系列图表对象,并在表单中显示这些系列。本文以决策报表为例,详细介绍了实现方法,并给出了示例。 ... [详细]
  • IjustinheritedsomewebpageswhichusesMooTools.IneverusedMooTools.NowIneedtoaddsomef ... [详细]
  • 本文介绍了绕过WAF的XSS检测机制的方法,包括确定payload结构、测试和混淆。同时提出了一种构建XSS payload的方法,该payload与安全机制使用的正则表达式不匹配。通过清理用户输入、转义输出、使用文档对象模型(DOM)接收器和源、实施适当的跨域资源共享(CORS)策略和其他安全策略,可以有效阻止XSS漏洞。但是,WAF或自定义过滤器仍然被广泛使用来增加安全性。本文的方法可以绕过这种安全机制,构建与正则表达式不匹配的XSS payload。 ... [详细]
  • 网址:https:vue.docschina.orgv2guideforms.html表单input绑定基础用法可以通过使用v-model指令,在 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
author-avatar
呵呵哒
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有