Allow <br> for linebreaks.
authorrich <rich>
Thu, 30 Sep 2004 14:58:14 +0000 (14:58 +0000)
committerrich <rich>
Thu, 30 Sep 2004 14:58:14 +0000 (14:58 +0000)
scripts/wikilib.ml

index 081385f..b366ae2 100644 (file)
@@ -1,7 +1,7 @@
 (* COCANWIKI - a wiki written in Objective CAML.
  * Written by Richard W.M. Jones <rich@merjis.com>.
  * Copyright (C) 2004 Merjis Ltd.
- * $Id: wikilib.ml,v 1.7 2004/09/25 16:05:03 rich Exp $
+ * $Id: wikilib.ml,v 1.8 2004/09/30 14:58:14 rich Exp $
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -91,7 +91,7 @@ let obscure_mailto url =
 (* This matches any markup. *)
 let markup_re =
   let link = "\\[\\[\\s*(?:.+?)\\s*(?:\\|.+?\\s*)?\\]\\]" in
-  let tag = "</?(?:b|i|strong|em|code|sup|sub|nowiki)>" in
+  let tag = "</?(?:b|i|strong|em|code|sup|sub|nowiki|br)>" in
   Pcre.regexp ("(.*?)((?:" ^ link ^ ")|(?:" ^ tag ^ "))(.*)")
 
 (* This matches links only, and should be compatible with the link contained
@@ -321,6 +321,9 @@ let _markup_paragraph dbh hostid text =
           | FoundOpen (first, elem, rest) when elem = "nowiki" ->
               (* handle <nowiki> specially ... *)
               escape_html first :: loop (rest, elem :: [])
+          | FoundOpen (first, elem, rest) when elem = "br" ->
+              (* handle <br> specially ... *)
+              escape_html first :: "<br/>" :: loop (rest, [])
           | FoundOpen (first, elem, rest) ->
               (* open tag - push it onto the stack *)
               escape_html first :: "<" :: elem :: ">" :: loop (rest, [elem])
@@ -344,6 +347,9 @@ let _markup_paragraph dbh hostid text =
           | FoundOpen (first, elem, rest) when elem = "nowiki" ->
               (* handle <nowiki> specially ... *)
               escape_html first :: loop (rest, elem :: stack)
+          | FoundOpen (first, elem, rest) when elem = "br" ->
+              (* handle <br> specially ... *)
+              escape_html first :: "<br/>" :: loop (rest, stack)
           | FoundOpen (first, elem, rest) ->
               (* open tag - push it onto the stack *)
               escape_html first :: "<" :: elem :: ">" ::