diff --git a/formfactory/fields.py b/formfactory/fields.py index 78772bf..b807b8d 100644 --- a/formfactory/fields.py +++ b/formfactory/fields.py @@ -1,15 +1,17 @@ +import markdown + from django.forms.fields import Field +from django.utils.text import mark_safe from formfactory import widgets -# TODO add support for paragraph field. Mark safe in templates. class ParagraphField(Field): widget = widgets.ParagraphWidget def __init__(self, paragraph, *args, **kwargs): super(ParagraphField, self).__init__(*args, **kwargs) - # Always empty out label for a pragraph field. + # Always empty out label for a paragraph field. self.label = "" # No matter what is set, this field should never be required. @@ -17,8 +19,9 @@ def __init__(self, paragraph, *args, **kwargs): self.widget.is_required = False # Pass the paragraph text to the widget without needing to override - # widgit __init__. + # widget __init__. Process markdown here, its up to custom fields to + # worry about what they are trying to do, not factory.py attrs = self.widget.build_attrs(self.widget.attrs, - {"paragraph": paragraph} + {"paragraph": markdown.markdown(paragraph)} ) self.widget.attrs = attrs diff --git a/formfactory/templates/formfactory/forms/widgets/paragraph.html b/formfactory/templates/formfactory/forms/widgets/paragraph.html index 9b7b5ab..2708076 100644 --- a/formfactory/templates/formfactory/forms/widgets/paragraph.html +++ b/formfactory/templates/formfactory/forms/widgets/paragraph.html @@ -1 +1 @@ -{{ widget }} +{{ widget.attrs.paragraph|safe }}