@@ -2297,7 +2297,7 @@ def _graphnodeformatter(ui, displayer):
return templatekw.showgraphnode # fast path for "{graphnode}"
spec = templater.unquotestring(spec)
- templ = formatter.maketemplater(ui, 'graphnode', spec)
+ templ = formatter.maketemplater(ui, spec)
cache = {}
if isinstance(displayer, changeset_templater):
cache = displayer.cache # reuse cache of slow templates
@@ -2309,7 +2309,7 @@ def _graphnodeformatter(ui, displayer):
props['repo'] = repo
props['ui'] = repo.ui
props['revcache'] = {}
- return templater.stringify(templ('graphnode', **props))
+ return templ.render(props)
return formatnode
def displaygraph(ui, repo, dag, displayer, edgefn, getrenamed=None,
@@ -2121,9 +2121,9 @@ def debugtemplate(ui, repo, tmpl, **opts
ui.note(("* expanded:\n"), templater.prettyformat(newtree), '\n')
if revs is None:
- k = 'debugtemplate'
- t = formatter.maketemplater(ui, k, tmpl)
- ui.write(templater.stringify(t(k, ui=ui, **props)))
+ t = formatter.maketemplater(ui, tmpl)
+ props['ui'] = ui
+ ui.write(t.render(props))
else:
displayer = cmdutil.makelogtemplater(ui, repo, tmpl)
for r in revs:
@@ -534,10 +534,10 @@ def _formatconflictmarker(repo, ctx, tem
props['templ'] = template
props['ctx'] = ctx
props['repo'] = repo
- templateresult = template('conflictmarker', **props)
+ templateresult = template.render(props)
label = ('%s:' % label).ljust(pad + 1)
- mark = '%s %s' % (label, templater.stringify(templateresult))
+ mark = '%s %s' % (label, templateresult)
if mark:
mark = mark.splitlines()[0] # split for safety
@@ -566,7 +566,7 @@ def _formatlabels(repo, fcd, fco, fca, l
ui = repo.ui
template = ui.config('ui', 'mergemarkertemplate', _defaultconflictmarker)
template = templater.unquotestring(template)
- tmpl = formatter.maketemplater(ui, 'conflictmarker', template)
+ tmpl = formatter.maketemplater(ui, template)
pad = max(len(l) for l in labels)
@@ -431,10 +431,13 @@ def loadtemplater(ui, spec, cache=None):
assert not (spec.tmpl and spec.mapfile)
if spec.mapfile:
return templater.templater.frommapfile(spec.mapfile, cache=cache)
- return maketemplater(ui, spec.ref, spec.tmpl, cache=cache)
+ return _maketemplater(ui, spec.ref, spec.tmpl, cache=cache)
-def maketemplater(ui, topic, tmpl, cache=None):
+def maketemplater(ui, tmpl, cache=None):
"""Create a templater from a string template 'tmpl'"""
+ return _maketemplater(ui, '', tmpl, cache=cache)
+
+def _maketemplater(ui, topic, tmpl, cache=None):
aliases = ui.configitems('templatealias')
t = templater.templater(cache=cache, aliases=aliases)
if tmpl:
@@ -1298,6 +1298,10 @@ class templater(object):
(self.map[t][1], inst.args[1]))
return self.cache[t]
+ def render(self, mapping):
+ """Render the default unnamed template and return result as string"""
+ return stringify(self('', **mapping))
+
def __call__(self, t, **mapping):
ttype = t in self.map and self.map[t][0] or 'default'
if ttype not in self.ecache: