Code view:
From the node mapping Only one solution
A painting is a person's account of this edit as text , recorded independently of the node mapping - a rendering often has several equally defensible answers where the mapping has one. Deletions and insertions carry no position on the opposite side in a painting, so that panel draws no caret for them.
Before
1 <!doctype html> <html lang=en> <head> <meta charset=utf-8> <title>frp client admin UI</title> <link rel="shortcut icon" href="favicon.ico"></head> <body> <div id=app></div> <script type="text/javascript" src=" manifest.js?5a0eb52788515d02ca46 "></script><script type="text/javascript" src=" vendor.js?3e5221f064f1295497bf "></script></body> </html>
After
1 <!doctype html> <html lang=en> <head> <meta charset=utf-8> <title>frp client admin UI</title> <link rel="shortcut icon" href="favicon.ico"></head> <body> <div id=app></div> <script type="text/javascript" src=" manifest.js?5d5774096cf5c1b4d5af "></script><script type="text/javascript" src=" vendor.js?dc42700731a508d39009 "></script></body> </html>
Before
1 <!doctype html> <html lang=en> <head> <meta charset=utf-8> <title>frp client admin UI</title> <link rel="shortcut icon" href="favicon.ico"></head> <body> <div id=app></div> <script type="text/javascript" src="manifest.js?5a0eb52788515d02ca46 "></script><script type="text/javascript" src="vendor.js?3e5221f064f1295497bf "></script></body> </html>
After
1 <!doctype html> <html lang=en> <head> <meta charset=utf-8> <title>frp client admin UI</title> <link rel="shortcut icon" href="favicon.ico"></head> <body> <div id=app></div> <script type="text/javascript" src="manifest.js?5d5774096cf5c1b4d5af "></script><script type="text/javascript" src="vendor.js?dc42700731a508d39009 "></script></body> </html>
Before
document doctype <! "<!"
doctype "doctype"
> ">"
element start_tag < "<"
tag_name "html"
attribute attribute_name "lang"
= "="
attribute_value "en"
> ">"
element (+47 nodes collapsed)
element start_tag < "<"
tag_name "body"
> ">"
element start_tag < "<"
tag_name "div"
attribute attribute_name "id"
= "="
attribute_value "app"
> ">"
end_tag </ "</"
tag_name "div"
> ">"
script_element start_tag < "<"
tag_name "script"
attribute attribute_name "type"
= "="
quoted_attribute_value " "\""
attribute_value "text/javascript"
" "\""
attribute attribute_name "src"
= "="
quoted_attribute_value " "\""
attribute_value "manifest.js?5a0eb52788515d02ca46"
" "\""
> ">"
raw_text ""
end_tag </ "</"
tag_name "script"
> ">"
script_element start_tag < "<"
tag_name "script"
attribute attribute_name "type"
= "="
quoted_attribute_value " "\""
attribute_value "text/javascript"
" "\""
attribute attribute_name "src"
= "="
quoted_attribute_value " "\""
attribute_value "vendor.js?3e5221f064f1295497bf"
" "\""
> ">"
raw_text ""
end_tag </ "</"
tag_name "script"
> ">"
end_tag </ "</"
tag_name "body"
> ">"
end_tag </ "</"
tag_name "html"
> ">"
After
document doctype <! "<!"
doctype "doctype"
> ">"
element start_tag < "<"
tag_name "html"
attribute attribute_name "lang"
= "="
attribute_value "en"
> ">"
element (+47 nodes collapsed)
element start_tag < "<"
tag_name "body"
> ">"
element start_tag < "<"
tag_name "div"
attribute attribute_name "id"
= "="
attribute_value "app"
> ">"
end_tag </ "</"
tag_name "div"
> ">"
script_element start_tag < "<"
tag_name "script"
attribute attribute_name "type"
= "="
quoted_attribute_value " "\""
attribute_value "text/javascript"
" "\""
attribute attribute_name "src"
= "="
quoted_attribute_value " "\""
attribute_value "manifest.js?5d5774096cf5c1b4d5af"
" "\""
> ">"
raw_text ""
end_tag </ "</"
tag_name "script"
> ">"
script_element start_tag < "<"
tag_name "script"
attribute attribute_name "type"
= "="
quoted_attribute_value " "\""
attribute_value "text/javascript"
" "\""
attribute attribute_name "src"
= "="
quoted_attribute_value " "\""
attribute_value "vendor.js?dc42700731a508d39009"
" "\""
> ">"
raw_text ""
end_tag </ "</"
tag_name "script"
> ">"
end_tag </ "</"
tag_name "body"
> ">"
end_tag </ "</"
tag_name "html"
> ">"
Keybindings
j / k next / previous visible node (tree panels)
h / l collapse / expand the focused node
g / G jump to first / last visible node
Tab switch focus between Before/After panels
/ search: jump to next node whose text contains a given string
a jump the other panel to this node's mapped counterpart
i hide identical matches, showing only inserted/deleted/updated nodes and their ancestors
v cycle the view: split / code only / tree only
p cycle what the code view renders: the node mapping, then each human painting
r mark this fixture as reviewed, or forget the mark (kept in this browser only)
n open a random fixture not yet marked as reviewed
? toggle this help
Search (plain substring, no regex):