[PATCH 3 of 3 RFC] hgweb: code selection without line numbers in file diff and changeset views

Alexander Plavin me at aplavin.ru
Sat Jun 29 15:59:11 CDT 2013


I've always thought that using !important explicitly is better, than
just relying on the definitions order in css file, and so I preferred
to use this. And the reason such precedence changes are needed here is
that (there are 2 different cases):
a) elements having parity{0,1} class may have another class specifying
the background-color - then the parity color should be used (like
multiple files diffs in a changeset info view - they are of different
background color due to parity)
b) same with elements having {plus,minus,at}line, but color attribute
here (like in any view where there is file diff)

2013/6/29 Laurens Holst <laurens.nospam at grauw.nl>:
> Op 29-6-2013 16:06, Alexander Plavin schreef:
>
>> # HG changeset patch
>> # User Alexander Plavin <me at aplavin.ru>
>> # Date 1369931030 -14400
>> #      Thu May 30 20:23:50 2013 +0400
>> # Node ID 03f763079a3e8525c5788f5238ff87ea0a90d0f4
>> # Parent  cc47e0b1bf3ecf020a1f84753694502ef4b9b603
>> hgweb: code selection without line numbers in file diff and changeset
>> views
>>
>> File diff and changeset views display lines the same way as file code
>> view, as
>> HTML ordered list, so that line numbers are not selected with the code
>> itself.
>>
>> This patch changes the visual appearance of the diffs a little:
>> - line numbers have dots after them
>> - 'line diff' heading above the source lines removed
>> - line numbers and lines have a vertical line between them
>>    for better distinction
>>
>> diff -r cc47e0b1bf3e -r 03f763079a3e
>> mercurial/templates/paper/changeset.tmpl
>> --- a/mercurial/templates/paper/changeset.tmpl  Tue Jun 25 21:12:27 2013
>> +0400
>> +++ b/mercurial/templates/paper/changeset.tmpl  Thu May 30 20:23:50 2013
>> +0400
>> @@ -77,7 +77,7 @@
>>   </table>
>>     <div class="overflow">
>> -<div class="sourcefirst">   line diff</div>
>> +<div class="sourcefirst"></div>
>>     {diff}
>>   </div>
>> diff -r cc47e0b1bf3e -r 03f763079a3e
>> mercurial/templates/paper/filediff.tmpl
>> --- a/mercurial/templates/paper/filediff.tmpl   Tue Jun 25 21:12:27 2013
>> +0400
>> +++ b/mercurial/templates/paper/filediff.tmpl   Thu May 30 20:23:50 2013
>> +0400
>> @@ -68,7 +68,7 @@
>>   </table>
>>     <div class="overflow">
>> -<div class="sourcefirst">   line diff</div>
>> +<div class="sourcefirst"></div>
>>     {diff}
>>   </div>
>> diff -r cc47e0b1bf3e -r 03f763079a3e mercurial/templates/paper/map
>> --- a/mercurial/templates/paper/map     Tue Jun 25 21:12:27 2013 +0400
>> +++ b/mercurial/templates/paper/map     Thu May 30 20:23:50 2013 +0400
>> @@ -84,11 +84,11 @@
>>       <td class="source"><a href="#{lineid}"
>> id="{lineid}">{linenumber}</a> {line|escape}</td>
>>     </tr>'
>>   -diffblock = '<div class="source bottomline
>> parity{parity}"><pre>{lines}</pre></div>'
>> -difflineplus = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> <span
>> class="plusline">{line|escape}</span>'
>> -difflineminus = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> <span
>> class="minusline">{line|escape}</span>'
>> -difflineat = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> <span
>> class="atline">{line|escape}</span>'
>> -diffline = '<a href="#{lineid}" id="{lineid}">{linenumber}</a>
>> {line|escape}'
>> +diffblock = '<div class="bottomline"><ol class="parity{parity}
>> sourcelines">{lines}</ol></div>'
>> +difflineplus = '<li class="source" id="{lineid}"><div
>> class="plusline">{nonempty(strip(line|escape, '\r\n'),
>> ' ')}</div></li>'
>> +difflineminus = '<li class="source" id="{lineid}"><div
>> class="minusline">{nonempty(strip(line|escape, '\r\n'),
>> ' ')}</div></li>'
>> +difflineat = '<li class="source" id="{lineid}"><div
>> class="atline">{nonempty(strip(line|escape, '\r\n'), ' ')}</div></li>'
>> +diffline = '<li class="source"
>> id="{lineid}"><div>{nonempty(strip(line|escape, '\r\n'),
>> ' ')}</div></li>'
>>     comparisonblock ='
>>     <tbody class="block">
>> diff -r cc47e0b1bf3e -r 03f763079a3e
>> mercurial/templates/static/style-paper.css
>> --- a/mercurial/templates/static/style-paper.css        Tue Jun 25
>> 21:12:27 2013 +0400
>> +++ b/mercurial/templates/static/style-paper.css        Thu May 30
>> 20:23:50 2013 +0400
>> @@ -94,11 +94,11 @@
>>   .age { white-space:nowrap; }
>>   .date { white-space:nowrap; }
>>   .indexlinks { white-space:nowrap; }
>> -.parity0 { background-color: #f0f0f0; }
>> -.parity1 { background-color: white; }
>> -.plusline { color: green; }
>> -.minusline { color: #dc143c; } /* crimson */
>> -.atline { color: purple; }
>> +.parity0 { background-color: #f0f0f0 !important; }
>> +.parity1 { background-color: white !important; }
>> +.plusline { color: green !important; }
>> +.minusline { color: #dc143c !important; } /* crimson */
>> +.atline { color: purple !important; }
>
>
> There should be generally no need for web sites to use !important. Why are
> you using it here?
>
> You can influence the cascade by either simply moving it below the thing you
> want to override, or increasing the specificity of your selector (e.g.
> div.atline or .source .atline).
>
> See http://www.w3.org/TR/CSS2/cascade.html#cascade
>
>>     .diffstat-file {
>>     white-space: nowrap;
>> _______________________________________________
>> Mercurial-devel mailing list
>> Mercurial-devel at selenic.com
>> http://selenic.com/mailman/listinfo/mercurial-devel
>>
>


More information about the Mercurial-devel mailing list