diff --git a/knowledge/models.py b/knowledge/models.py index 1e58676..6a52e8e 100644 --- a/knowledge/models.py +++ b/knowledge/models.py @@ -144,6 +144,13 @@ def internal(self, save=True): class Question(KnowledgeBase): + + QBODY_HELP_TEXT = 'Please offer details.' + if settings.DJANGO_KNOWLEDGE_MARKUP == 'Markdown': + QBODY_HELP_TEXT += ' Markdown enabled.' + elif settings.DJANGO_KNOWLEDGE_MARKUP == 'Textile': + QBODY_HELP_TEXT += ' Textile enabled.' + is_question = True _requesting_user = None @@ -152,7 +159,7 @@ class Question(KnowledgeBase): help_text=_('Enter your question or suggestion.')) body = models.TextField(blank=True, null=True, verbose_name=_('Description'), - help_text=_('Please offer details. Markdown enabled.')) + help_text=_(QBODY_HELP_TEXT)) status = models.CharField( verbose_name=_('Status'), @@ -249,6 +256,13 @@ def url(self): class Response(KnowledgeBase): + + RBODY_HELP_TEXT = 'Please enter your response.' + if settings.DJANGO_KNOWLEDGE_MARKUP == 'Markdown': + RBODY_HELP_TEXT += ' Markdown enabled.' + elif settings.DJANGO_KNOWLEDGE_MARKUP == 'Textile': + RBODY_HELP_TEXT += ' Textile enabled.' + is_response = True question = models.ForeignKey('knowledge.Question', @@ -256,7 +270,7 @@ class Response(KnowledgeBase): body = models.TextField(blank=True, null=True, verbose_name=_('Response'), - help_text=_('Please enter your response. Markdown enabled.')) + help_text=_(RBODY_HELP_TEXT)) status = models.CharField( verbose_name=_('Status'), max_length=32, choices=STATUSES_EXTENDED, diff --git a/knowledge/settings.py b/knowledge/settings.py index 33a1c6a..00eec69 100644 --- a/knowledge/settings.py +++ b/knowledge/settings.py @@ -16,3 +16,5 @@ SLUG_URLS = getattr(settings, 'KNOWLEDGE_SLUG_URLS', True) BASE_TEMPLATE = getattr(settings, 'KNOWLEDGE_BASE_TEMPLATE', 'django_knowledge/base.html') + +DJANGO_KNOWLEDGE_MARKUP = getattr(settings, 'KNOWLEDGE_BASE_MARKUP', False) diff --git a/knowledge/templates/django_knowledge/thread.html b/knowledge/templates/django_knowledge/thread.html index 858037e..db7cd58 100644 --- a/knowledge/templates/django_knowledge/thread.html +++ b/knowledge/templates/django_knowledge/thread.html @@ -1,7 +1,6 @@ {% extends 'django_knowledge/inner.html' %} {% load i18n %} -{% load markup %} {% load knowledge_tags %} {% load url from future %} @@ -23,7 +22,7 @@
{{ question.get_name }}  {{ question.added }}
- {{ question.body|striptags|markdown }} + {% render_markup question.body|striptags %} {% include "django_knowledge/mod_bar.html" with allowed_mods=allowed_mods.question type="question" node=question %} @@ -48,7 +47,7 @@
{{ response.get_name }}  {{ response.added }}
- {{ response.body|striptags|markdown }} + {% render_markup response.body|striptags %} {% include "django_knowledge/mod_bar.html" with allowed_mods=allowed_mods.response type="response" node=response %} diff --git a/knowledge/templatetags/knowledge_tags.py b/knowledge/templatetags/knowledge_tags.py index 7c1e3a3..0deb278 100644 --- a/knowledge/templatetags/knowledge_tags.py +++ b/knowledge/templatetags/knowledge_tags.py @@ -3,6 +3,13 @@ from django import template +from knowledge import settings + +if settings.DJANGO_KNOWLEDGE_MARKUP == 'Markdown': + import markdown +elif settings.DJANGO_KNOWLEDGE_MARKUP == 'Textile': + import textile + register = template.Library() @@ -25,3 +32,16 @@ def page_query(request, page_num): qs = request.GET.copy() qs['page'] = page_num return qs.urlencode().replace('&', '&') + +@register.simple_tag +def render_markup(bodyblock): + """ + Based on setting value, convert body text using + the correct renderer, else just return string + """ + if settings.DJANGO_KNOWLEDGE_MARKUP == 'Markdown': + return markdown.markdown(bodyblock) + elif settings.DJANGO_KNOWLEDGE_MARKUP == 'Textile': + return textile.textile(bodyblock) + else: + return bodyblock