[PATCH] hgweb: render tabs to 8 spaces (rebased)

Rocco Rutte pdmef at gmx.net
Thu May 14 09:03:03 CDT 2009


Hi,

* Rocco Rutte wrote:

[...]

Attached is another rebased to latest crew (plus documentation).

Rocco

comparing with /Data/hg/mercurial/crew
searching for changes
changeset:   8381:de336f17b54a
tag:         tip
user:        Rocco Rutte <pdmef at gmx.net>
date:        Thu May 14 16:00:21 2009 +0200
summary:     hgweb: render tabs to 8 spaces

diff --git a/mercurial/help.py b/mercurial/help.py
--- a/mercurial/help.py
+++ b/mercurial/help.py
@@ -334,6 +334,7 @@ PYTHONPATH::
           'user at example.com'.
     - escape: Any text. Replaces the special XML/XHTML characters "&",
           "<" and ">" with XML entities.
+    - expandtab: Any text. Replaces hard tab with 8 spaces.
     - fill68: Any text. Wraps the text to fit in 68 columns.
     - fill76: Any text. Wraps the text to fit in 76 columns.
     - firstline: Any text. Returns the first line of text.
diff --git a/mercurial/templatefilters.py b/mercurial/templatefilters.py
--- a/mercurial/templatefilters.py
+++ b/mercurial/templatefilters.py
@@ -174,6 +174,9 @@ def stripdir(text):
 def nonempty(str):
   return str or "(none)"
 
