| @@ 894-923 (lines=30) @@ | ||
| 891 | } |
|
| 892 | ||
| 893 | ||
| 894 | function doHeaders($text) { |
|
| 895 | # Setext-style headers: |
|
| 896 | # Header 1 |
|
| 897 | # ======== |
|
| 898 | # |
|
| 899 | # Header 2 |
|
| 900 | # -------- |
|
| 901 | # |
|
| 902 | $text = preg_replace_callback('{ ^(.+?)[ ]*\n(=+|-+)[ ]*\n+ }mx', |
|
| 903 | array(&$this, '_doHeaders_callback_setext'), $text); |
|
| 904 | ||
| 905 | # atx-style headers: |
|
| 906 | # # Header 1 |
|
| 907 | # ## Header 2 |
|
| 908 | # ## Header 2 with closing hashes ## |
|
| 909 | # ... |
|
| 910 | # ###### Header 6 |
|
| 911 | # |
|
| 912 | $text = preg_replace_callback('{ |
|
| 913 | ^(\#{1,6}) # $1 = string of #\'s |
|
| 914 | [ ]* |
|
| 915 | (.+?) # $2 = Header text |
|
| 916 | [ ]* |
|
| 917 | \#* # optional closing #\'s (not counted) |
|
| 918 | \n+ |
|
| 919 | }xm', |
|
| 920 | array(&$this, '_doHeaders_callback_atx'), $text); |
|
| 921 | ||
| 922 | return $text; |
|
| 923 | } |
|
| 924 | function _doHeaders_callback_setext($matches) { |
|
| 925 | # Terrible hack to check we haven't found an empty list item. |
|
| 926 | if ($matches[2] == '-' && preg_match('{^-(?: |$)}', $matches[1])) |
|
| @@ 2216-2255 (lines=40) @@ | ||
| 2213 | } |
|
| 2214 | ||
| 2215 | ||
| 2216 | function doHeaders($text) { |
|
| 2217 | # |
|
| 2218 | # Redefined to add id attribute support. |
|
| 2219 | # |
|
| 2220 | # Setext-style headers: |
|
| 2221 | # Header 1 {#header1} |
|
| 2222 | # ======== |
|
| 2223 | # |
|
| 2224 | # Header 2 {#header2} |
|
| 2225 | # -------- |
|
| 2226 | # |
|
| 2227 | $text = preg_replace_callback( |
|
| 2228 | '{ |
|
| 2229 | (^.+?) # $1: Header text |
|
| 2230 | (?:[ ]+\{\#([-_:a-zA-Z0-9]+)\})? # $2: Id attribute |
|
| 2231 | [ ]*\n(=+|-+)[ ]*\n+ # $3: Header footer |
|
| 2232 | }mx', |
|
| 2233 | array(&$this, '_doHeaders_callback_setext'), $text); |
|
| 2234 | ||
| 2235 | # atx-style headers: |
|
| 2236 | # # Header 1 {#header1} |
|
| 2237 | # ## Header 2 {#header2} |
|
| 2238 | # ## Header 2 with closing hashes ## {#header3} |
|
| 2239 | # ... |
|
| 2240 | # ###### Header 6 {#header2} |
|
| 2241 | # |
|
| 2242 | $text = preg_replace_callback('{ |
|
| 2243 | ^(\#{1,6}) # $1 = string of #\'s |
|
| 2244 | [ ]* |
|
| 2245 | (.+?) # $2 = Header text |
|
| 2246 | [ ]* |
|
| 2247 | \#* # optional closing #\'s (not counted) |
|
| 2248 | (?:[ ]+\{\#([-_:a-zA-Z0-9]+)\})? # id attribute |
|
| 2249 | [ ]* |
|
| 2250 | \n+ |
|
| 2251 | }xm', |
|
| 2252 | array(&$this, '_doHeaders_callback_atx'), $text); |
|
| 2253 | ||
| 2254 | return $text; |
|
| 2255 | } |
|
| 2256 | function _doHeaders_attr($attr) { |
|
| 2257 | if (empty($attr)) return ""; |
|
| 2258 | return " id=\"$attr\""; |
|