             for {name, raw} in @vars
                 context.watch name, => @substitute context
             @substitute context
+
+    class Filter
+        # Apply transformation to variables coming from the context.
+        # Works very similar to bindings.
+        @bind: (name, fn)->
+            FILTERS[name] = fn
+        
+        @get: (name)->
+            FILTERS[name]
+
+    Filter.bind 'urlize', (text)->
+        re = /(https*:\/\/[^\s]+)/g
+        text.replace(re, """<a href="$1" target="_blank" rel="nofollow">$1</a>""")
+
 
             
     class Binding

        vars = getVars str

        for {raw, name} in vars
            value = context.get name
            if value?
                str = str.replace raw, value
            else

    DOM_REGEX                = /[^>]+>/
    BINDING_REGEX            = /\s(data\-[\w\d\-]+)/gim
    SUBSTITUTION_REGEX       = /#\{(.*?)\}/g
    BINDINGS                 = {}
    FILTERS                  = {}
    INTERPOLATION_ATTRIBUTES = ['title', 'style', 'class', 'alt', 'id', 'href']

    class Template
