Mercurial > public > mercurial-scm > hg
comparison mercurial/templater.py @ 2191:c2e43535d4d1
make templater bit more flexible and efficient for external users.
author | Vadim Gelfer <vadim.gelfer@gmail.com> |
---|---|
date | Wed, 03 May 2006 14:35:17 -0700 |
parents | e3eba577a0ae |
children | f1986a61ccff |
comparison
equal
deleted
inserted
replaced
2190:b67fcd91dd1b | 2191:c2e43535d4d1 |
---|---|
266 fp.write('\n') | 266 fp.write('\n') |
267 return fp.getvalue() | 267 return fp.getvalue() |
268 | 268 |
269 common_filters = { | 269 common_filters = { |
270 "addbreaks": nl2br, | 270 "addbreaks": nl2br, |
271 "basename": os.path.basename, | |
271 "age": age, | 272 "age": age, |
272 "date": lambda x: util.datestr(x), | 273 "date": lambda x: util.datestr(x), |
273 "domain": domain, | 274 "domain": domain, |
274 "email": email, | 275 "email": email, |
275 "escape": lambda x: cgi.escape(x, True), | 276 "escape": lambda x: cgi.escape(x, True), |
334 dest.write(t) | 335 dest.write(t) |
335 | 336 |
336 def write_header(self, thing): | 337 def write_header(self, thing): |
337 self.write(thing, header=True) | 338 self.write(thing, header=True) |
338 | 339 |
339 def show(self, rev=0, changenode=None, brinfo=None): | 340 def show(self, rev=0, changenode=None, brinfo=None, changes=None, |
341 **props): | |
340 '''show a single changeset or file revision''' | 342 '''show a single changeset or file revision''' |
341 log = self.repo.changelog | 343 log = self.repo.changelog |
342 if changenode is None: | 344 if changenode is None: |
343 changenode = log.node(rev) | 345 changenode = log.node(rev) |
344 elif not rev: | 346 elif not rev: |
345 rev = log.rev(changenode) | 347 rev = log.rev(changenode) |
346 | 348 if changes is None: |
347 changes = log.read(changenode) | 349 changes = log.read(changenode) |
348 | 350 |
349 def showlist(name, values, plural=None, **args): | 351 def showlist(name, values, plural=None, **args): |
350 '''expand set of values. | 352 '''expand set of values. |
351 name is name of key in template map. | 353 name is name of key in template map. |
352 values is list of strings or dicts. | 354 values is list of strings or dicts. |
451 def showfiles(**args): | 453 def showfiles(**args): |
452 for x in showlist('file', changes[3], **args): yield x | 454 for x in showlist('file', changes[3], **args): yield x |
453 showadds = '' | 455 showadds = '' |
454 showdels = '' | 456 showdels = '' |
455 | 457 |
456 props = { | 458 defprops = { |
457 'author': changes[1], | 459 'author': changes[1], |
458 'branches': showbranches, | 460 'branches': showbranches, |
459 'date': changes[2], | 461 'date': changes[2], |
460 'desc': changes[4], | 462 'desc': changes[4], |
461 'file_adds': showadds, | 463 'file_adds': showadds, |
465 'node': hex(changenode), | 467 'node': hex(changenode), |
466 'parents': showparents, | 468 'parents': showparents, |
467 'rev': rev, | 469 'rev': rev, |
468 'tags': showtags, | 470 'tags': showtags, |
469 } | 471 } |
472 props = props.copy() | |
473 props.update(defprops) | |
470 | 474 |
471 try: | 475 try: |
472 if self.ui.debugflag and 'header_debug' in self.t: | 476 if self.ui.debugflag and 'header_debug' in self.t: |
473 key = 'header_debug' | 477 key = 'header_debug' |
474 elif self.ui.quiet and 'header_quiet' in self.t: | 478 elif self.ui.quiet and 'header_quiet' in self.t: |