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{% extends "admin/base_site.html" %}
2{% load i18n admin_urls %}
3
4{% block breadcrumbs %}
5<ol class="breadcrumbs">
6<li><a href="{% url 'admin:index' %}">{% translate 'Home' %}</a></li>
7<li><a href="{% url 'admin:app_list' app_label=opts.app_label %}">{{ opts.app_config.verbose_name }}</a></li>
8<li><a href="{% url opts|admin_urlname:'changelist' %}">{{ module_name }}</a></li>
9<li><a href="{% url opts|admin_urlname:'change' object.pk|admin_urlquote %}">{{ object|truncatewords:"18" }}</a></li>
10<li aria-current="page">{% translate 'History' %}</li>
11</ol>
12{% endblock %}
13
14{% block content %}
15<div id="content-main">
…lines 16–60 unchanged (45 lines)

After

1{% extends "admin/base_site.html" %}
2{% load i18n admin_urls admin_filters %}
3
4{% block breadcrumbs %}
5<ol class="breadcrumbs">
6<li><a href="{% url 'admin:index' %}">{% translate 'Home' %}</a></li>
7<li><a href="{% url 'admin:app_list' app_label=opts.app_label %}">{{ opts.app_config.verbose_name }}</a></li>
8<li><a href="{% url opts|admin_urlname:'changelist' %}">{{ module_name }}</a></li>
9<li><a href="{% url opts|admin_urlname:'change' object.pk|admin_urlquote %}">{{ object|to_object_display_value|truncatewords:"18" }}</a></li>
10<li aria-current="page">{% translate 'History' %}</li>
11</ol>
12{% endblock %}
13
14{% block content %}
15<div id="content-main">
…lines 16–60 unchanged (45 lines)

Before

document
text "{% extends \"admin/base_site.html\" %}\n{% load i18n admin_urls"...
element
start_tag
< "<"
tag_name "ol"
attribute
attribute_name "class"
= "="
quoted_attribute_value
" "\""
attribute_value "breadcrumbs"
" "\""
> ">"
element (+26 nodes collapsed)
element (+26 nodes collapsed)
element (+26 nodes collapsed)
element
start_tag
< "<"
tag_name "li"
> ">"
element
start_tag
< "<"
tag_name "a"
attribute
attribute_name "href"
= "="
quoted_attribute_value
" "\""
attribute_value "{% url opts|admin_urlname:'change' object.pk|admin_urlquote "...
" "\""
> ">"
text "{{ object|truncatewords:\"18\" }}"
end_tag
</ "</"
tag_name "a"
> ">"
end_tag
</ "</"
tag_name "li"
> ">"
element
start_tag
< "<"
tag_name "li"
attribute
attribute_name "aria-current"
= "="
quoted_attribute_value
" "\""
attribute_value "page"
" "\""
> ">"
text "{% translate 'History' %}"
end_tag
</ "</"
tag_name "li"
> ">"
end_tag
</ "</"
tag_name "ol"
> ">"
text "{% endblock %}\n\n{% block content %}"
element (+331 nodes collapsed)
text "{% endblock %}"

After

document
text "{% extends \"admin/base_site.html\" %}\n{% load i18n admin_urls"...
element
start_tag
< "<"
tag_name "ol"
attribute
attribute_name "class"
= "="
quoted_attribute_value
" "\""
attribute_value "breadcrumbs"
" "\""
> ">"
element (+26 nodes collapsed)
element (+26 nodes collapsed)
element (+26 nodes collapsed)
element
start_tag
< "<"
tag_name "li"
> ">"
element
start_tag
< "<"
tag_name "a"
attribute
attribute_name "href"
= "="
quoted_attribute_value
" "\""
attribute_value "{% url opts|admin_urlname:'change' object.pk|admin_urlquote "...
" "\""
> ">"
text "{{ object|to_object_display_value|truncatewords:\"18\" }}"
end_tag
</ "</"
tag_name "a"
> ">"
end_tag
</ "</"
tag_name "li"
> ">"
element
start_tag
< "<"
tag_name "li"
attribute
attribute_name "aria-current"
= "="
quoted_attribute_value
" "\""
attribute_value "page"
" "\""
> ">"
text "{% translate 'History' %}"
end_tag
</ "</"
tag_name "li"
> ">"
end_tag
</ "</"
tag_name "ol"
> ">"
text "{% endblock %}\n\n{% block content %}"
element (+331 nodes collapsed)
text "{% endblock %}"