+def expandtab(str):
+  return str.replace('\t',' ' * 8)
+
 filters = {
     "addbreaks": nl2br,
     "basename": os.path.basename,
@@ -183,6 +186,7 @@ filters = {
     "domain": domain,
     "email": util.email,
     "escape": lambda x: cgi.escape(x, True),
+    "expandtab": expandtab,
     "fill68": lambda x: fill(x, width=68),
     "fill76": lambda x: fill(x, width=76),
     "firstline": firstline,
diff --git a/templates/coal/map b/templates/coal/map
--- a/templates/coal/map
+++ b/templates/coal/map
@@ -52,7 +52,7 @@ filerevision = ../paper/filerevision.tmp
 fileannotate = ../paper/fileannotate.tmpl
 filediff = ../paper/filediff.tmpl
 filelog = ../paper/filelog.tmpl
-fileline = '<div class="parity{parity} source"><a href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</div>'
+fileline = '<div class="parity{parity} source"><a href="#{lineid}" id="{lineid}">{linenumber}</a> {line|expandtab|escape}</div>'
 filelogentry = ../paper/filelogentry.tmpl
 
 annotateline = '
@@ -61,14 +61,14 @@ annotateline = '
       <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#{targetline}"
          title="{node|short}: {desc|escape|firstline}">{author|user}@{rev}</a>
     </td>
-    <td class="source"><a href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</td>
+    <td class="source"><a href="#{lineid}" id="{lineid}">{linenumber}</a> {line|expandtab|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}'
+difflineplus = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> <span class="plusline">{line|expandtab|escape}</span>'
+difflineminus = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> <span class="minusline">{line|expandtab|escape}</span>'
+difflineat = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> <span class="atline">{line|expandtab|escape}</span>'
+diffline = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> {line|expandtab|escape}'
 
 changelogparent = '
   <tr>
diff --git a/templates/gitweb/map b/templates/gitweb/map
--- a/templates/gitweb/map
+++ b/templates/gitweb/map
@@ -70,7 +70,7 @@ filerevision = filerevision.tmpl
 fileannotate = fileannotate.tmpl
 filediff = filediff.tmpl
 filelog = filelog.tmpl
-fileline = '<div style="font-family:monospace" class="parity#parity#"><pre><a class="linenr" href="##lineid#" id="#lineid#">#linenumber#</a> #line|escape#</pre></div>'
+fileline = '<div style="font-family:monospace" class="parity#parity#"><pre><a class="linenr" href="##lineid#" id="#lineid#">#linenumber#</a> #line|expandtab|escape#</pre></div>'
 annotateline = '
   <tr style="font-family:monospace" class="parity#parity#">
     <td class="linenr" style="text-align: right;">
@@ -78,12 +78,12 @@ annotateline = '
          title="{node|short}: {desc|escape|firstline}">#author|user#@#rev#</a>
     </td>
     <td><pre><a class="linenr" href="##lineid#" id="#lineid#">#linenumber#</a></pre></td>
-    <td><pre>#line|escape#</pre></td>
+    <td><pre>#line|expandtab|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>'
-diffline = '<span><a class="linenr" href="##lineid#" id="#lineid#">#linenumber#</a> #line|escape#</span>'
+difflineplus = '<span style="color:#008800;"><a class="linenr" href="##lineid#" id="#lineid#">#linenumber#</a> #line|expandtab|escape#</span>'
+difflineminus = '<span style="color:#cc0000;"><a class="linenr" href="##lineid#" id="#lineid#">#linenumber#</a> #line|expandtab|escape#</span>'
+difflineat = '<span style="color:#990099;"><a class="linenr" href="##lineid#" id="#lineid#">#linenumber#</a> #line|expandtab|escape#</span>'
+diffline = '<span><a class="linenr" href="##lineid#" id="#lineid#">#linenumber#</a> #line|expandtab|escape#</span>'
 changelogparent = '
   <tr>
     <th class="parent">parent #rev#:</th>
diff --git a/templates/monoblue/map b/templates/monoblue/map
--- a/templates/monoblue/map
+++ b/templates/monoblue/map
@@ -61,7 +61,7 @@ filerevision = filerevision.tmpl
 fileannotate = fileannotate.tmpl
 filediff = filediff.tmpl
 filelog = filelog.tmpl
-fileline = '<div style="font-family:monospace" class="parity#parity#"><pre><a class="linenr" href="##lineid#" id="#lineid#">#linenumber#</a> #line|escape#</pre></div>'
+fileline = '<div style="font-family:monospace" class="parity#parity#"><pre><a class="linenr" href="##lineid#" id="#lineid#">#linenumber#</a> #line|expandtab|escape#</pre></div>'
 annotateline = '
   <tr class="parity{parity}">
     <td class="linenr">
@@ -71,12 +71,12 @@ annotateline = '
     <td class="lineno">
       <a href="#{lineid}" id="{lineid}">{linenumber}</a>
     </td>
-    <td class="source">{line|escape}</td>
+    <td class="source">{line|expandtab|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>'
-diffline = '<span><a class="linenr" href="##lineid#" id="#lineid#">#linenumber#</a> #line|escape#</span>'
+difflineplus = '<span style="color:#008800;"><a class="linenr" href="##lineid#" id="#lineid#">#linenumber#</a> #line|expandtab|escape#</span>'
+difflineminus = '<span style="color:#cc0000;"><a class="linenr" href="##lineid#" id="#lineid#">#linenumber#</a> #line|expandtab|escape#</span>'
+difflineat = '<span style="color:#990099;"><a class="linenr" href="##lineid#" id="#lineid#">#linenumber#</a> #line|expandtab|escape#</span>'
+diffline = '<span><a class="linenr" href="##lineid#" id="#lineid#">#linenumber#</a> #line|expandtab|escape#</span>'
 changelogparent = '
   <tr>
     <th class="parent">parent #rev#:</th>
diff --git a/templates/paper/map b/templates/paper/map
--- a/templates/paper/map
+++ b/templates/paper/map
@@ -52,7 +52,7 @@ filerevision = filerevision.tmpl
 fileannotate = fileannotate.tmpl
 filediff = filediff.tmpl
 filelog = filelog.tmpl
-fileline = '<div class="parity{parity} source"><a href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</div>'
+fileline = '<div class="parity{parity} source"><a href="#{lineid}" id="{lineid}">{linenumber}</a> {line|expandtab|escape}</div>'
 filelogentry = filelogentry.tmpl
 
 annotateline = '
@@ -61,14 +61,14 @@ annotateline = '
       <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#{targetline}"
          title="{node|short}: {desc|escape|firstline}">{author|user}@{rev}</a>
     </td>
-    <td class="source"><a href="#{lineid}" id="{lineid}">{linenumber}</a> {line|escape}</td>
+    <td class="source"><a href="#{lineid}" id="{lineid}">{linenumber}</a> {line|expandtab|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}'
+difflineplus = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> <span class="plusline">{line|expandtab|escape}</span>'
+difflineminus = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> <span class="minusline">{line|expandtab|escape}</span>'
+difflineat = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> <span class="atline">{line|expandtab|escape}</span>'
+diffline = '<a href="#{lineid}" id="{lineid}">{linenumber}</a> {line|expandtab|escape}'
 
 changelogparent = '
   <tr>
diff --git a/templates/spartan/map b/templates/spartan/map
--- a/templates/spartan/map
+++ b/templates/spartan/map
@@ -42,7 +42,7 @@ filerevision = filerevision.tmpl
 fileannotate = fileannotate.tmpl
 filediff = filediff.tmpl
 filelog = filelog.tmpl
-fileline = '<div class="parity#parity#"><a class="lineno" href="##lineid#" id="#lineid#">#linenumber#</a>#line|escape#</div>'
+fileline = '<div class="parity#parity#"><a class="lineno" href="##lineid#" id="#lineid#">#linenumber#</a>#line|expandtab|escape#</div>'
 filelogentry = filelogentry.tmpl
 annotateline = '
   <tr class="parity#parity#">
@@ -53,12 +53,12 @@ annotateline = '
     <td>
       <a class="lineno" href="##lineid#" id="#lineid#">#linenumber#</a>
     </td>
-    <td><pre>#line|escape#</pre></td>
+    <td><pre>#line|expandtab|escape#</pre></td>
   </tr>'
-difflineplus = '<span class="plusline"><a class="lineno" href="##lineid#" id="#lineid#">#linenumber#</a>#line|escape#</span>'
-difflineminus = '<span class="minusline"><a class="lineno" href="##lineid#" id="#lineid#">#linenumber#</a>#line|escape#</span>'
-difflineat = '<span class="atline"><a class="lineno" href="##lineid#" id="#lineid#">#linenumber#</a>#line|escape#</span>'
-diffline = '<a class="lineno" href="##lineid#" id="#lineid#">#linenumber#</a>#line|escape#'
+difflineplus = '<span class="plusline"><a class="lineno" href="##lineid#" id="#lineid#">#linenumber#</a>#line|expandtab|escape#</span>'
+difflineminus = '<span class="minusline"><a class="lineno" href="##lineid#" id="#lineid#">#linenumber#</a>#line|expandtab|escape#</span>'
+difflineat = '<span class="atline"><a class="lineno" href="##lineid#" id="#lineid#">#linenumber#</a>#line|expandtab|escape#</span>'
+diffline = '<a class="lineno" href="##lineid#" id="#lineid#">#linenumber#</a>#line|expandtab|escape#'
 changelogparent = '
   <tr>
     <th class="parent">parent #rev#:</th>



More information about the Mercurial-devel mailing list