summaryrefslogtreecommitdiff
path: root/wiki
diff options
context:
space:
mode:
Diffstat (limited to 'wiki')
-rw-r--r--wiki/models.py23
-rw-r--r--wiki/templatetags/wikitags.py95
-rw-r--r--wiki/views.py3
3 files changed, 65 insertions, 56 deletions
diff --git a/wiki/models.py b/wiki/models.py
index 2b8b16fc..85f0726c 100644
--- a/wiki/models.py
+++ b/wiki/models.py
@@ -2,15 +2,18 @@ from django.db import models
from django.contrib.auth.models import User
class Wikipage(models.Model):
- """Wiki page storage"""
- title = models.CharField(maxlength=255)
- content = models.TextField()
- last_author = models.ForeignKey(User)
- class Meta:
- db_table = 'wikipages'
+ """Wiki page storage"""
+ title = models.CharField(maxlength=255)
+ content = models.TextField()
+ last_author = models.ForeignKey(User)
+ class Meta:
+ db_table = 'wikipages'
- def editurl(self):
- return "/wiki/edit/" + self.title + "/"
+ def editurl(self):
+ return "/wiki/edit/" + self.title + "/"
+
+ def __repr__(self):
+ return self.title
+
+# vim: set ts=4 sw=4 et:
- def __repr__(self):
- return self.title
diff --git a/wiki/templatetags/wikitags.py b/wiki/templatetags/wikitags.py
index e8a8a035..c8c1cd38 100644
--- a/wiki/templatetags/wikitags.py
+++ b/wiki/templatetags/wikitags.py
@@ -6,52 +6,55 @@ import re
register = Library()
class WikiProcessor:
- def run(self, lines):
- in_table = False
- for i in range(len(lines)):
- # Linebreaks
- lines[i] = re.sub("%%", "<br />", lines[i])
- # Internal Links
- lines[i] = re.sub("\(\(([A-z0-9 :/-]+)\)\)", "<a href=\"/wiki/\\1\">\\1</a>", lines[i])
- # Small Text
- lines[i] = re.sub("----([^----]+)----", "<span style=\"font-size:x-small\">\\1</span>", lines[i])
- lines[i] = re.sub("--([^--]+)--", "<span style=\"font-size:small\">\\1</span>", lines[i])
- # TT text
- lines[i] = re.sub("\{\{([^}\}]+)\}\}", "<tt>\\1</tt>", lines[i])
- # Tables
- m = re.match("(\|\|)", lines[i])
- if m:
- count = len(re.findall("(\|\|+)", lines[i]))
- first = True
- m2 = re.search("(\|\|+)", lines[i])
- while m2 and count:
- count -= 1
- colspan = len(m2.group(1)) / 2
- if first:
- repl = "<td colspan=\"%d\">" % (colspan)
- first = False
- elif count == 0:
- repl = "</td>"
- else:
- repl = "</td><td colspan=\"%d\">" % (colspan)
- lines[i] = re.sub("(\|\|+)", repl, lines[i], 1)
- # find the next chunk
- m2 = re.search("(\|\|+)", lines[i])
- lines[i] = "<tr>" + lines[i] + "</tr>"
- if not in_table:
- lines[i] = "<table>" + lines[i]
- in_table = True
- elif in_table:
- lines[i] = "</table>" + lines[i]
- in_table = False
- # close leftover table, if open
- if in_table:
- lines[len(lines)] = lines[len(lines)] + "</table>"
- return lines
+ def run(self, lines):
+ in_table = False
+ for i in range(len(lines)):
+ # Linebreaks
+ lines[i] = re.sub("%%", "<br />", lines[i])
+ # Internal Links
+ lines[i] = re.sub("\(\(([A-z0-9 :/-]+)\)\)", "<a href=\"/wiki/\\1\">\\1</a>", lines[i])
+ # Small Text
+ lines[i] = re.sub("----([^----]+)----", "<span style=\"font-size:x-small\">\\1</span>", lines[i])
+ lines[i] = re.sub("--([^--]+)--", "<span style=\"font-size:small\">\\1</span>", lines[i])
+ # TT text
+ lines[i] = re.sub("\{\{([^}\}]+)\}\}", "<tt>\\1</tt>", lines[i])
+ # Tables
+ m = re.match("(\|\|)", lines[i])
+ if m:
+ count = len(re.findall("(\|\|+)", lines[i]))
+ first = True
+ m2 = re.search("(\|\|+)", lines[i])
+ while m2 and count:
+ count -= 1
+ colspan = len(m2.group(1)) / 2
+ if first:
+ repl = "<td colspan=\"%d\">" % (colspan)
+ first = False
+ elif count == 0:
+ repl = "</td>"
+ else:
+ repl = "</td><td colspan=\"%d\">" % (colspan)
+ lines[i] = re.sub("(\|\|+)", repl, lines[i], 1)
+ # find the next chunk
+ m2 = re.search("(\|\|+)", lines[i])
+ lines[i] = "<tr>" + lines[i] + "</tr>"
+ if not in_table:
+ lines[i] = "<table>" + lines[i]
+ in_table = True
+ elif in_table:
+ lines[i] = "</table>" + lines[i]
+ in_table = False
+ # close leftover table, if open
+ if in_table:
+ lines[len(lines)] = lines[len(lines)] + "</table>"
+ return lines
@register.filter
def wikify(value):
- md = markdown.Markdown(value)
- md.preprocessors.insert(0, WikiProcessor())
- html = md.toString()
- return html
+ md = markdown.Markdown(value)
+ md.preprocessors.insert(0, WikiProcessor())
+ html = md.toString()
+ return html
+
+# vim: set ts=4 sw=4 et:
+
diff --git a/wiki/views.py b/wiki/views.py
index 9f7bd78d..796f5f98 100644
--- a/wiki/views.py
+++ b/wiki/views.py
@@ -59,3 +59,6 @@ def delete(request):
return HttpResponseRedirect("/wiki/")
page.delete()
return HttpResponseRedirect("/wiki/")
+
+# vim: set ts=4 sw=4 et:
+