From 5d1fffc0673bdeb231bf8745242c92f54217be57 Mon Sep 17 00:00:00 2001 From: x2001corpet Date: Tue, 13 Mar 2007 20:00:47 +0000 Subject: [PATCH] fix break line char different in get and post, now can exclude title rules of miniwiki git-svn-id: svn+ssh://murphy/home/svn/platal/trunk@1569 839d8a87-29fc-0310-9880-83ba4fa771e5 --- classes/miniwiki.php | 64 ++++++++++++++++++++++++++++++---------------------- 1 file changed, 37 insertions(+), 27 deletions(-) diff --git a/classes/miniwiki.php b/classes/miniwiki.php index 058607f..7f0b76e 100644 --- a/classes/miniwiki.php +++ b/classes/miniwiki.php @@ -7,63 +7,73 @@ class MiniWiki private static $replacementHTML = array(); private static $replacementText = array(); - public static function Markup($pattern, $replacement, $replacementTxt) { - MiniWiki::$patternsWiki[] = $pattern; - MiniWiki::$replacementHTML[] = $replacement; - MiniWiki::$replacementText[] = $replacementTxt; + public static function Markup($id, $pattern, $replacement, $replacementTxt) { + MiniWiki::$patternsWiki[$id] = $pattern; + MiniWiki::$replacementHTML[$id] = $replacement; + MiniWiki::$replacementText[$id] = $replacementTxt; } public static function init() { if (isset(MiniWiki::$patternsWiki[0])) { return; } + MiniWiki::Markup(0, "/(\r\n|\r([^\n]))/", "\n$2", "\n$2"); + // retours à la ligne avec \\ - MiniWiki::Markup("/\\\\(?".">(\\\\*))\n/e", "str_repeat('
\n',strlen('$1'))", "str_repeat('\\\\n',strlen('$1'))"); + MiniWiki::Markup(1, "/\\\\(?".">(\\\\*))\n/e", "str_repeat('
\n',strlen('$1'))", "str_repeat('\\\\n',strlen('$1'))"); // bold, italic and others // ''' bold ''' - MiniWiki::Markup("/'''(.*?)'''/",'$1','*$1*'); + MiniWiki::Markup(2, "/'''(.*?)'''/",'$1','*$1*'); // '' italic '' - MiniWiki::Markup("/''(.*?)''/",'$1','/$1/'); + MiniWiki::Markup(3, "/''(.*?)''/",'$1','/$1/'); // '+ big +' - MiniWiki::Markup("/'\\+(.*?)\\+'/",'$1','*$1*'); + MiniWiki::Markup(4, "/'\\+(.*?)\\+'/",'$1','*$1*'); // '- small -' - MiniWiki::Markup("/'\\-(.*?)\\-'/",'$1','$1'); + MiniWiki::Markup(5, "/'\\-(.*?)\\-'/",'$1','$1'); // '^superscript^' - MiniWiki::Markup("/'\\^(.*?)\\^'/",'$1','$1'); + MiniWiki::Markup(6, "/'\\^(.*?)\\^'/",'$1','$1'); // '_subscript_' - MiniWiki::Markup("/'_(.*?)_'/",'$1','$1'); + MiniWiki::Markup(7, "/'_(.*?)_'/",'$1','$1'); // {+ underline +} - MiniWiki::Markup("/{+(.*?)+}/",'$1','_$1_'); + MiniWiki::Markup(8, "/{+(.*?)+}/",'$1','_$1_'); // {- strikeout -} - MiniWiki::Markup("/{-(.*?)-}/",'$1','_$1_'); + MiniWiki::Markup(9, "/{-(.*?)-}/",'$1','_$1_'); // [+ big +] [++ bigger ++] [+++ even bigger +++] ... - MiniWiki::Markup('/\\[(([-+])+)(.*?)\\1\\]/e',"'$3'", "'$3'"); + MiniWiki::Markup(10, '/\\[(([-+])+)(.*?)\\1\\]/e',"'$3'", "'$3'"); // -----
- MiniWiki::Markup('/(\n|^)----+/s', '$1
', '$1----'); + MiniWiki::Markup(11, '/(\n|^)----+/s', '$1
', '$1----'); // titles - MiniWiki::Markup('/(\n|^)(!+)([^\n]*)/se', "'$1$3'", "'$1$3'"); + MiniWiki::Markup(12, '/(\n|^)(!+)([^\n]*)/se', "'$1$3'", "'$1$3'"); // * unordered list - MiniWiki::Markup("/(^|\n)\*(([^\n]*(\n|$))(\*[^\n]*(\n|$))*)/se", "''", "$0"); + MiniWiki::Markup(13, "/(^|\n)\*(([^\n]*(\n|$))(\*[^\n]*(\n|$))*)/se", "''", "$0"); // # unordered list - MiniWiki::Markup("/(^|\n)#(([^\n]*(\n|$))(#[^\n]*(\n|$))*)/se", "'
  1. '.str_replace(\"\\n#\",'
  2. ','$2').'
'", "$0"); + MiniWiki::Markup(14, "/(^|\n)#(([^\n]*(\n|$))(#[^\n]*(\n|$))*)/se", "'
  1. '.str_replace(\"\\n#\",'
  2. ','$2').'
'", "$0"); // links - MiniWiki::Markup('/((?:https?|ftp):\/\/(?:\.*,*[\w@~%$£µ&i#\-+=_\/\?;])*)/ui', '\\0', '\\0'); - MiniWiki::Markup('/(\s|^|\\[\\[)www\.((?:\.*,*[\w@~%$£µ&i#\-+=_\/\?;])*)/iu', '\\1www.\\2', 'http://www.\\2'); - MiniWiki::Markup('/(?:mailto:)?([a-z0-9.\-+_]+@([\-.+_]?[a-z0-9])+)/i', '\\0', '\\0'); - MiniWiki::Markup('/\\[\\[\\s*.*<\/a>\\s*\|([^\\]]+)\\]\\]/i', '\\2', '\\2 (\\1)'); + MiniWiki::Markup(15, '/((?:https?|ftp):\/\/(?:\.*,*[\w@~%$£µ&i#\-+=_\/\?;])*)/ui', '\\0', '\\0'); + MiniWiki::Markup(16, '/(\s|^|\\[\\[)www\.((?:\.*,*[\w@~%$£µ&i#\-+=_\/\?;])*)/iu', '\\1www.\\2', 'http://www.\\2'); + MiniWiki::Markup(17, '/(?:mailto:)?([a-z0-9.\-+_]+@([\-.+_]?[a-z0-9])+)/i', '\\0', '\\0'); + MiniWiki::Markup(18, '/\\[\\[\\s*.*<\/a>\\s*\|([^\\]]+)\\]\\]/i', '\\2', '\\2 (\\1)'); // paragraphs and empty lines - MiniWiki::Markup("/\n\n/", '

', "\n\n"); - MiniWiki::Markup("/\n/", ' ', "\n"); - MiniWiki::Markup("/^.*<\/p>

.*$/s", "

$0

", "$0"); + MiniWiki::Markup(19, "/\n\n/", '

', "\n\n"); + MiniWiki::Markup(20, "/\n/", ' ', "\n"); + MiniWiki::Markup(21, "/^.*<\/p>

.*$/s", "

$0

", "$0"); } - public static function WikiToHTML($s) { - return preg_replace(MiniWiki::$patternsWiki, MiniWiki::$replacementHTML, $s); + public static function WikiToHTML($wiki, $notitle = false) { + if ($notitle) { + $oldrule12 = MiniWiki::$replacementHTML[12]; + MiniWiki::$replacementHTML[12] = "'$0'"; + } + $html = preg_replace(MiniWiki::$patternsWiki, MiniWiki::$replacementHTML, htmlentities($wiki)); + if ($notitle) { + MiniWiki::$replacementHTML[12] = $oldrule12; + } + return $html; } }; -- 2.1.4