Changeset 1709

Show
Ignore:
Timestamp:
07/23/08 13:10:41 (20 months ago)
Author:
JensDiemer
Message:

blog plugin: use a simple markup for comments: ticket:213

Location:
trunk/pylucid
Files:
4 modified

Legend:

Unmodified
Added
Removed
  • trunk/pylucid/media/PyLucid/internal_page/blog/display_blog.html

    r1705 r1709  
    5555                      </div> 
    5656 
    57                       <pre>{{ comment.content }}</pre> 
     57                      {{ comment.html_content }} 
    5858 
    5959                      <small><p class="dateinfo"> 
  • trunk/pylucid/PyLucid/plugins_internal/blog/blog.py

    r1705 r1709  
    2828from django.http import HttpResponse 
    2929from django.core.mail import send_mail 
    30 #from django.utils.safestring import mark_safe 
    3130#from django.utils.encoding import force_unicode 
    3231from django.utils.translation import ugettext as _ 
     
    9493        # Change the page title. 
    9594        self.current_page.title = self.preferences["blog_title"] 
    96  
    9795 
    9896    def _add_comment_admin_urls(self, comments): 
     
    131129                else: 
    132130                    comments = comments.filter(is_public = True).all() 
     131 
    133132                entry.all_comments = comments 
    134133            else: 
  • trunk/pylucid/PyLucid/plugins_internal/blog/models.py

    r1701 r1709  
    2020from django.contrib.auth.models import User 
    2121from django.utils.translation import ugettext as _ 
     22from django.utils.html import strip_tags 
     23from django.utils.safestring import mark_safe 
    2224 
    23 from PyLucid.tools.content_processors import apply_markup 
     25from PyLucid.tools.content_processors import apply_markup, fallback_markup 
    2426from PyLucid.models.Page import MARKUPS 
    2527 
     
    6668        null=True, blank=True 
    6769    ) 
     70 
     71    def html_content(self): 
     72        """ 
     73        returns the content as html used a simple markup. 
     74        """ 
     75        safe_content = strip_tags(self.content) 
     76        content = fallback_markup(safe_content) 
     77        return mark_safe(content) 
    6878 
    6979    class Admin: 
  • trunk/pylucid/PyLucid/tools/content_processors.py

    r1634 r1709  
    2121""" 
    2222 
     23import re 
     24 
     25if __name__ == "__main__": 
     26    # For doctest only 
     27    import os 
     28    os.environ["DJANGO_SETTINGS_MODULE"] = "PyLucid.settings" 
     29 
    2330from django.conf import settings 
    2431from django.template import Template, Context 
     
    3643# MARKUP 
    3744 
     45BLOCK_RE = re.compile("\n{2,}") 
     46 
     47LINK_RE = re.compile( 
     48    r'''(?<!=")(?P<url>(http|ftp|svn|irc)://(?P<title>[^\s\<]+))(?uimx)''' 
     49) 
     50 
    3851def fallback_markup(content): 
    3952    """ 
    4053    A simplest markup, build only paragraphs. 
     54    >>> fallback_markup("line one\\nline two\\n\\nnext block") 
     55    '<p>line one<br />\\nline two</p>\\n\\n<p>next block</p>' 
     56 
     57    >>> fallback_markup("url: http://pylucid.org END") 
     58    '<p>url: <a href="http://pylucid.org">pylucid.org</a> END</p>' 
    4159    """ 
    42     import re 
    4360    content = content.replace("\r\n", "\n").replace("\r","\n") 
    44     blocks = re.split("\n{2,}", content) 
     61    blocks = BLOCK_RE.split(content) 
    4562    blocks = [line.replace("\n", "<br />\n") for line in blocks] 
    4663    content = "<p>" + "</p>\n\n<p>".join(blocks) + "</p>" 
     64    content = LINK_RE.sub(r'<a href="\g<url>">\g<title></a>', content) 
    4765    return content 
    4866 
     
    156174 
    157175 
    158  
     176if __name__ == "__main__": 
     177    import doctest 
     178    doctest.testmod( 
     179#        verbose=True 
     180        verbose=False 
     181    ) 
     182    print "DocTest end."