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

…lines 1–269 unchanged (269 lines)
270 <footer class="footer">
271 <div class="container">
272 <p class="text-muted">
273 Quotes by: <a href="https://www.goodreads.com/quotes">GoodReads.com</a>
274 </p>
275 <p class="copyright">
276 Made with <span class='sh-red'>❤</span> by <a href="https://scrapinghub.com">Scrapinghub</a>
277 </p>
278 </div>
279 </footer>
280</body>
281</html>

After

…lines 1–269 unchanged (269 lines)
270 <footer class="footer">
271 <div class="container">
272 <p class="text-muted">
273 Quotes by: <a href="https://www.goodreads.com/quotes">GoodReads.com</a>
274 </p>
275 <p class="copyright">
276 Made with <span class='sh-red'>❤</span> by <a href="https://www.zyte.com">Zyte</a>
277 </p>
278 </div>
279 </footer>
280</body>
281</html>

Before

document
doctype
<! "<!"
doctype "DOCTYPE"
> ">"
element
start_tag
< "<"
tag_name "html"
attribute
attribute_name "lang"
= "="
quoted_attribute_value
" "\""
attribute_value "en"
" "\""
> ">"
element (+69 nodes collapsed)
element
start_tag
< "<"
tag_name "body"
> ">"
element (+2904 nodes collapsed)
element
start_tag
< "<"
tag_name "footer"
attribute
attribute_name "class"
= "="
quoted_attribute_value
" "\""
attribute_value "footer"
" "\""
> ">"
element
start_tag
< "<"
tag_name "div"
attribute
attribute_name "class"
= "="
quoted_attribute_value
" "\""
attribute_value "container"
" "\""
> ">"
element (+34 nodes collapsed)
element
start_tag
< "<"
tag_name "p"
attribute
attribute_name "class"
= "="
quoted_attribute_value
" "\""
attribute_value "copyright"
" "\""
> ">"
text "Made with"
element
start_tag
< "<"
tag_name "span"
attribute
attribute_name "class"
= "="
quoted_attribute_value
' "'"
attribute_value "sh-red"
' "'"
> ">"
text "❤"
end_tag
</ "</"
tag_name "span"
> ">"
text "by"
element
start_tag
< "<"
tag_name "a"
attribute
attribute_name "href"
= "="
quoted_attribute_value
" "\""
attribute_value "https://scrapinghub.com"
" "\""
> ">"
text "Scrapinghub"
end_tag
</ "</"
tag_name "a"
> ">"
end_tag
</ "</"
tag_name "p"
> ">"
end_tag
</ "</"
tag_name "div"
> ">"
end_tag
</ "</"
tag_name "footer"
> ">"
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"
= "="
quoted_attribute_value
" "\""
attribute_value "en"
" "\""
> ">"
element (+69 nodes collapsed)
element
start_tag
< "<"
tag_name "body"
> ">"
element (+2904 nodes collapsed)
element
start_tag
< "<"
tag_name "footer"
attribute
attribute_name "class"
= "="
quoted_attribute_value
" "\""
attribute_value "footer"
" "\""
> ">"
element
start_tag
< "<"
tag_name "div"
attribute
attribute_name "class"
= "="
quoted_attribute_value
" "\""
attribute_value "container"
" "\""
> ">"
element (+34 nodes collapsed)
element
start_tag
< "<"
tag_name "p"
attribute
attribute_name "class"
= "="
quoted_attribute_value
" "\""
attribute_value "copyright"
" "\""
> ">"
text "Made with"
element
start_tag
< "<"
tag_name "span"
attribute
attribute_name "class"
= "="
quoted_attribute_value
' "'"
attribute_value "sh-red"
' "'"
> ">"
text "❤"
end_tag
</ "</"
tag_name "span"
> ">"
text "by"
element
start_tag
< "<"
tag_name "a"
attribute
attribute_name "href"
= "="
quoted_attribute_value
" "\""
attribute_value "https://www.zyte.com"
" "\""
> ">"
text "Zyte"
end_tag
</ "</"
tag_name "a"
> ">"
end_tag
</ "</"
tag_name "p"
> ">"
end_tag
</ "</"
tag_name "div"
> ">"
end_tag
</ "</"
tag_name "footer"
> ">"
end_tag
</ "</"
tag_name "body"
> ">"
end_tag
</ "</"
tag_name "html"
> ">"