diff --git a/python/LbNightlyTools/HTMLUtils.py b/python/LbNightlyTools/HTMLUtils.py
index 6ab7ecd9e244b807d28271f2d134263aa3bf4973..01ca2a1e19dc45e6b512188ed7f2fb632eee62ff 100644
--- a/python/LbNightlyTools/HTMLUtils.py
+++ b/python/LbNightlyTools/HTMLUtils.py
@@ -97,7 +97,8 @@ class XTerm2HTML(object):
 
     def __init__(self, first_line=1, show_line_no=False,
                  for_bootstrap=False, line_prefix='',
-                 is_escaped=False):
+                 is_escaped=False,
+                 plugins_function=[]):
         '''
         Initialize the conversion instance.
         An optional first_line can be provided if the output of the processing
@@ -111,6 +112,7 @@ class XTerm2HTML(object):
         self.for_bootstrap = for_bootstrap
         self.line_prefix = line_prefix
         self.is_escaped = is_escaped
+        self.plugins_function = plugins_function
 
     def parse_code(self, code):
         '''
@@ -214,6 +216,10 @@ class XTerm2HTML(object):
         '''
         Choose the correct function to process the data
         '''
+        # Preprocess escape all the text
+        chunk = cgi.escape(chunk, quote=True)
+        for plugin_function in self.plugins_function:
+            chunk = plugin_function(chunk)
         if self.for_bootstrap:
             return self._bootstrap_process(chunk)
         return self._normal_process(chunk)
@@ -259,7 +265,7 @@ class XTerm2HTML(object):
                             data.append('<span class="{}">'.format(new_class))
                         old_class = new_class
                     # flush text
-                    data.append(cgi.escape(line[pos:start], quote=True))
+                    data.append(line[pos:start])
 
                 if m:
                     # update current style
@@ -321,7 +327,7 @@ class XTerm2HTML(object):
                         data.append('<samp>%s'
                                     '</samp>' % line[pos:start])
                     else:
-                        data.append(cgi.escape(line[pos:start], quote=True))
+                        data.append(line[pos:start])
 
                 if m:
                     # update current style
@@ -339,13 +345,14 @@ class XTerm2HTML(object):
 
 
 def convertFile(src, dst, show_line_no=False, for_bootstrap=False,
-                line_prefix=''):
+                line_prefix='', plugins_function=[]):
     '''
     Small helper to convert a text (ANSI) file to HTML.
     '''
     from os.path import basename
     conv = XTerm2HTML(show_line_no=show_line_no, for_bootstrap=for_bootstrap,
-                      line_prefix=line_prefix)
+                      line_prefix=line_prefix,
+                      plugins_function=plugins_function)
     with open(dst, 'w') as dst_file, open(src) as src_file:
         dst_file.write(conv.head(title=basename(src)))
         dst_file.write(conv.process(src_file.read()))
@@ -373,10 +380,10 @@ if __name__ == '__main__':
     import sys
     if '--convertFile' in sys.argv:
         src = sys.argv[sys.argv.index('--convertFile') + 1]
+        plugin = []
         dest = src + '.html'
         convertFile(src, dest, show_line_no='--show-line-no' in sys.argv,
-                    for_bootstrap='--boostrap' in sys.argv,
-                    line_prefix='test')
+                    for_bootstrap='--boostrap' in sys.argv)
     else:
         conv = XTerm2HTML(show_line_no='--show-line-no' in sys.argv,
                           for_bootstrap='--boostrap' in sys.argv)