首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >谁有一个不同的算法来渲染HTML?

谁有一个不同的算法来渲染HTML?
EN

Stack Overflow用户
提问于 2008-08-28 06:33:38
回答 9查看 35.1K关注 0票数 88

我感兴趣的是看到一个很好的diff算法,可能是在Javascript中,用于呈现两个HTML页面的并排比较。我们的想法是,diff将显示所呈现的HTML的差异。

为了清楚起见,我希望能够看到渲染输出的并排差异。因此,如果我删除一个段落,并排视图将知道如何正确地间隔。

@Josh就是这样。尽管它可能会将删除的文本显示为红色或其他什么。这个想法是,如果我使用WYSIWYG编辑器编辑我的HTML内容,我不想切换到HTML来做差异。我想用两个WYSIWYG编辑器并排来做。或者至少在终端用户友好的问题上并排显示不同之处。

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2008-08-28 22:00:34

您还可以使用另一个很好的技巧来显著改善呈现的HTML diff的外观。虽然这不能完全解决最初的问题,但它将使呈现的HTML差异的外观有很大的不同。

并排呈现的HTML将使您的diff很难垂直排列。垂直对齐对于比较并排差异至关重要。为了改进并排diff的垂直对齐,您可以在每个版本的diff中的“检查点”插入不可见的HTML元素,其中diff应该垂直对齐。然后,您可以使用一些客户端JavaScript在检查点周围添加垂直间距,直到两端垂直排列。

更详细地解释:

如果你想使用这种技术,运行你的diff算法,然后在你的并行版本应该匹配的地方插入一堆visibility:hidden <span>或微型<div>,根据diff。然后运行JavaScript,它会找到每个检查点(及其相邻的检查点),并向页面上位置较高(较浅)的检查点添加垂直间距。现在,呈现的HTML diff将垂直对齐到该检查点,您可以继续在并排页面的其余部分修复垂直对齐。

票数 17
EN

Stack Overflow用户

发布于 2008-09-15 20:20:16

一段时间后,我最终需要类似的东西。要让HTML左右对齐,你可以使用两个iFrames,但你必须在滚动时通过javascript将它们的滚动绑定在一起(如果你允许滚动的话)。

然而,要想看到不同之处,您很可能希望使用其他人的库。我在一个类似的项目中使用了DaisyDiff,一个Java库,在这个项目中,我的客户很高兴看到使用MS Word“跟踪更改”-like标记呈现内容的单个HTML语言。

HTH

票数 4
EN

Stack Overflow用户

发布于 2009-01-12 22:38:43

考虑使用链接或lynx的输出来呈现html的纯文本版本,然后进行比较。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31722

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档