Changeset 1709
- Timestamp:
- 07/23/08 13:10:41 (4 months ago)
- Location:
- trunk/pylucid
- Files:
-
- 4 modified
-
media/PyLucid/internal_page/blog/display_blog.html (modified) (1 diff)
-
PyLucid/plugins_internal/blog/blog.py (modified) (3 diffs)
-
PyLucid/plugins_internal/blog/models.py (modified) (2 diffs)
-
PyLucid/tools/content_processors.py (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/pylucid/media/PyLucid/internal_page/blog/display_blog.html
r1705 r1709 55 55 </div> 56 56 57 <pre>{{ comment.content }}</pre>57 {{ comment.html_content }} 58 58 59 59 <small><p class="dateinfo"> -
trunk/pylucid/PyLucid/plugins_internal/blog/blog.py
r1705 r1709 28 28 from django.http import HttpResponse 29 29 from django.core.mail import send_mail 30 #from django.utils.safestring import mark_safe31 30 #from django.utils.encoding import force_unicode 32 31 from django.utils.translation import ugettext as _ … … 94 93 # Change the page title. 95 94 self.current_page.title = self.preferences["blog_title"] 96 97 95 98 96 def _add_comment_admin_urls(self, comments): … … 131 129 else: 132 130 comments = comments.filter(is_public = True).all() 131 133 132 entry.all_comments = comments 134 133 else: -
trunk/pylucid/PyLucid/plugins_internal/blog/models.py
r1701 r1709 20 20 from django.contrib.auth.models import User 21 21 from django.utils.translation import ugettext as _ 22 from django.utils.html import strip_tags 23 from django.utils.safestring import mark_safe 22 24 23 from PyLucid.tools.content_processors import apply_markup 25 from PyLucid.tools.content_processors import apply_markup, fallback_markup 24 26 from PyLucid.models.Page import MARKUPS 25 27 … … 66 68 null=True, blank=True 67 69 ) 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) 68 78 69 79 class Admin: -
trunk/pylucid/PyLucid/tools/content_processors.py
r1634 r1709 21 21 """ 22 22 23 import re 24 25 if __name__ == "__main__": 26 # For doctest only 27 import os 28 os.environ["DJANGO_SETTINGS_MODULE"] = "PyLucid.settings" 29 23 30 from django.conf import settings 24 31 from django.template import Template, Context … … 36 43 # MARKUP 37 44 45 BLOCK_RE = re.compile("\n{2,}") 46 47 LINK_RE = re.compile( 48 r'''(?<!=")(?P<url>(http|ftp|svn|irc)://(?P<title>[^\s\<]+))(?uimx)''' 49 ) 50 38 51 def fallback_markup(content): 39 52 """ 40 53 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>' 41 59 """ 42 import re43 60 content = content.replace("\r\n", "\n").replace("\r","\n") 44 blocks = re.split("\n{2,}",content)61 blocks = BLOCK_RE.split(content) 45 62 blocks = [line.replace("\n", "<br />\n") for line in blocks] 46 63 content = "<p>" + "</p>\n\n<p>".join(blocks) + "</p>" 64 content = LINK_RE.sub(r'<a href="\g<url>">\g<title></a>', content) 47 65 return content 48 66 … … 156 174 157 175 158 176 if __name__ == "__main__": 177 import doctest 178 doctest.testmod( 179 # verbose=True 180 verbose=False 181 ) 182 print "DocTest end."
