当前位置: 首页 > news >正文

温州苍南网站建设上海十大猎头公司排名

温州苍南网站建设,上海十大猎头公司排名,微信网站什么做,在线购物网站建设页面效果:jsdiff 是一个 JavaScript 库,用于实现文本差异比较。这个库提供了多种方法来计算和展示两个文本之间的差异,可以用于多种文本差异比较的场景 - 标准 Diff 格式数据 轻量级、算法精度较强、需自行实现可视化的渲染、大文件受限creat…

页面效果:
在这里插入图片描述

jsdiff 是一个 JavaScript 库,用于实现文本差异比较。这个库提供了多种方法来计算和展示两个文本之间的差异,可以用于多种文本差异比较的场景 - 标准 Diff 格式数据
轻量级、算法精度较强、需自行实现可视化的渲染、大文件受限

createTwoFilesPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options)
createPatch(fileName, oldStr, newStr, oldHeader, newHeader, options)oldFileName: 旧文件的文件名。
newFileName: 新文件的文件名。
oldStr: 原始字符串值
newStr: 新的字符串值
oldHeader: 可选,允许在旧文件的头部添加额外的信息。
newHeader: 可选,用于在新文件的头部添加额外的信息。
options: 一个包含选项的对象,可以用来自定义补丁的生成方式:context: 描述应该包含多少行上下文。设置为 Number.MAX_SAFE_INTEGERInfinity 可以包含整个文件内容在一个块(hunk)中。ignoreWhitespace: 与 diffLines 中的用法相同,用于忽略空白字符差异。默认为 false。stripTrailingCr: 与 diffLines 中的用法相同,用于在执行差异比较之前去除所有尾随的回车符( )。这有助于在比较 UNIX 和 Windows 文本文件时得到有用的差异结果。默认为 false

diff2html 是一个用于将差异(diff)结果转换成 HTML 格式的工具,它通常用于在网页上展示文件或文本内容之间的差异。这个库提供了一种方便的方式来生成美观的差异比较视图,使得用户可以轻松地查看和理解两个版本之间的变化。

相关 js和css引入
引入文件依赖源码:可以找一个vue项目npm下载,然后在node_modules文件夹中找到对应文件夹 复制对应js以及css文件引入

npm install diff --save
npm install diff2html --save

<link rel="stylesheet" type="text/css" href="./css/diff2html.min.css"/>
<script src="./js/diff2html-ui.min.js"></script>
<script src="./js/diff2html.min.js"></script>
<script src="./js/diff.min.js"></script>

diff2html使用

// 比对文本函数
function compareText() {// 生成标准diff格式const gitDiffContent = Diff.createPatch('SQL脚本', //文件名称leftContent, //对比左侧内容rightContent, //对比右侧内容'','',{context: Infinity //保留无差异内容});// 使用Diff2Html 传入生成的标准diff格式数据 生成可视化的htmlconst diffHTML = Diff2Html.html(gitDiffContent, {inputFormat: 'diff',outputFormat: 'side-by-side', //左右分列的形式matching: 'none',drawFileList: false,highlight: true,showFiles: true,renderNothingWhenEmpty: false});$('#diff-container').html(diffHTML); //内容区域id: diff-container//回显当前锁定左右侧区域var index = currentSide == 'left' ? 0 : 1$(".d2h-file-side-diff").eq(index).addClass('side_active')// 同步滚动syncScroll();
}
// 同步滚动函数
function syncScroll() {const leftContent = $('.d2h-file-side-diff')[0];const rightContent = $('.d2h-file-side-diff')[1];leftContent.addEventListener('scroll', function() {rightContent.scrollTop = leftContent.scrollTop;rightContent.scrollLeft = leftContent.scrollLeft;});rightContent.addEventListener('scroll', function() {leftContent.scrollTop = rightContent.scrollTop;leftContent.scrollLeft = rightContent.scrollLeft;});
}

注意事项:

  1. 若外层有flex样式会有冲突,显示异常,添加以下样式即可
.d2h-files-diff {height: calc(100% - 35px);
}
.d2h-file-side-diff {overflow-y: scroll;
}
/* 强制行号容器同步滚动 */
.d2h-code-side-linenumber {position: relative !important; /* 覆盖sticky定位 */float: left;width: 40px; /* 固定行号列宽度 */
}
/* 主滚动容器修正 */
.d2h-file-side-diff {overflow-x: auto !important;-webkit-overflow-scrolling: touch; /* iOS滚动优化 */
}
/* 隐藏原生滚动条 */
.d2h-code-side-line::-webkit-scrollbar {display: none;
}
  1. 无任何差异文件数据展示

使用 jsdiff 生成的diff数据结果渲染出来会有一个问题,当传入的两个字符串没有任何差异的时候,不显示文件内容,仅显示一行“without any changes”,如果修改要显示全部的文件数据,可以修改diff.js 中的源码

function createTwoFilesPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {if (typeof options === 'function') {options = { callback: options };}if (!(options === null || options === void 0 ? void 0 : options.callback)) {const patchObj = structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options);if (!patchObj) {return;}//判断是否有差异的逻辑if(patchObj.hunks.length > 0) {return formatPatch(patchObj);} else {return createFullPatch(oldFileName, newFileName, oldStr)}}else {const { callback } = options;structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, Object.assign(Object.assign({}, options), { callback: patchObj => {if (!patchObj) {callback(undefined);}else {console.log(patchObj);callback(formatPatch(patchObj));}} }));}
}//无任何差异调用的方法
function createFullPatch(oldFile, newFile, content) {const lines = content.split('\n').length;return `--- ${oldFile}\n+++ ${newFile}\n@@ -1,${lines} +1,${lines} @@\n` +content.split('\n').map(line => ` ${line}`).join('\n');
}
http://www.dtcms.com/a/598629.html

相关文章:

  • 在家做的手工活哪里有网站郑州短视频拍摄制作
  • 做网站好做网站公司职员工资
  • 线程不是独立的!而是同步的!
  • 招商加盟网站推广方案济南做网站要多少钱
  • 做网站apache如何网站建设找超速云建站
  • 网站关联页面如何做大连网龙网络科技
  • 网站推广策划的思路包括哪些内容中国黄页
  • LeetCode hot100:234 回文链表:快慢指针巧判回文链表
  • 合肥网站建设方案服务营销网站搭建建议
  • 【python】生成器
  • 昆明展示型网站开发网站添加百度地图导航
  • 网站地图什么时候提交好广州网站建设推广方法
  • python的网站开发免费软件库下载
  • 阿里云服务器创建网站吗动漫制作专业用什么笔记本电脑
  • 若依 springBoot 配置国际化
  • 十年经验网站开发公司安阳市商祺网络有限责任公司
  • 网络初识~
  • 织梦怎么做中英文网站做网站只做前端可以用吗
  • C 语言17:位操作符 | ^:从二进制编码到大小端
  • 计算机网站php设计代做平台公司和项目公司的区别
  • flowable04网关和变量
  • 设计旅游网站的主色调sem工具是什么
  • 如何降低交互复杂度,减少用户学习成本
  • 交易类网站做支付宝功能淘宝网站代理怎么做
  • 中国建设银行网站如何注册logo设计公司 南京
  • 麒麟桌面操作系统切换到root用户方法
  • 找企业名录的网站网站的横幅怎么做
  • 工具学习_Vulrule
  • 上海外贸soho网站建设静态网站登陆怎么做
  • 哈希表中桶的概念