如何使用Django比较两个要用Markdown渲染的模型?

Pom*_*eyo 4 python django version-control markdown difflib

在两个帖子的版本(原始版本和编辑版本)之间的帖子中检查更改(编辑/添加/删除的文本)的最佳方法是什么?

我正在使用Markdown所以我不确定是否使用difflib.HtmlDiff是一个好主意.我的目标是用绿色背景标记添加的文本,用红色背景标记删除的文本,类似于github所做的.

Kyl*_*ley 5

尝试使用ghdiffGitHub样式HTML来统一差异.这是关于PyPI的,但目前GitHub上更好的文档.你需要pip install ghdiff.

简单的用法,假设降价在markdown1markdown2.

import ghdiff
diff_as_html = ghdiff.diff(markdown1,markdown2)
Run Code Online (Sandbox Code Playgroud)

这是一个更明确的演示.假设您有这两个降价字符串:

md1 = '''
# Hello world

I am text

* No really

'''

md2 = '''
# Hi world

I am text

* No really

'''
Run Code Online (Sandbox Code Playgroud)

我们可以对这些进行差异化

import ghdiff
diff_as_html = ghdiff.diff(md1,md2)
Run Code Online (Sandbox Code Playgroud)

渲染时,它看起来像这样:

ghdiff

这是IPython笔记本中的原始和渲染:

原始并在IPython笔记本中呈现

  • 谢谢,适用于[我的解决方案](https://github.com/ctrl-alt-d/fpuf/blob/master/fpuf/apps/material/business_rules/material.py#L151)样本:http:// uf.ctrl-alt-d.net/material/revisions/16/ (2认同)