@@ -63,52 +63,51 @@ def pygmentize(filenode, **kwargs):
pygmentize function using pygments
@param filenode:
"""
return literal(code_highlight(filenode.content, filenode.lexer, HtmlFormatter(**kwargs)))
def pygmentize_annotation(filenode, **kwargs):
pygmentize function for annotation
color_dict = g.changeset_annotation_colors
def gen_color():
import random
return [str(random.randrange(10, 235)) for _ in xrange(3)]
def get_color_string(cs):
if color_dict.has_key(cs):
col = color_dict[cs]
else:
color_dict[cs] = gen_color()
return "color: rgb(%s) ! important;" % (','.join(col))
def url_func(changeset):
return '%s\n' % (link_to(changeset.raw_id,
return '%s\n' % (link_to('r%s:%s' % (changeset.revision, changeset.raw_id),
url('changeset_home', repo_name='test', revision=changeset.raw_id),
title=_('author') + ':%s rev:%s %s' % (changeset.author, changeset.revision,
changeset.message,),
title=_('author') + ':%s - %s' % (changeset.author, changeset.message,),
style=get_color_string(changeset.raw_id)))
return literal(annotate_highlight(filenode, url_func, **kwargs))
def recursive_replace(str, replace=' '):
Recursive replace of given sign to just one instance
@param str: given string
@param replace:char to find and replace multiple instances
Examples::
>>> recursive_replace("Mighty---Mighty-Bo--sstones",'-')
'Mighty-Mighty-Bo-sstones'
if str.find(replace * 2) == -1:
return str
str = str.replace(replace * 2, replace)
return recursive_replace(str, replace)
def repo_name_slug(value):
Return slug of name of repository
@@ -7,29 +7,32 @@
${h.link_to(u'Home',h.url('/'))}
/
${h.link_to(c.repo_name,h.url('files_home',repo_name=c.repo_name))}
${_('files')}
</%def>
<%def name="page_nav()">
${self.menu('files')}
<%def name="css()">
<link rel="stylesheet" href="/css/monoblue_custom.css" type="text/css" />
<link rel="stylesheet" href="/css/pygments.css" type="text/css" />
<%def name="main()">
<h2 class="no-link no-border">${_('Files')}</h2>
<div id="files_data">
%if c.files_list:
<h2>${_('Location')}: ${h.files_breadcrumbs(c.repo_name,c.cur_rev,c.files_list.path)}</h2>
%if c.files_list.is_dir():
<%include file='files_browser.html'/>
%else:
<%include file='files_source.html'/>
%endif
<h2><a href="#" onClick="javascript:parent.history.back();" target="main">${_('Go back')}</a> ${_('No files at given path')}: "${c.f_path or "/"}" </h2>
<h2>
<a href="#" onClick="javascript:parent.history.back();" target="main">${_('Go back')}</a>
${_('No files at given path')}: "${c.f_path or "/"}"
</h2>
</div>
\ No newline at end of file
@@ -6,39 +6,41 @@
<%def name="breadcrumbs()">
<h2 class="no-link no-border">${_('Annotate')}</h2>
<h2>${_('Location')}: ${h.files_breadcrumbs(c.repo_name,c.cur_rev,c.file.path)}</h2>
<dl class="overview">
<dt>${_('Revision')}</dt>
<dd>r${c.file.last_changeset.revision}:${c.file.last_changeset._short}</dd>
<dt>${_('Size')}</dt>
<dd>${h.format_byte_size(c.file.size,binary=True)}</dd>
<dt>${_('Options')}</dt>
<dd>${h.link_to(_('source'),
h.url('files_home',repo_name=c.repo_name,revision=c.cur_rev,f_path=c.f_path))} / ${h.link_to(_('raw'),
h.url('files_raw_home',repo_name=c.repo_name,revision=c.cur_rev,f_path=c.f_path))}</dd>
<dd>${h.link_to(_('show source'),
h.url('files_home',repo_name=c.repo_name,revision=c.cur_rev,f_path=c.f_path))}
/ ${h.link_to(_('download as raw'),
h.url('files_raw_home',repo_name=c.repo_name,revision=c.cur_rev,f_path=c.f_path))}
</dd>
</dl>
<div id="body" class="codeblock">
<div class="code-header">
<div class="revision">${c.file.name}@r${c.file.last_changeset.revision}:${c.file.last_changeset._short}</div>
<div class="commit" style="font-size:70%">"${c.file_msg}"</div>
<div class="code-body">
${h.pygmentize_annotation(c.file,linenos=True,anchorlinenos=True,lineanchors='S',cssclass="code-highlight")}
<dd>r${c.files_list.last_changeset.revision}:${c.files_list.last_changeset._short}</dd>
<dd>${h.format_byte_size(c.files_list.size,binary=True)}</dd>
<dd>${h.link_to(_('annotate'),
h.url('files_annotate_home',repo_name=c.repo_name,revision=c.cur_rev,f_path=c.f_path))} / ${h.link_to(_('raw'),
<dd>${h.link_to(_('show annotation'),
h.url('files_annotate_home',repo_name=c.repo_name,revision=c.cur_rev,f_path=c.f_path))}
<dt>${_('History')}</dt>
<dd>
${h.form(h.url('files_diff_home',repo_name=c.repo_name,f_path=c.f_path),method='GET')}
${h.hidden('diff2',c.files_list.last_changeset._short)}
${h.select('diff1','',c.file_history)}
${h.submit('diff','diff')}
${h.end_form()}
<div class="revision">${c.files_list.name}@r${c.files_list.last_changeset.revision}:${c.files_list.last_changeset._short}</div>
<div class="commit" style="font-size:70%">"${c.files_list.last_changeset.message}"</div>
${h.pygmentize(c.files_list,linenos=True,anchorlinenos=True,lineanchors='S',cssclass="code-highlight")}
Status change: