Create a custom filter

Objective

This page shows you how to create a custom filter. For that, we are going to write a python script, and add it as an extension.

Our filter will convert the text passed to it to uppercase.

Write script

First step, write the script and save it somewhere.

Toggle line numbers
   1 from mercurial import templatefilters
   2 
   3 def upper(s):
   4     return s.upper()
   5 
   6 def extsetup(ui):
   7     templatefilters.filters["upper"] = upper

Add Extension

In mercurial.ini, add this script under the [extensions] section.

[extensions]
upper = ~/.hgext/myfeature.py

(if this doesn't work, see Using Mercurial Extensions for help on configuring extensions)

Example

>hg tip --template "{author|upper}\n"
GUIDO VAN ROSSUM <BDFL@PYTHON.ORG>