Nor*_*sey 10 algorithm diff markdown
我想将diff(在Markdown文件上)的输出转换为Markdown with <strike>和<em>tags,这样我就可以看到从文档的新版本中删除或添加的内容.(这种处理对于法律文件来说非常普遍.)
希望输出的示例:
为什么
我们学习编程语言?不不,为了...
困难之一是diff的输出是面向行的,我希望看到单个词的差异.有没有人建议使用什么算法,或建立什么软件?
Ada*_*eld 18
使用wdiff.它已经完成了你正在寻找的逐字比较; 将其输出转换为markdown只需要几个简单的正则表达式.
例如:
$ cat foo
Why do we study programming languages? Not in order to
$ cat bar
We study programming languages not in order to
$ wdiff foo bar
[-Why do we-]{+We+} study programming [-languages? Not-] {+languages not+} in order to
$ wdiff foo bar | sed 's|\[-|<em>|g;s|-]|</em>|g;s|{+|<strike>|g;s|+}|</strike>|g'
<em>Why do we</em><strike>We</strike> study programming <em>languages? Not</em> <strike>languages not</strike> in order to
Run Code Online (Sandbox Code Playgroud)
编辑:实际上,wdiff有一些选项可以让它更容易:
$ wdiff -w '<em>' -x '</em>' -y '<strike>' -z '</strike>' foo bar
<em>Why do we</em><strike>We</strike> study programming <em>languages? Not</em> <strike>languages not</strike> in order to
Run Code Online (Sandbox Code Playgroud)
使用Markdown-Diff将单词diff注释到原始文档.它在Markdown中格式化wdiff或git --word-diff输出,因此您可以使用自己喜欢的Markdown预览器或编译器来查看更改.(Markdown-Diff由我自己编写,灵感来自Adam Rosenfield的回答.)
| 归档时间: |
|
| 查看次数: |
1920 次 |
| 最近记录: |