Author: test
Date: 2005-12-07 21:06:36 +0000 (Wed, 07 Dec 2005)
New Revision: 1370

Modified:
   FormEncode/trunk/docs/news.txt
   FormEncode/trunk/formencode/htmlfill.py
Log:
Added a new formatter

Modified: FormEncode/trunk/docs/news.txt
===================================================================
--- FormEncode/trunk/docs/news.txt      2005-12-07 20:37:00 UTC (rev 1369)
+++ FormEncode/trunk/docs/news.txt      2005-12-07 21:06:36 UTC (rev 1370)
@@ -3,6 +3,15 @@
 
 .. contents::
 
+SVN trunk
+---------
+
+* Added ``htmlfill.default_formatter_dict``, and you can poke new
+  formatters in there to effective register them.
+
+* Added an ``escapenl`` formatter (nl=newline) that escapes HTML and
+  turns newlines into ``<br>``.
+
 0.4
 ---
 

Modified: FormEncode/trunk/formencode/htmlfill.py
===================================================================
--- FormEncode/trunk/formencode/htmlfill.py     2005-12-07 20:37:00 UTC (rev 
1369)
+++ FormEncode/trunk/formencode/htmlfill.py     2005-12-07 21:06:36 UTC (rev 
1370)
@@ -101,14 +101,32 @@
         return cgi.escape(str(v), 1)
 
 def default_formatter(error):
+    """
+    Formatter that escapes the error, wraps the error in a span with
+    class ``error-message``, and adds a ``<br>``
+    """
     return '<span class="error-message">%s</span><br />\n' % html_quote(error)
 
 def none_formatter(error):
+    """
+    Formatter that does nothing, no escaping HTML, nothin'
+    """
     return error
 
 def escape_formatter(error):
+    """
+    Formatter that escapes HTML, no more.
+    """
     return html_quote(error)
 
+def escapenl_formatter(error):
+    """
+    Formatter that escapes HTML, and translates newlines to ``<br>``
+    """
+    error = html_quote(error)
+    error = error.replace('\n', '<br>\n')
+    return error
+
 class FillingParser(HTMLParser.HTMLParser):
     r"""
     Fills HTML with default values, as in a form.
@@ -164,9 +182,7 @@
         self.used_keys = {}
         self.used_errors = {}
         if error_formatters is None:
-            self.error_formatters = {'default': default_formatter,
-                                     'none': none_formatter,
-                                     'escape': escape_formatter}
+            self.error_formatters = default_formatter_dict
         else:
             self.error_formatters = error_formatters
         self.error_class = error_class
@@ -500,3 +516,9 @@
             raise Exception(
                 "You must .close() a parser instance before getting "
                 "the text from it")
+
+# This can potentially be extended globally
+default_formatter_dict = {'default': default_formatter,
+                          'none': none_formatter,
+                          'escape': escape_formatter,
+                          'escapenl': escapenl_formatter}



-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click
_______________________________________________
FormEncode-CVS mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/formencode-cvs

Reply via email to