Customize diff to html rendering
This commit is contained in:
parent
e48eacf506
commit
502b472c07
1 changed files with 24 additions and 2 deletions
|
@ -11,6 +11,28 @@ import hashlib
|
||||||
from diff_match_patch import diff_match_patch
|
from diff_match_patch import diff_match_patch
|
||||||
|
|
||||||
|
|
||||||
|
class DiffThing(diff_match_patch):
|
||||||
|
def diff_html(self, diffs):
|
||||||
|
"""Like diff_prettyHtml, but without inline style attributes
|
||||||
|
(makes it easier to style it with stylesheets).
|
||||||
|
"""
|
||||||
|
html = []
|
||||||
|
for op, data in diffs:
|
||||||
|
text = (
|
||||||
|
data.replace("&", "&")
|
||||||
|
.replace("<", "<")
|
||||||
|
.replace(">", ">")
|
||||||
|
.replace("\n", "¶<br>")
|
||||||
|
)
|
||||||
|
if op == self.DIFF_INSERT:
|
||||||
|
html.append("<ins>%s</ins>" % text)
|
||||||
|
elif op == self.DIFF_DELETE:
|
||||||
|
html.append('<del">%s</del>' % text)
|
||||||
|
elif op == self.DIFF_EQUAL:
|
||||||
|
html.append("<span>%s</span>" % text)
|
||||||
|
return "".join(html)
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Idea block:
|
# Idea block:
|
||||||
#
|
#
|
||||||
|
@ -25,7 +47,7 @@ REDIS_ARTICLE_EXPIRE_SEC = 604800
|
||||||
config = confuse.Configuration("headline", __name__)
|
config = confuse.Configuration("headline", __name__)
|
||||||
config.set_file(CONFIG_FILE)
|
config.set_file(CONFIG_FILE)
|
||||||
|
|
||||||
dmp = diff_match_patch()
|
dmp = DiffThing()
|
||||||
|
|
||||||
rc = redis.Redis(host="redis", port=6379, db=0)
|
rc = redis.Redis(host="redis", port=6379, db=0)
|
||||||
|
|
||||||
|
@ -88,7 +110,7 @@ def write_article(article, rc):
|
||||||
def process_diff(old, new, rss_id):
|
def process_diff(old, new, rss_id):
|
||||||
diff = dmp.diff_main(old["title"], new["title"])
|
diff = dmp.diff_main(old["title"], new["title"])
|
||||||
dmp.diff_cleanupSemantic(diff)
|
dmp.diff_cleanupSemantic(diff)
|
||||||
html_diff = dmp.diff_prettyHtml(diff)
|
html_diff = dmp.diff_html(diff)
|
||||||
# print(old['link'])
|
# print(old['link'])
|
||||||
# print(diff)
|
# print(diff)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue