Code view:

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

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"
> ">"