From f5ddbafcb0899d2c95d8512b1316eaeeee9bedab Mon Sep 17 00:00:00 2001
From: substantialnoninfringinguser <substantialnoninfringinguser@gmail.com>
Date: Wed, 13 May 2009 05:18:26 +0100
Subject: [PATCH] [svn] Wiki_markup imporved to include paragraphs wiki_to_html
 should be used when the field will include paragraphs wiki_to_html_short
 should be used when the field will not include paragraphs Copied from
 http://cucc@cucc.survex.com/svn/trunk/expoweb/troggle/, rev. 8061 by julian @
 11/6/2008 11:24 PM

---
 expo/templatetags/wiki_markup.py | 15 ++++++++++++++-
 templates/cave.html              | 14 +++++++-------
 templates/caveindex.html         |  2 +-
 templates/logbookentry.html      |  1 -
 templates/person.html            |  8 +++++---
 5 files changed, 27 insertions(+), 13 deletions(-)

diff --git a/expo/templatetags/wiki_markup.py b/expo/templatetags/wiki_markup.py
index 7634485..e2a9d7e 100644
--- a/expo/templatetags/wiki_markup.py
+++ b/expo/templatetags/wiki_markup.py
@@ -34,6 +34,17 @@ def wiki_list(line, listdepth):
 @register.filter()
 @stringfilter
 def wiki_to_html(value, autoescape=None):
+    #find paragraphs
+    outValue = ""
+    for paragraph in re.split("\n\s*?\n", value, re.DOTALL):
+        outValue += "<p>"
+        outValue += wiki_to_html_short(paragraph, autoescape)
+        outValue += "</p>\n"
+    return mark_safe(outValue)
+
+@register.filter()
+@stringfilter
+def wiki_to_html_short(value, autoescape=None):
     if autoescape:
         value = conditional_escape(value)
     #deescape doubly escaped characters
@@ -42,9 +53,11 @@ def wiki_to_html(value, autoescape=None):
     value = re.sub("&#39;&#39;&#39;&#39;([^']+)&#39;&#39;&#39;&#39;", r"<b><i>\1</i></b>", value, re.DOTALL)
     value = re.sub("&#39;&#39;&#39;([^']+)&#39;&#39;&#39;", r"<b>\1</b>", value, re.DOTALL)
     value = re.sub("&#39;&#39;([^']+)&#39;&#39;", r"<i>\1</i>", value, re.DOTALL)
+    #make cave links
+    value = re.sub("\[\[\s*cave:([^\s]+)\s*\s*\]\]", r'<a href="/troggle/cave/\1/">\1</a>', value, re.DOTALL)
     #Make lists from lines starting with lists of [stars and hashes]
-    listdepth = []
     outValue = ""
+    listdepth = []
     for line in value.split("\n"):
         t, listdepth = wiki_list(line, listdepth)
         outValue += t
diff --git a/templates/cave.html b/templates/cave.html
index a043e7f..e8c597e 100644
--- a/templates/cave.html
+++ b/templates/cave.html
@@ -8,20 +8,20 @@
 <tr>
     <th id="kat_no">
         {% if cave.kataster_number %}
-            {{ cave.kataster_number|wiki_to_html }}
+            {{ cave.kataster_number|wiki_to_html_short }}
             {% if cave.entrancelist %}
-                - {{ cave.entrancelist|wiki_to_html }}
+                - {{ cave.entrancelist|wiki_to_html_short }}
             {% endif %}
             {% if cave.unofficial_number %}
-                <br />({{ cave.unofficial_number|wiki_to_html }})
+                <br />({{ cave.unofficial_number|wiki_to_html_short }})
             {% endif %}
         {% endif %}
     </th>
     <th id="name">
-         {{ cave.official_name|wiki_to_html }}
+         {{ cave.official_name|wiki_to_html_short }}
     </th>
     <th id="status">
-         {{ cave.kataster_code|wiki_to_html }}
+         {{ cave.kataster_code|wiki_to_html_short }}
     </th>
 </tr>
 </table>
@@ -29,9 +29,9 @@
 {% if cave.entrances %}
     <h2>Entrances</h2>
     {% for ent in cave.entrances %}
-        <a href = "./{{ ent.entrance_letter|wiki_to_html }}">{{ ent.entrance_letter|wiki_to_html }}</a>
+        <a href = "./{{ ent.entrance_letter|wiki_to_html_short }}">{{ ent.entrance_letter|wiki_to_html_short }}</a>
         {% if ent.entrance.marking %}
-            Marking: {{ ent.entrance.marking_val|wiki_to_html }}
+            Marking: {{ ent.entrance.marking_val|wiki_to_html_short }}
         {% endif %}
         <br>
     {% endfor %}
diff --git a/templates/caveindex.html b/templates/caveindex.html
index a19752f..445eddf 100644
--- a/templates/caveindex.html
+++ b/templates/caveindex.html
@@ -5,6 +5,6 @@
 
 {% block content %}
 {% for cave in caves %}
-<p>{{ cave }} <a href="./{{ cave.kataster_number }}/">{{ cave.official_name|wiki_to_html }}</a> </p>
+<p>{{ cave }} <a href="./{{ cave.kataster_number }}/">{{ cave.official_name|wiki_to_html_short }}</a> </p>
 {% endfor %}
 {% endblock %}
\ No newline at end of file
diff --git a/templates/logbookentry.html b/templates/logbookentry.html
index f1a1887..b76d9ab 100644
--- a/templates/logbookentry.html
+++ b/templates/logbookentry.html
@@ -20,7 +20,6 @@
         </li>
     {% endfor %}
     </ul>
-    <em>[wiki_to_html doesn't do paragraphs.  don't know where it is located]</em>
     <div>{{logbookentry.text|wiki_to_html}}</div>
     </div>
 {% endblock %}
diff --git a/templates/person.html b/templates/person.html
index 9d79141..ff1fe62 100644
--- a/templates/person.html
+++ b/templates/person.html
@@ -1,10 +1,10 @@
 {% extends "base.html" %}
 {% load wiki_markup %}
 
-{% block title %}Person {{person.id}}{% endblock %}
+{% block title %}Person {{person|wiki_to_html_short}}{% endblock %}
 
 {% block content %}
-    <div class="personblock"><a href="/person/{{person.id}}">{{person}}</a>
+    <div class="personblock"><a href="/person/{{person.id}}">{{person|wiki_to_html_short}}</a>
     <ul>
     {% for personexpedition in person.personexpedition_set.all %}
         <li>
@@ -14,7 +14,9 @@
         <div>
         <ul>
         {% for persontrip in personexpedition.persontrip_set.all %}
-            <li><a href="/logbookentry/{{persontrip.logbookentry.id}}">{{persontrip.date}}</a> ({{persontrip.logbookentry.place}}) - {{persontrip.logbookentry.title}}</li>
+            <li><a href="/logbookentry/{{persontrip.logbookentry.id}}">{{persontrip.date}}</a>
+            ({{persontrip.logbookentry.place|wiki_to_html_short}}) - 
+             {{persontrip.logbookentry.title|wiki_to_html_short}}</li>
         {% endfor %}
         <ul>
         </div>