Mercurial > hg > mercurial-source
changeset 23756:d1933c2e3c8c
templates: use CSS classes for diff styling
Use of inline style for diff styling led to significant browser memory
usage on large diffs. Moving the styling into CSS classes corrects this.
This patch is based on work from
https://bugzilla.mozilla.org/show_bug.cgi?id=766952
and
https://hg.mozilla.org/hgcustom/version-control-tools/rev/2c355a580af6
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Tue, 06 Jan 2015 15:29:02 -0800 |
parents | 606a3bf82e30 |
children | 513d47905114 |
files | mercurial/templates/gitweb/map mercurial/templates/monoblue/map mercurial/templates/static/style-gitweb.css mercurial/templates/static/style-monoblue.css tests/test-hgweb.t |
diffstat | 5 files changed, 17 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/templates/gitweb/map +++ b/mercurial/templates/gitweb/map @@ -105,9 +105,9 @@ <td><pre><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a></pre></td> <td><pre>{line|escape}</pre></td> </tr>' -difflineplus = '<span style="color:#008800;"><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>' -difflineminus = '<span style="color:#cc0000;"><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>' -difflineat = '<span style="color:#990099;"><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>' +difflineplus = '<span class="difflineplus"><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>' +difflineminus = '<span class="difflineminus"><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>' +difflineat = '<span class="difflineat"><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>' diffline = '<a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}' comparisonblock ='
--- a/mercurial/templates/monoblue/map +++ b/mercurial/templates/monoblue/map @@ -100,9 +100,9 @@ </td> <td class="source">{line|escape}</td> </tr>' -difflineplus = '<span style="color:#008800;"><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>' -difflineminus = '<span style="color:#cc0000;"><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>' -difflineat = '<span style="color:#990099;"><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>' +difflineplus = '<span class="difflineplus"><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>' +difflineminus = '<span class="difflineminus"><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>' +difflineat = '<span class="difflineat"><a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</span>' diffline = '<a class="linenr" href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}' comparisonblock ='
--- a/mercurial/templates/static/style-gitweb.css +++ b/mercurial/templates/static/style-gitweb.css @@ -84,6 +84,9 @@ background-color: #afdffa; border-color: #ccecff #46ace6 #46ace6 #ccecff; } +span.difflineplus { color:#008800; } +span.difflineminus { color:#cc0000; } +span.difflineat { color:#990099; } /* Graph */ div#wrapper {
--- a/mercurial/templates/static/style-monoblue.css +++ b/mercurial/templates/static/style-monoblue.css @@ -260,6 +260,10 @@ font-size: 1.2em; padding: 3px 0; } +span.difflineplus { color:#008800; } +span.difflineminus { color:#cc0000; } +span.difflineat { color:#990099; } + td.source { white-space: pre; font-family: monospace;
--- a/tests/test-hgweb.t +++ b/tests/test-hgweb.t @@ -332,7 +332,7 @@ $ "$TESTDIR/get-with-headers.py" --twice localhost:$HGPORT 'static/style-gitweb.css' - date etag server 200 Script output follows - content-length: 5262 + content-length: 5372 content-type: text/css body { font-family: sans-serif; font-size: 12px; border:solid #d9d8d1; border-width:1px; margin:10px; } @@ -421,6 +421,9 @@ background-color: #afdffa; border-color: #ccecff #46ace6 #46ace6 #ccecff; } + span.difflineplus { color:#008800; } + span.difflineminus { color:#cc0000; } + span.difflineat { color:#990099; } /* Graph */ div#wrapper {