有人知道这是什么js库做出来的效果吗?

2013-09-24 15:00:48 +08:00
 hustlzp


截的知乎的图。

最新版的wordpress也支持这种前后版本对比的diff浏览图。

有人知道这是用什么js库做出来的效果吗?
3237 次点击
所在节点    程序员
12 条回复
manhere
2013-09-24 15:04:41 +08:00
php的倒是见过,js没见过
est
2013-09-24 15:05:06 +08:00
这个都需要js?直接输出<strike style="color: green">不就行了么?
hustlzp
2013-09-24 15:09:40 +08:00
@est 不是这个意思,就是比对前后2个版本的文本。
hustlzp
2013-09-24 15:10:33 +08:00
@est 相当于一个diff引擎+HTML输出
est
2013-09-24 15:15:18 +08:00
turing
2013-09-24 15:19:17 +08:00
@hustlzp 应该没那么复杂,不需要一个diff引擎那么复杂。lz可以看看codemirror的文档,cm就支持记录每一步的编辑修改,如果需要比对编辑前版本和编辑结束版本的差别,直接查询cm的记录就可以了,每一个编辑修改了什么,删除了什么,它都会记录下来。
hustlzp
2013-09-24 15:42:35 +08:00
@est
@turing 感谢二位,去研究下~
hustlzp
2013-09-24 15:55:03 +08:00
@est

再次感谢!
在github上也找到了一个js库 https://github.com/kpdecker/jsdiff
可以在 char/word/line 3个层次上进行diff
ijse
2013-09-24 17:53:40 +08:00
@hustlzp 请问, node.js有什么开源的diff引擎推荐吗?
emohacker
2013-09-24 19:16:57 +08:00
@est strike标签已经不再使用,html5规范用 del 标签替代 http://www.w3school.com.cn/html5/tag_strike.asp
hustlzp
2013-09-24 21:24:03 +08:00
@ijse 上面说的jsdiff( https://github.com/kpdecker/jsdiff )就可以在node下用。

npm install diff
ijse
2013-09-24 23:20:45 +08:00
@hustlzp 谢谢,,不过有对比两个对象的吗?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/83492

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX