From 3c6b323300114b63d68cb83a70f96c40f86ba0e3 Mon Sep 17 00:00:00 2001
From: Dominique Fournier
"; + $search[] = '~^([^\\\\]|^)(==+ (.+)( ==+)?)$~Um'; + $replace[] = '
'."\n".''; // -- TITRE2 - $search[] = "/^--+ (.+)( --+)?$/Um"; - $replace[] = "
\n"; + $search[] = '~^([^\\\\]|^)(--+ (.+)( --+)?)$~Um'; + $replace[] = '
\n';
+
// EMPHASIS : _ or * for normal, __ or ** for strong
- $search[] = "/__(.+)__/U"; $replace[] = "\\1";
- $search[] = "/_(.+)_/U"; $replace[] = "\\1";
- $search[] = "/\*\*(.+)\*\*/U"; $replace[] = "\\1";
- $search[] = "/\*(.+)\*/U"; $replace[] = "\\1";
+ $search[] = '~([^\\\\]|^)(__(.+)__)~U';
+ $replace[] = '\1\3';
+ $search[] = '~([^\\\\_]|^)(_(.+)_)~U';
+ $replace[] = '\1\3';
+
+ $search[] = '~([^\\\\]|^)(\*\*(.+)\*\*)~U';
+ $replace[] = '\1\3';
+ $search[] = '~([^\\\\*]|^)(\*(.+)\*)~U';
+ $replace[] = '\1\3';
// CODE : `code` ->
- $search[] = "/\\n?\`((\\n|.)+)\`/Um";
- $replace[] = "\\1";
+ $search[] = "~\\n?([^\\\\]|^)(\`((\\n|.)+)\`)~Um";
+ $replace[] = '\1\3';
// LINKS (can be relative)
// images
- $search[] = "(!\[(.+)\]\((.+)\))";
- $replace[] = "";
+ $search[] = '~([^\\\\]|^)(!\[(.+)\]\((.+)\))~';
+ $replace[] = '
';
// [Google Site](http://google.fr/ "With help bubble")
- $search[] = "(\[(.+)\]\((.+) \"(.+)\"\))";
- $replace[] = "\\1";
+ $search[] = '~([^\\\\!]|^)(\[(.+)\]\((.+) "(.+)"\))~';
+ $replace[] = '\1\3';
// [Google Site](http://google.fr/)
- $search[] = "(\[(.+)\]\((.+)\))"; $replace[] = "\\1";
+ $search[] = '~([^\\\\!]|^)(\[(.+)\]\((.+)\))~U';
+ $replace[] = '\1\3';
+
// Automatics links :
//
"; + $search[] = '~^([^\\\\]|^)?(###### (.+)( +#+)?)$~Um'; + $replace[] = '
'; // ##### Title5 - $search[] = "/^##### (.+)( +#+)?$/Um"; - $replace[] = "
"; + $search[] = '~^([^\\\\]|^)?(##### (.+)( +#+)?)$~Um'; + $replace[] = '
'; // #### Title4 - $search[] = "/^#### (.+)( +#+)?$/Um"; - $replace[] = "
"; + $search[] = '~^([^\\\\]|^)?(#### (.+)( +#+)?)$~Um'; + $replace[] = '
'; // ### Title3 - $search[] = "/^### (.+)( +#+)?$/Um"; - $replace[] = "
"; + $search[] = '~^([^\\\\]|^)?(### (.+)( +#+)?)$~Um'; + $replace[] = '
'; // ## Title2 - $search[] = "/^## (.+)( +#+)?$/Um"; - $replace[] = "
"; + $search[] = '~^([^\\\\]|^)?(## (.+)( +#+)?)$~Um'; + $replace[] = '
'; // # Title1 - $search[] = "/^# (.+)( +#+)?$/Um"; - $replace[] = "
"; - return preg_replace ($search, $replace, $line); + $search[] = '~^([^\\\\]|^)?(# (.+)( +#+)?)$~Um'; + $replace[] = '
'; + // Remove the backslashes on the existing regex + foreach ($search as $s) + { + $s = str_replace ('([^\\\\]|^)?', '([\\\\])', $s); + $s = str_replace ('([^\\\\]|^)', '([\\\\])', $s); + $s = str_replace ('([^\\\\!]|^)', '([\\\\])', $s); + $s = str_replace ('([^\\\\*]|^)', '([\\\\])', $s); + $s = str_replace ('([^\\\\_]|^)', '([\\\\])', $s); + $search[] = $s; + $replace[] = '\2'; + } + $res = preg_replace ($search, $replace, $line); + return $res; } /** Return HTML code corresponding to the code block