社区文档构建进行中,欢迎编辑。社区答疑群(非官方):717421103

全站通知:

优化版本差异-DiffTools

阅读

    

2024-03-11更新

    

最新编辑:Lu_23333

阅读:

  

更新日期:2024-03-11

  

最新编辑:Lu_23333

来自WIKI实验室WIKI_BWIKI_哔哩哔哩
跳到导航 跳到搜索
页面贡献者 :
Lu_23333

简单说明

版本:0.0.2

说明:优化版本差异:逐字显示更改,而不是整段标红。


原生对比不支持中文: 优化版本差异-之前.png


DiffTool的效果: 优化版本差异-之后.png

左侧标明移除、右侧标明增加。

使用说明

依赖:MediaWiki:DiffTool.js

需要在common.js页面引用进行全局加载,加载方法如下:

/*加载DiffTool 爱来自 Lu(39886146) */
try { mw.loader.load("/tools/MediaWiki:DiffTool.js?action=raw&ctype=text/javascript", "text/javascript");} catch(e) {}

要临时使用,可以按F12打开浏览器开发者工具的控制台,输入:

try { mw.loader.load("/tools/MediaWiki:DiffTool.js?action=raw&ctype=text/javascript&rand="+Math.random(), "text/javascript");} catch(e) {}

这里的JS加载时增加了随机数rand,可以绕开缓存。这种增加随机数绕缓存的方法会增加Wiki服务器负载,应仅用于测试。

实现细节

依赖diff.js

逐行遍历class为diff的table。

仅当行内有3、4列时,表格内有diff文本。3列分两种情况,删除一行/增加一行。可以从第1/3列是否带colspan=2区分。

确定修改先后的文本位置后,使用diff.js计算diff,循环增加span。

代码依赖GPT 和 diff.js Demo写成……欢迎优化(注意,tools中的:DiffTool.js已被实装,需另开测试)。

作者

Lu_23333


更新日志

2023-05-12: V0.0.1 预览版;

2023-05-13: V0.0.2 预览版:修复了一些bug,优化了颜色显示,仅在目标页面加载依赖项;

2024-03-11: V0.0.3 预览版:修复了一些bug,现在过长的单行文本可以正常换行了;