【开源】word中插入代码之Prism+PHP实现高亮代码带格式一键复制到word

news/2024/10/14 16:20:11

项目说明

你是否还在为word中插入代码格式难看,难以复制或复制出现莫名其妙格式问题而困扰?这个工具就是一键高亮代码,一键原样复制到word,保证代码在word中一样的好看,一样的容易复制而不会出乱子,怎么样,还不赶紧收藏下载试一试?

【项目地址】:https://github.com/mudfish/code-highlight

效果演示

在这里插入图片描述

核心代码

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Code Highlight with Bootstrap & jQuery</title><link href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/4.5.2/css/bootstrap.min.css" rel="stylesheet"><link href="css/prism.min.css" rel="stylesheet"><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.26.0/plugins/line-numbers/prism-line-numbers.min.css"><script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script><script src="js/prism.min.js"></script><script src="js/components/prism-java.min.js"></script><script src="js/components/prism-python.min.js"></script><script src="js/components/prism-javascript.min.js"></script><script src="js/components/prism-sql.min.js"></script><script src="js/components/prism-bash.min.js"></script><script src="js/components/prism-c.min.js"></script><script src="js/components/prism-yaml.min.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.26.0/plugins/line-numbers/prism-line-numbers.min.js"></script><style type="text/css">#highlightedCode{min-height: 480px;max-height: 500px;}</style>
</head>
<body><nav class="navbar navbar-light bg-light "><div class="container-fluid text-center"><span class="navbar-brand mb-0 h1 text-center">Code-Highlight</span></div></nav><div class="container-fluid mt-3"><div class="row"><div class="col-md-6"><form id="codeForm"><div class="row"><div class="col-9"><textarea id="codeInput" name="code" class="form-control" rows="20" required placeholder="请输入代码..."></textarea></div><div class="col-3"><label for="languageSelect">选择语言:</label><select id="languageSelect" name="language" class="form-control" required><option value="java">Java</option><option value="python">Python</option><option value="php">PHP</option><option value="markup">Html</option><option value="javascript">Javascript</option><option value="sql">SQL</option><option value="bash">Bash</option><option value="c">C++</option><option value="csharp">C#</option><option value="markup">XML</option><option value="yaml">YAML</option></select><div class="form-check"><input class="form-check-input" type="checkbox" name="showLineNumbers" id="showLineNumbers" value="true"><label class="form-check-label" for="showLineNumbers">显示行号</label></div><div class="text-center mt-2"><button type="submit" class="btn btn-primary ">预览</button><button type="button" id="copyButton" class="btn btn-success ml-2" onclick="selectElementContents( document.getElementById('highlightedCode'));">复制</button></div></div> </div></form></div><div class="col-md-6 border"><div id="highlightedCode" class="mt-3 "></div></div></div>
</div><script>$(document).ready(function() {$('#copyButton').hide();$('#codeForm').on('submit', function(e) {e.preventDefault();var formData = $(this).serialize();$.ajax({url: 'process_code.php',type: 'POST',data: formData,success: function(data) {$('#highlightedCode').html(data);Prism.highlightAll();$('#copyButton').show(); // 显示复制按钮},error: function(xhr, status, error) {console.error("Error: " + status + " " + error);}});});});//js实现复制到剪贴板,带格式复制function selectElementContents(el) {var body = document.body, range, sel;if (document.createRange && window.getSelection) {range = document.createRange();sel = window.getSelection();sel.removeAllRanges();range.selectNodeContents(el);sel.addRange(range);//range.selectNode(el);//sel.addRange(range);document.execCommand("copy");//取消文本选中状态window.getSelection().empty();}}</script></body>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/26697.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

Unity中的自动更新目录结构设置

最近新更换使用新版的rider,替换之后原本以为在rider 中编写更改代码文件并保存之后会自动编译,结果回到unity中运行的脚本还是 更改前的,在确定rider自动保存编译的设置之后,我百思不得其解。一直在找rider的各种设置,知道我回到unity刷新一下目录结构, 噢~恍然大悟,是…

Godot.NET C#IOC重构(8):敌人野猪

目录前言场景继承在SceneModel里面添加基础的节点获取EnemyScene.csEnemySceneModel.csGodot Export属性和EnumExport默认值问题修改前EnemySceneModel.csEnemyScene.cs修改后EnemyScene.csEnemySceneModel.cs但是有个问题,有必要这么写吗?导入野猪图片图片拼接RayCast2D 射线…

类模板的简单应用(用于存储不同类型数据的类容器)

类模板应用 explicit explicit 是一个关键字,用于指定该构造函数是显式构造函数。在C++中,当一个类的构造函数只有一个参数时,它可以被用于隐式类型转换,这可能会导致意想不到的行为和潜在的错误。为了避免这种情况,可以使用 explicit 关键字来声明该构造函数,表示禁止隐…

Unity 热更--AssetBundle学习笔记 0.7

AssetBundle AB包是什么? AssetBundle又称AB包,是Unity提供的一种用于存储资源的资源压缩包。 Unity中的AssetBundle系统是对资源管理的一种扩展,通过将资源分布在不同的AB包中可以最大程度地减少运行时的内存压力,可以动态地加载和卸载AB包,继而有选择地加载内容。 AB包的…

2024年4月文章一览

2024年4月编程人总共更新了5篇文章: 1.2024年3月文章一览 2.《自动机理论、语言和计算导论》阅读笔记:p139-p171 3.《自动机理论、语言和计算导论》阅读笔记:p172-p224 4.《自动机理论、语言和计算导论》阅读笔记:p225-p260 5.《自动机理论、语言和计算导论》阅读笔记:p26…

开源文档预览项目 kkFileView (9.9k star) ,快速入门

kkFileView 是一款文件文档在线预览解决方案,采用流行的 Spring Boot 框架构建,易于上手和部署。 该项目基本支持主流办公文档的在线预览,包括但不限于 doc、docx、xls、xlsx、ppt、pptx、pdf、txt、zip、rar,以及图片、视频、音频等格式。1 Docker 部署拉取镜像:# 网络环…

模拟集成电路设计系列博客——6.2.4 电流模式转换器

6.2.4 电流模式转换器 电流模式D/A转换器与电阻型转换器非常类似,但是可以用于更高速的应用。其基本的思想是将电流切换到输出或到地,如下图所示:因此输出电流通过\(R_F\)转换成电压,而每个电流源的上节点总是保持在地电压。电流型D/A转换器将在后续的温度计码D/A转换器章节…

模拟集成电路设计系列博客——6.2.3 电荷重分布开关电容转换器

6.2.3 电荷重分布开关电容转换器 电荷重分布开关电容转换器的基本思想是将开关电容增益放大器的输入电容替换为一个可编程电容阵列(PCA,Programmable Capacitor Array),如下图所示:如我们之前在开关电容增益放大器时讨论的一样,上图中的电路对于放大器输入失调电压,\(1/…