Added difference viewer for XML files.

Review Request #10713 — Created Sept. 11, 2019 and updated

Information

Review Board
master

Reviewers

There is now a syntax highlighted rendered view for XML files, where each node
in the XML document will be consistently indented so that it is easy to see
the actual contents of the document, even if the document is minified or
improperly formatted.

Unicode characters will be properly displayed in the render view as well.

There is also support for comparing different XML files with either the
render view or normal text view.

1) Ran unit tests on Python 2.7 and 3.6.
2) Tested manually on Python 2.7 and 3.6 outside of the diff viewer.
3) Tested manually on Python 2.7 and 3.6 inside of the diff viewer.
4) Tested manually on Python 2.7 and 3.6 with a document with UTF-8 encoding
and characters.
5) Tested manually on Python 2.7 and 3.6 with an invalid XML document that
leads to an error while parsing.

Summary ID Author
Added difference viewer for XML files.
6ecd8fc45dcbe2cfb94b5f3bac5a24cd7c2ad138 amalik2

Description From Last Updated

Is this a real CDATA section, e.g. <![CDATA[[< WORKS !!! >]]> If so, it really should render like it is …

brenniebrennie

F401 'lxml.etree' imported but unused

reviewbotreviewbot

F401 'django.utils.encoding.force_text' imported but unused

reviewbotreviewbot

E127 continuation line over-indented for visual indent

reviewbotreviewbot

E127 continuation line over-indented for visual indent

reviewbotreviewbot

E127 continuation line over-indented for visual indent

reviewbotreviewbot

E127 continuation line over-indented for visual indent

reviewbotreviewbot

E127 continuation line over-indented for visual indent

reviewbotreviewbot

E127 continuation line over-indented for visual indent

reviewbotreviewbot

E127 continuation line over-indented for visual indent

reviewbotreviewbot

E127 continuation line over-indented for visual indent

reviewbotreviewbot

E127 continuation line over-indented for visual indent

reviewbotreviewbot

E127 continuation line over-indented for visual indent

reviewbotreviewbot

E127 continuation line over-indented for visual indent

reviewbotreviewbot

E302 expected 2 blank lines, found 1

reviewbotreviewbot

E302 expected 2 blank lines, found 1

reviewbotreviewbot

E251 unexpected spaces around keyword / parameter equals

reviewbotreviewbot

E251 unexpected spaces around keyword / parameter equals

reviewbotreviewbot

E251 unexpected spaces around keyword / parameter equals

reviewbotreviewbot

E501 line too long (84 > 79 characters)

reviewbotreviewbot

E251 unexpected spaces around keyword / parameter equals

reviewbotreviewbot

W293 blank line contains whitespace

reviewbotreviewbot

W293 blank line contains whitespace

reviewbotreviewbot

W293 blank line contains whitespace

reviewbotreviewbot

W293 blank line contains whitespace

reviewbotreviewbot

W293 blank line contains whitespace

reviewbotreviewbot

W293 blank line contains whitespace

reviewbotreviewbot

W293 blank line contains whitespace

reviewbotreviewbot

W293 blank line contains whitespace

reviewbotreviewbot

W293 blank line contains whitespace

reviewbotreviewbot

W293 blank line contains whitespace

reviewbotreviewbot

E271 multiple spaces after keyword

reviewbotreviewbot

E128 continuation line under-indented for visual indent

reviewbotreviewbot

E128 continuation line under-indented for visual indent

reviewbotreviewbot

E128 continuation line under-indented for visual indent

reviewbotreviewbot

E128 continuation line under-indented for visual indent

reviewbotreviewbot

E128 continuation line under-indented for visual indent

reviewbotreviewbot

E128 continuation line under-indented for visual indent

reviewbotreviewbot

E128 continuation line under-indented for visual indent

reviewbotreviewbot

E231 missing whitespace after ','

reviewbotreviewbot

F811 redefinition of unused 'test_get_siblings_after_root_no_siblings' from line 252

reviewbotreviewbot

E231 missing whitespace after ','

reviewbotreviewbot

E128 continuation line under-indented for visual indent

reviewbotreviewbot

E128 continuation line under-indented for visual indent

reviewbotreviewbot

E128 continuation line under-indented for visual indent

reviewbotreviewbot

E128 continuation line under-indented for visual indent

reviewbotreviewbot

E501 line too long (180 > 79 characters)

reviewbotreviewbot

E128 continuation line under-indented for visual indent

reviewbotreviewbot

E501 line too long (180 > 79 characters)

reviewbotreviewbot

F401 'djblets.markdown.iter_markdown_lines' imported but unused

reviewbotreviewbot

E501 line too long (86 > 79 characters)

reviewbotreviewbot

E302 expected 2 blank lines, found 1

reviewbotreviewbot

E302 expected 2 blank lines, found 1

reviewbotreviewbot

E302 expected 2 blank lines, found 1

reviewbotreviewbot

E302 expected 2 blank lines, found 1

reviewbotreviewbot

E302 expected 2 blank lines, found 1

reviewbotreviewbot

W293 blank line contains whitespace

reviewbotreviewbot

E302 expected 2 blank lines, found 1

reviewbotreviewbot

E201 whitespace after '{'

reviewbotreviewbot

E202 whitespace before '}'

reviewbotreviewbot

E128 continuation line under-indented for visual indent

reviewbotreviewbot

E126 continuation line over-indented for hanging indent

reviewbotreviewbot

E126 continuation line over-indented for hanging indent

reviewbotreviewbot

F821 undefined name '_'

reviewbotreviewbot

E302 expected 2 blank lines, found 1

reviewbotreviewbot

E202 whitespace before '}'

reviewbotreviewbot

E202 whitespace before '}'

reviewbotreviewbot

E202 whitespace before '}'

reviewbotreviewbot

E202 whitespace before '}'

reviewbotreviewbot

E302 expected 2 blank lines, found 1

reviewbotreviewbot

E302 expected 2 blank lines, found 1

reviewbotreviewbot

E302 expected 2 blank lines, found 1

reviewbotreviewbot

E302 expected 2 blank lines, found 1

reviewbotreviewbot

E201 whitespace after '('

reviewbotreviewbot

E201 whitespace after '('

reviewbotreviewbot

E128 continuation line under-indented for visual indent

reviewbotreviewbot

E128 continuation line under-indented for visual indent

reviewbotreviewbot

E128 continuation line under-indented for visual indent

reviewbotreviewbot

E128 continuation line under-indented for visual indent

reviewbotreviewbot

E128 continuation line under-indented for visual indent

reviewbotreviewbot

E128 continuation line under-indented for visual indent

reviewbotreviewbot

E128 continuation line under-indented for visual indent

reviewbotreviewbot

E128 continuation line under-indented for visual indent

reviewbotreviewbot

E128 continuation line under-indented for visual indent

reviewbotreviewbot

E128 continuation line under-indented for visual indent

reviewbotreviewbot

E128 continuation line under-indented for visual indent

reviewbotreviewbot

E128 continuation line under-indented for visual indent

reviewbotreviewbot

W293 blank line contains whitespace

reviewbotreviewbot

E501 line too long (80 > 79 characters)

reviewbotreviewbot

E501 line too long (87 > 79 characters)

reviewbotreviewbot

E501 line too long (97 > 79 characters)

reviewbotreviewbot

E122 continuation line missing indentation or outdented

reviewbotreviewbot

E122 continuation line missing indentation or outdented

reviewbotreviewbot

E122 continuation line missing indentation or outdented

reviewbotreviewbot

E128 continuation line under-indented for visual indent

reviewbotreviewbot

E128 continuation line under-indented for visual indent

reviewbotreviewbot

W291 trailing whitespace

reviewbotreviewbot

E128 continuation line under-indented for visual indent

reviewbotreviewbot

E128 continuation line under-indented for visual indent

reviewbotreviewbot

E501 line too long (87 > 79 characters)

reviewbotreviewbot

E501 line too long (97 > 79 characters)

reviewbotreviewbot

E128 continuation line under-indented for visual indent

reviewbotreviewbot

E128 continuation line under-indented for visual indent

reviewbotreviewbot

E128 continuation line under-indented for visual indent

reviewbotreviewbot

E127 continuation line over-indented for visual indent

reviewbotreviewbot

E501 line too long (87 > 79 characters)

reviewbotreviewbot

E501 line too long (97 > 79 characters)

reviewbotreviewbot

E127 continuation line over-indented for visual indent

reviewbotreviewbot

E128 continuation line under-indented for visual indent

reviewbotreviewbot

E501 line too long (87 > 79 characters)

reviewbotreviewbot

E501 line too long (97 > 79 characters)

reviewbotreviewbot

E128 continuation line under-indented for visual indent

reviewbotreviewbot

E501 line too long (87 > 79 characters)

reviewbotreviewbot

E501 line too long (97 > 79 characters)

reviewbotreviewbot

E501 line too long (87 > 79 characters)

reviewbotreviewbot

E501 line too long (97 > 79 characters)

reviewbotreviewbot

F821 undefined name 'contents'

reviewbotreviewbot

F821 undefined name 'contents'

reviewbotreviewbot

E501 line too long (84 > 79 characters)

reviewbotreviewbot

E501 line too long (81 > 79 characters)

reviewbotreviewbot

W293 blank line contains whitespace

reviewbotreviewbot

F811 redefinition of unused 'RemovedInReviewBoard60Warning' from line 42

reviewbotreviewbot
Checks run (1 failed, 1 succeeded)
flake8 failed.
JSHint passed.

flake8

amalik2
Review request changed

Commits:

Summary ID Author
Added difference viewer for XML files.
f42d889be2fe19272010b1c62a974efa95186c77 amalik2
Added difference viewer for XML files.
4b00ace6633843b71d42d9d9ed350e01c0753d0f amalik2

Diff:

Revision 2 (+1440)

Show changes

Checks run (1 failed, 1 succeeded)

flake8 failed.
JSHint passed.

flake8

amalik2
Review request changed

Commits:

Summary ID Author
Added difference viewer for XML files.
4b00ace6633843b71d42d9d9ed350e01c0753d0f amalik2
Added difference viewer for XML files.
4b00ace6633843b71d42d9d9ed350e01c0753d0f amalik2
fixed more review bot errors
7504cd5892d3b2c4781f8f3b0c4f1e6de4c52727 amalik2

Diff:

Revision 3 (+1517 -51)

Show changes

Checks run (1 failed, 1 succeeded)

flake8 failed.
JSHint passed.

flake8

amalik2
Review request changed

Commits:

Summary ID Author
Added difference viewer for XML files.
4b00ace6633843b71d42d9d9ed350e01c0753d0f amalik2
fixed more review bot errors
7504cd5892d3b2c4781f8f3b0c4f1e6de4c52727 amalik2
Added difference viewer for XML files.
4b00ace6633843b71d42d9d9ed350e01c0753d0f amalik2
fixed more review bot errors
7504cd5892d3b2c4781f8f3b0c4f1e6de4c52727 amalik2
fixed even more errors
52deed060ab050d79c0282f45344abbd9e36be39 amalik2

Diff:

Revision 4 (+1533 -59)

Show changes

Checks run (1 failed, 1 succeeded)

flake8 failed.
JSHint passed.

flake8

amalik2
amalik2
brennie
  1. 
      
  2. Is this a real CDATA section, e.g.

    <![CDATA[[< WORKS !!! >]]>

    If so, it really should render like it is written.

    1. It's <![CDATA[[CDATA < WORKS !!! >]]]> I believe, can't remember the exact CDATA format. I'm not sure if it's better to display the actual text contents of the CDATA, or to include the CDATA declaration wrapping around the contents. I just went with the contents, but let me know if you guys would prefer to have the declaration as well instead.

    2. Maybe some formatting (background/highlight perhaps) that indicates that the node is CDATA? Not a super high priority, esp since we can view the raw text.

    3. I've changed it now to include the CDATA wrapper. It's also syntax highlighted now :)

  3. 
      
amalik2
Review request changed

Summary:

-Added difference viewer for XML files.
+WIP: Added difference viewer for XML files.

Commits:

Summary ID Author
Added difference viewer for XML files.
4b00ace6633843b71d42d9d9ed350e01c0753d0f amalik2
fixed more review bot errors
7504cd5892d3b2c4781f8f3b0c4f1e6de4c52727 amalik2
fixed even more errors
52deed060ab050d79c0282f45344abbd9e36be39 amalik2
Added difference viewer for XML files.
4b00ace6633843b71d42d9d9ed350e01c0753d0f amalik2
fixed more review bot errors
7504cd5892d3b2c4781f8f3b0c4f1e6de4c52727 amalik2
fixed even more errors
52deed060ab050d79c0282f45344abbd9e36be39 amalik2
added checkbox to toggle same line rendering for text
ffe660445fc00bf34725d9d1cf53cf2d9d6437b6 amalik2

Diff:

Revision 5 (+2211 -361)

Show changes

Checks run (1 failed, 1 succeeded)

flake8 failed.
JSHint passed.

flake8

amalik2
Review request changed

Commits:

Summary ID Author
Added difference viewer for XML files.
4b00ace6633843b71d42d9d9ed350e01c0753d0f amalik2
fixed more review bot errors
7504cd5892d3b2c4781f8f3b0c4f1e6de4c52727 amalik2
fixed even more errors
52deed060ab050d79c0282f45344abbd9e36be39 amalik2
added checkbox to toggle same line rendering for text
ffe660445fc00bf34725d9d1cf53cf2d9d6437b6 amalik2
Added difference viewer for XML files.
4b00ace6633843b71d42d9d9ed350e01c0753d0f amalik2
fixed more review bot errors
7504cd5892d3b2c4781f8f3b0c4f1e6de4c52727 amalik2
fixed even more errors
52deed060ab050d79c0282f45344abbd9e36be39 amalik2
added checkbox to toggle same line rendering for text
ffe660445fc00bf34725d9d1cf53cf2d9d6437b6 amalik2
fixes
51141a347518df7dac12c0d62c87dafa8ffa8a17 amalik2

Diff:

Revision 6 (+2232 -372)

Show changes

Checks run (1 failed, 1 succeeded)

flake8 failed.
JSHint passed.

flake8

amalik2
Review request changed

Commits:

Summary ID Author
Added difference viewer for XML files.
4b00ace6633843b71d42d9d9ed350e01c0753d0f amalik2
fixed more review bot errors
7504cd5892d3b2c4781f8f3b0c4f1e6de4c52727 amalik2
fixed even more errors
52deed060ab050d79c0282f45344abbd9e36be39 amalik2
added checkbox to toggle same line rendering for text
ffe660445fc00bf34725d9d1cf53cf2d9d6437b6 amalik2
fixes
51141a347518df7dac12c0d62c87dafa8ffa8a17 amalik2
Added difference viewer for XML files.
4b00ace6633843b71d42d9d9ed350e01c0753d0f amalik2
fixed more review bot errors
7504cd5892d3b2c4781f8f3b0c4f1e6de4c52727 amalik2
fixed even more errors
52deed060ab050d79c0282f45344abbd9e36be39 amalik2
added checkbox to toggle same line rendering for text
ffe660445fc00bf34725d9d1cf53cf2d9d6437b6 amalik2
fixes
51141a347518df7dac12c0d62c87dafa8ffa8a17 amalik2
more fixes
96b46f1688a9b07b5f9146677e6be398b015bc71 amalik2

Diff:

Revision 7 (+2236 -376)

Show changes

Checks run (1 failed, 1 succeeded)

flake8 failed.
JSHint passed.

flake8

amalik2
Review request changed

Commits:

Summary ID Author
Added difference viewer for XML files.
4b00ace6633843b71d42d9d9ed350e01c0753d0f amalik2
fixed more review bot errors
7504cd5892d3b2c4781f8f3b0c4f1e6de4c52727 amalik2
fixed even more errors
52deed060ab050d79c0282f45344abbd9e36be39 amalik2
added checkbox to toggle same line rendering for text
ffe660445fc00bf34725d9d1cf53cf2d9d6437b6 amalik2
fixes
51141a347518df7dac12c0d62c87dafa8ffa8a17 amalik2
more fixes
96b46f1688a9b07b5f9146677e6be398b015bc71 amalik2
Added difference viewer for XML files.
4b00ace6633843b71d42d9d9ed350e01c0753d0f amalik2
fixed more review bot errors
7504cd5892d3b2c4781f8f3b0c4f1e6de4c52727 amalik2
fixed even more errors
52deed060ab050d79c0282f45344abbd9e36be39 amalik2
added checkbox to toggle same line rendering for text
ffe660445fc00bf34725d9d1cf53cf2d9d6437b6 amalik2
fixes
51141a347518df7dac12c0d62c87dafa8ffa8a17 amalik2
more fixes
96b46f1688a9b07b5f9146677e6be398b015bc71 amalik2
fixed over identation?
2e37cf09f1cef4e9b7f5a05d65cb1a4d616d90c9 amalik2

Diff:

Revision 8 (+2238 -378)

Show changes

Checks run (1 failed, 1 succeeded)

flake8 failed.
JSHint passed.

flake8

amalik2
Review request changed

Commits:

Summary ID Author
Added difference viewer for XML files.
4b00ace6633843b71d42d9d9ed350e01c0753d0f amalik2
fixed more review bot errors
7504cd5892d3b2c4781f8f3b0c4f1e6de4c52727 amalik2
fixed even more errors
52deed060ab050d79c0282f45344abbd9e36be39 amalik2
added checkbox to toggle same line rendering for text
ffe660445fc00bf34725d9d1cf53cf2d9d6437b6 amalik2
fixes
51141a347518df7dac12c0d62c87dafa8ffa8a17 amalik2
more fixes
96b46f1688a9b07b5f9146677e6be398b015bc71 amalik2
fixed over identation?
2e37cf09f1cef4e9b7f5a05d65cb1a4d616d90c9 amalik2
Added difference viewer for XML files.
4b00ace6633843b71d42d9d9ed350e01c0753d0f amalik2
fixed more review bot errors
7504cd5892d3b2c4781f8f3b0c4f1e6de4c52727 amalik2
fixed even more errors
52deed060ab050d79c0282f45344abbd9e36be39 amalik2
added checkbox to toggle same line rendering for text
ffe660445fc00bf34725d9d1cf53cf2d9d6437b6 amalik2
fixes
51141a347518df7dac12c0d62c87dafa8ffa8a17 amalik2
more fixes
96b46f1688a9b07b5f9146677e6be398b015bc71 amalik2
fixed over identation?
2e37cf09f1cef4e9b7f5a05d65cb1a4d616d90c9 amalik2
indentation fix
ecc12d50733ee2ecdc6286f4c1a91730a6329311 amalik2

Diff:

Revision 9 (+2242 -382)

Show changes

Checks run (1 failed, 1 succeeded)

flake8 failed.
JSHint passed.

flake8

amalik2
Review request changed

Commits:

Summary ID Author
Added difference viewer for XML files.
4b00ace6633843b71d42d9d9ed350e01c0753d0f amalik2
fixed more review bot errors
7504cd5892d3b2c4781f8f3b0c4f1e6de4c52727 amalik2
fixed even more errors
52deed060ab050d79c0282f45344abbd9e36be39 amalik2
added checkbox to toggle same line rendering for text
ffe660445fc00bf34725d9d1cf53cf2d9d6437b6 amalik2
fixes
51141a347518df7dac12c0d62c87dafa8ffa8a17 amalik2
more fixes
96b46f1688a9b07b5f9146677e6be398b015bc71 amalik2
fixed over identation?
2e37cf09f1cef4e9b7f5a05d65cb1a4d616d90c9 amalik2
indentation fix
ecc12d50733ee2ecdc6286f4c1a91730a6329311 amalik2
Added difference viewer for XML files.
4b00ace6633843b71d42d9d9ed350e01c0753d0f amalik2
fixed more review bot errors
7504cd5892d3b2c4781f8f3b0c4f1e6de4c52727 amalik2
fixed even more errors
52deed060ab050d79c0282f45344abbd9e36be39 amalik2
added checkbox to toggle same line rendering for text
ffe660445fc00bf34725d9d1cf53cf2d9d6437b6 amalik2
fixes
51141a347518df7dac12c0d62c87dafa8ffa8a17 amalik2
more fixes
96b46f1688a9b07b5f9146677e6be398b015bc71 amalik2
fixed over identation?
2e37cf09f1cef4e9b7f5a05d65cb1a4d616d90c9 amalik2
indentation fix
ecc12d50733ee2ecdc6286f4c1a91730a6329311 amalik2
fixed documentation for xml model
0969aa4a38c87cf82de60e0e6fb33aaf5afeba2a amalik2

Diff:

Revision 10 (+2241 -395)

Show changes

Checks run (1 failed, 1 succeeded)

flake8 failed.
JSHint passed.

flake8

amalik2
amalik2
amalik2
Review request changed

Commits:

Summary ID Author
Added difference viewer for XML files.
1a4d4b1e210c4dcfe45a1e5b7168c8be4e84f84f amalik2
fixed encoding issue
111909238d443efa14c2a7ee1a380d499c5fd4f0 amalik2
Removed render options from text template
392012c86554ccff1bf543f0ae51e54435354ad5 amalik2
Added difference viewer for XML files.
1a4d4b1e210c4dcfe45a1e5b7168c8be4e84f84f amalik2
fixed encoding issue
111909238d443efa14c2a7ee1a380d499c5fd4f0 amalik2
Removed render options from text template
392012c86554ccff1bf543f0ae51e54435354ad5 amalik2
removed hack for extra whitespace fix
97bceaabcfbf910c4b8f89afd033740cf418a0fa amalik2

Diff:

Revision 13 (+1841 -41)

Show changes

Checks run (1 failed, 1 succeeded)

flake8 failed.
JSHint passed.

flake8

amalik2
amalik2
Review request changed

Summary:

-WIP: Added difference viewer for XML files.
+Added difference viewer for XML files.

Commits:

Summary ID Author
Added difference viewer for XML files.
1a4d4b1e210c4dcfe45a1e5b7168c8be4e84f84f amalik2
fixed encoding issue
111909238d443efa14c2a7ee1a380d499c5fd4f0 amalik2
Removed render options from text template
392012c86554ccff1bf543f0ae51e54435354ad5 amalik2
removed hack for extra whitespace fix
97bceaabcfbf910c4b8f89afd033740cf418a0fa amalik2
removed unused function
a4315b4a6eaa22d97d8cc3fcb19e234de784671d amalik2
Added difference viewer for XML files.
89eccc9d0a3de6761975239ba18f3f95f2244493 amalik2

Diff:

Revision 15 (+1682 -2)

Show changes

Checks run (1 failed, 1 succeeded)

flake8 failed.
JSHint passed.

flake8

amalik2
amalik2
amalik2
amalik2
amalik2
amalik2
Review request changed

Commits:

Summary ID Author
Added difference viewer for XML files.
20db34b77f461d5bc9cc598266854bbdc77aba77 amalik2
Added difference viewer for XML files.
9acc7eccb53a671bcf91e99532e25bd7fc6af1d2 amalik2

Depends On:

+10758 - WIP: Dynamic Review UI Rendering

Diff:

Revision 19 (+3802 -648)

Show changes

Checks run (1 failed, 1 succeeded)

flake8 failed.
JSHint passed.

flake8

amalik2
Review request changed

Commits:

Summary ID Author
Added difference viewer for XML files.
9acc7eccb53a671bcf91e99532e25bd7fc6af1d2 amalik2
Added difference viewer for XML files.
6ecd8fc45dcbe2cfb94b5f3bac5a24cd7c2ad138 amalik2

Diff:

Revision 20 (+3780 -648)

Show changes

Checks run (2 succeeded)

flake8 passed.
JSHint passed.
Loading...