Ticket #18330: wpautop.patch
| File wpautop.patch, 2.3 KB (added by , 14 years ago) |
|---|
-
formatting.php
167 167 * @param int|bool $br Optional. If set, this will convert all remaining line-breaks after paragraphing. Default true. 168 168 * @return string Text which has been converted into correct paragraph tags. 169 169 */ 170 function wpautop($pee, $br = 1 ) {171 170 function wpautop($pee, $br = 1, $class = '') { 171 $class = ( $class ) ? ' class="'.$class.'"' : ''; 172 172 if ( trim($pee) === '' ) 173 173 return ''; 174 174 $pee = $pee . "\n"; // just to make things a little easier, pad the end … … 187 187 $pees = preg_split('/\n\s*\n/', $pee, -1, PREG_SPLIT_NO_EMPTY); 188 188 $pee = ''; 189 189 foreach ( $pees as $tinkle ) 190 $pee .= '<p >' . trim($tinkle, "\n") . "</p>\n";191 $pee = preg_replace('|<p >\s*</p>|', '', $pee); // under certain strange conditions it could create a P of entirely whitespace192 $pee = preg_replace('!<p >([^<]+)</(div|address|form)>!', "<p>$1</p></$2>", $pee);193 $pee = preg_replace('!<p >\s*(</?' . $allblocks . '[^>]*>)\s*</p>!', "$1", $pee); // don't pee all over a tag194 $pee = preg_replace("|<p >(<li.+?)</p>|", "$1", $pee); // problem with nested lists195 $pee = preg_replace('|<p ><blockquote([^>]*)>|i', "<blockquote$1><p>", $pee);190 $pee .= '<p'.$class.'>' . trim($tinkle, "\n") . "</p>\n"; 191 $pee = preg_replace('|<p'.$class.'>\s*</p>|', '', $pee); // under certain strange conditions it could create a P of entirely whitespace 192 $pee = preg_replace('!<p'.$class.'>([^<]+)</(div|address|form)>!', "<p".$class.">$1</p></$2>", $pee); 193 $pee = preg_replace('!<p'.$class.'>\s*(</?' . $allblocks . '[^>]*>)\s*</p>!', "$1", $pee); // don't pee all over a tag 194 $pee = preg_replace("|<p'.$class.'>(<li.+?)</p>|", "$1", $pee); // problem with nested lists 195 $pee = preg_replace('|<p'.$class.'><blockquote([^>]*)>|i', "<blockquote$1><p ".$class.">", $pee); 196 196 $pee = str_replace('</blockquote></p>', '</p></blockquote>', $pee); 197 $pee = preg_replace('!<p >\s*(</?' . $allblocks . '[^>]*>)!', "$1", $pee);197 $pee = preg_replace('!<p'.$class.'>\s*(</?' . $allblocks . '[^>]*>)!', "$1", $pee); 198 198 $pee = preg_replace('!(</?' . $allblocks . '[^>]*>)\s*</p>!', "$1", $pee); 199 199 if ($br) { 200 200 $pee = preg_replace_callback('/<(script|style).*?<\/\\1>/s', '_autop_newline_preservation_helper', $pee);