@@ -12,7 +12,6 @@ |
||
| 12 | 12 | namespace Patron; |
| 13 | 13 | |
| 14 | 14 | use Brickrouge\Pager; |
| 15 | - |
|
| 16 | 15 | use ICanBoogie\Core; |
| 17 | 16 | use ICanBoogie\Render\TemplateName; |
| 18 | 17 | |
@@ -43,7 +43,7 @@ discard block |
||
| 43 | 43 | { |
| 44 | 44 | $count = null; |
| 45 | 45 | $limit = null; |
| 46 | - $page = null; |
|
| 46 | + $page = null; |
|
| 47 | 47 | $range = null; |
| 48 | 48 | $noarrows = null; |
| 49 | 49 | $with = null; |
@@ -166,10 +166,8 @@ discard block |
||
| 166 | 166 | |
| 167 | 167 | if (!is_array($entries) && !is_object($entries)) |
| 168 | 168 | { |
| 169 | - $patron->error |
|
| 170 | - ( |
|
| 171 | - 'Invalid source for %param. Source must either be an array or a traversable object. Given: !entries', array |
|
| 172 | - ( |
|
| 169 | + $patron->error( |
|
| 170 | + 'Invalid source for %param. Source must either be an array or a traversable object. Given: !entries', array( |
|
| 173 | 171 | '%param' => 'in', '!entries' => $entries |
| 174 | 172 | ) |
| 175 | 173 | ); |
@@ -330,7 +328,7 @@ discard block |
||
| 330 | 328 | |
| 331 | 329 | if ($name != 'when') |
| 332 | 330 | { |
| 333 | - $patron->error('Unexpected child: :node', [ ':node' => $node ]); |
|
| 331 | + $patron->error('Unexpected child: :node', [':node' => $node]); |
|
| 334 | 332 | |
| 335 | 333 | return null; |
| 336 | 334 | } |
@@ -716,16 +714,16 @@ discard block |
||
| 716 | 714 | { |
| 717 | 715 | $app->events->attach(function(MarkupCollection\AlterEvent $event, MarkupCollection $markups) use ($app) { |
| 718 | 716 | |
| 719 | - foreach((array) $app->configs['patron.markups'] as $name => $definition) |
|
| 717 | + foreach ((array) $app->configs['patron.markups'] as $name => $definition) |
|
| 720 | 718 | { |
| 721 | - $markups[$name] = $definition + [ 1 => [ ] ]; |
|
| 719 | + $markups[$name] = $definition + [1 => []]; |
|
| 722 | 720 | } |
| 723 | 721 | |
| 724 | 722 | }); |
| 725 | 723 | |
| 726 | 724 | $app->events->attach(function(FunctionCollection\AlterEvent $event, FunctionCollection $markups) use ($app) { |
| 727 | 725 | |
| 728 | - foreach((array) $app->configs['patron.functions'] as $name => $definition) |
|
| 726 | + foreach ((array) $app->configs['patron.functions'] as $name => $definition) |
|
| 729 | 727 | { |
| 730 | 728 | $markups[$name] = $definition; |
| 731 | 729 | } |
@@ -260,8 +260,7 @@ discard block |
||
| 260 | 260 | if ($args['equals'] !== null) |
| 261 | 261 | { |
| 262 | 262 | $true = $args['select'] == $args['equals']; |
| 263 | - } |
|
| 264 | - else |
|
| 263 | + } else |
|
| 265 | 264 | { |
| 266 | 265 | $true = !empty($args['test']); |
| 267 | 266 | } |
@@ -407,12 +406,10 @@ discard block |
||
| 407 | 406 | $patron->error('Ambiguous selection'); |
| 408 | 407 | |
| 409 | 408 | return null; |
| 410 | - } |
|
| 411 | - else if ($select) |
|
| 409 | + } else if ($select) |
|
| 412 | 410 | { |
| 413 | 411 | $value = $select; |
| 414 | - } |
|
| 415 | - else |
|
| 412 | + } else |
|
| 416 | 413 | { |
| 417 | 414 | $value = $patron($template); |
| 418 | 415 | } |
@@ -1044,6 +1044,10 @@ discard block |
||
| 1044 | 1044 | |
| 1045 | 1045 | var $list_level = 0; |
| 1046 | 1046 | |
| 1047 | + /** |
|
| 1048 | + * @param string $list_str |
|
| 1049 | + * @param string $marker_any_re |
|
| 1050 | + */ |
|
| 1047 | 1051 | function processListItems($list_str, $marker_any_re) { |
| 1048 | 1052 | # |
| 1049 | 1053 | # Process the contents of a single ordered or unordered list, splitting it |
@@ -1644,6 +1648,9 @@ discard block |
||
| 1644 | 1648 | # hanlde UTF-8 if the default function does not exist. |
| 1645 | 1649 | var $utf8_strlen = 'mb_strlen'; |
| 1646 | 1650 | |
| 1651 | + /** |
|
| 1652 | + * @param string $text |
|
| 1653 | + */ |
|
| 1647 | 1654 | function detab($text) { |
| 1648 | 1655 | # |
| 1649 | 1656 | # Replace tabs with the appropriate amount of space. |
@@ -87,10 +87,10 @@ |
||
| 87 | 87 | # - Add paragraph tag around the excerpt, but remove it for the excerpt rss. |
| 88 | 88 | if (MARKDOWN_WP_POSTS) { |
| 89 | 89 | remove_filter('the_content', 'wpautop'); |
| 90 | - remove_filter('the_content_rss', 'wpautop'); |
|
| 90 | + remove_filter('the_content_rss', 'wpautop'); |
|
| 91 | 91 | remove_filter('the_excerpt', 'wpautop'); |
| 92 | 92 | add_filter('the_content', 'mdwp_MarkdownPost', 6); |
| 93 | - add_filter('the_content_rss', 'mdwp_MarkdownPost', 6); |
|
| 93 | + add_filter('the_content_rss', 'mdwp_MarkdownPost', 6); |
|
| 94 | 94 | add_filter('get_the_excerpt', 'mdwp_MarkdownPost', 6); |
| 95 | 95 | add_filter('get_the_excerpt', 'trim', 7); |
| 96 | 96 | add_filter('the_excerpt', 'mdwp_add_p'); |
@@ -194,8 +194,12 @@ discard block |
||
| 194 | 194 | # Fake Textile class. It calls Markdown instead. |
| 195 | 195 | class Textile { |
| 196 | 196 | function TextileThis($text, $lite='', $encode='') { |
| 197 | - if ($lite == '' && $encode == '') $text = Markdown($text); |
|
| 198 | - if (function_exists('SmartyPants')) $text = SmartyPants($text); |
|
| 197 | + if ($lite == '' && $encode == '') { |
|
| 198 | + $text = Markdown($text); |
|
| 199 | + } |
|
| 200 | + if (function_exists('SmartyPants')) { |
|
| 201 | + $text = SmartyPants($text); |
|
| 202 | + } |
|
| 199 | 203 | return $text; |
| 200 | 204 | } |
| 201 | 205 | # Fake restricted version: restrictions are not supported for now. |
@@ -413,7 +417,9 @@ discard block |
||
| 413 | 417 | |
| 414 | 418 | |
| 415 | 419 | function hashHTMLBlocks($text) { |
| 416 | - if ($this->no_markup) return $text; |
|
| 420 | + if ($this->no_markup) { |
|
| 421 | + return $text; |
|
| 422 | + } |
|
| 417 | 423 | |
| 418 | 424 | $less_than_tab = $this->tab_width - 1; |
| 419 | 425 | |
@@ -689,7 +695,9 @@ discard block |
||
| 689 | 695 | # |
| 690 | 696 | # Turn Markdown link shortcuts into XHTML <a> tags. |
| 691 | 697 | # |
| 692 | - if ($this->in_anchor) return $text; |
|
| 698 | + if ($this->in_anchor) { |
|
| 699 | + return $text; |
|
| 700 | + } |
|
| 693 | 701 | $this->in_anchor = true; |
| 694 | 702 | |
| 695 | 703 | # |
@@ -783,8 +791,7 @@ discard block |
||
| 783 | 791 | $link_text = $this->runSpanGamut($link_text); |
| 784 | 792 | $result .= ">$link_text</a>"; |
| 785 | 793 | $result = $this->hashPart($result); |
| 786 | - } |
|
| 787 | - else { |
|
| 794 | + } else { |
|
| 788 | 795 | $result = $whole_match; |
| 789 | 796 | } |
| 790 | 797 | return $result; |
@@ -885,8 +892,7 @@ discard block |
||
| 885 | 892 | } |
| 886 | 893 | $result .= $this->empty_element_suffix; |
| 887 | 894 | $result = $this->hashPart($result); |
| 888 | - } |
|
| 889 | - else { |
|
| 895 | + } else { |
|
| 890 | 896 | # If there's no such link ID, leave intact: |
| 891 | 897 | $result = $whole_match; |
| 892 | 898 | } |
@@ -944,8 +950,9 @@ discard block |
||
| 944 | 950 | } |
| 945 | 951 | function _doHeaders_callback_setext($matches) { |
| 946 | 952 | # Terrible hack to check we haven't found an empty list item. |
| 947 | - if ($matches[2] == '-' && preg_match('{^-(?: |$)}', $matches[1])) |
|
| 948 | - return $matches[0]; |
|
| 953 | + if ($matches[2] == '-' && preg_match('{^-(?: |$)}', $matches[1])) { |
|
| 954 | + return $matches[0]; |
|
| 955 | + } |
|
| 949 | 956 | |
| 950 | 957 | $level = $matches[2]{0} == '=' ? 1 : 2; |
| 951 | 958 | $block = "<h$level>".$this->runSpanGamut($matches[1])."</h$level>"; |
@@ -1012,8 +1019,7 @@ discard block |
||
| 1012 | 1019 | '.$whole_list_re.' |
| 1013 | 1020 | }mx', |
| 1014 | 1021 | array(&$this, '_doLists_callback'), $text); |
| 1015 | - } |
|
| 1016 | - else { |
|
| 1022 | + } else { |
|
| 1017 | 1023 | $text = preg_replace_callback('{ |
| 1018 | 1024 | (?:(?<=\n)\n|\A\n?) # Must eat the newline |
| 1019 | 1025 | '.$whole_list_re.' |
@@ -1103,8 +1109,7 @@ discard block |
||
| 1103 | 1109 | # Replace marker with the appropriate whitespace indentation |
| 1104 | 1110 | $item = $leading_space . str_repeat(' ', strlen($marker_space)) . $item; |
| 1105 | 1111 | $item = $this->runBlockGamut($this->outdent($item)."\n"); |
| 1106 | - } |
|
| 1107 | - else { |
|
| 1112 | + } else { |
|
| 1108 | 1113 | # Recursion for sub-lists: |
| 1109 | 1114 | $item = $this->doLists($this->outdent($item)); |
| 1110 | 1115 | $item = preg_replace('/\n+$/', '', $item); |
@@ -1149,8 +1154,7 @@ discard block |
||
| 1149 | 1154 | $class = $format_match[1]; |
| 1150 | 1155 | $codeblock = substr($codeblock, strlen($format_match[0])); |
| 1151 | 1156 | $codeblock = $this->format_codeblock($codeblock, $class); |
| 1152 | - } |
|
| 1153 | - else |
|
| 1157 | + } else |
|
| 1154 | 1158 | { |
| 1155 | 1159 | $codeblock = htmlspecialchars($codeblock, ENT_NOQUOTES); |
| 1156 | 1160 | } |
@@ -1389,8 +1393,7 @@ discard block |
||
| 1389 | 1393 | $value = preg_replace('/^([ ]*)/', "<p>", $value); |
| 1390 | 1394 | $value .= "</p>"; |
| 1391 | 1395 | $grafs[$key] = $this->unhash($value); |
| 1392 | - } |
|
| 1393 | - else { |
|
| 1396 | + } else { |
|
| 1394 | 1397 | # Is a block. |
| 1395 | 1398 | # Modify elements of @grafs in-place... |
| 1396 | 1399 | $graf = $value; |
@@ -1538,8 +1541,11 @@ discard block |
||
| 1538 | 1541 | # roughly 10% raw, 45% hex, 45% dec |
| 1539 | 1542 | # '@' *must* be encoded. I insist. |
| 1540 | 1543 | if ($r > 90 && $char != '@') /* do nothing */; |
| 1541 | - else if ($r < 45) $chars[$key] = '&#x'.dechex($ord).';'; |
|
| 1542 | - else $chars[$key] = '&#'.$ord.';'; |
|
| 1544 | + else if ($r < 45) { |
|
| 1545 | + $chars[$key] = '&#x'.dechex($ord).';'; |
|
| 1546 | + } else { |
|
| 1547 | + $chars[$key] = '&#'.$ord.';'; |
|
| 1548 | + } |
|
| 1543 | 1549 | } |
| 1544 | 1550 | } |
| 1545 | 1551 | |
@@ -1597,8 +1603,7 @@ discard block |
||
| 1597 | 1603 | if (isset($parts[1])) { |
| 1598 | 1604 | $output .= $this->handleSpanToken($parts[1], $parts[2]); |
| 1599 | 1605 | $str = $parts[2]; |
| 1600 | - } |
|
| 1601 | - else { |
|
| 1606 | + } else { |
|
| 1602 | 1607 | break; |
| 1603 | 1608 | } |
| 1604 | 1609 | } |
@@ -1681,7 +1686,9 @@ discard block |
||
| 1681 | 1686 | # function that will loosely count the number of UTF-8 characters with a |
| 1682 | 1687 | # regular expression. |
| 1683 | 1688 | # |
| 1684 | - if (function_exists($this->utf8_strlen)) return; |
|
| 1689 | + if (function_exists($this->utf8_strlen)) { |
|
| 1690 | + return; |
|
| 1691 | + } |
|
| 1685 | 1692 | $this->utf8_strlen = create_function('$text', 'return preg_match_all( |
| 1686 | 1693 | "/[\\\\x00-\\\\xBF]|[\\\\xC0-\\\\xFF][\\\\x80-\\\\xBF]*/", |
| 1687 | 1694 | $text, $m);'); |
@@ -11,7 +11,7 @@ discard block |
||
| 11 | 11 | # <http://daringfireball.net/projects/markdown/> |
| 12 | 12 | # |
| 13 | 13 | |
| 14 | -define( 'MARKDOWN_VERSION', "1.0.1o" ); # Sun 8 Jan 2012 |
|
| 14 | +define('MARKDOWN_VERSION', "1.0.1o"); # Sun 8 Jan 2012 |
|
| 15 | 15 | |
| 16 | 16 | |
| 17 | 17 | # |
@@ -19,18 +19,18 @@ discard block |
||
| 19 | 19 | # |
| 20 | 20 | |
| 21 | 21 | # Change to ">" for HTML output |
| 22 | -@define( 'MARKDOWN_EMPTY_ELEMENT_SUFFIX', " />"); |
|
| 22 | +@define('MARKDOWN_EMPTY_ELEMENT_SUFFIX', " />"); |
|
| 23 | 23 | |
| 24 | 24 | # Define the width of a tab for code blocks. |
| 25 | -@define( 'MARKDOWN_TAB_WIDTH', 4 ); |
|
| 25 | +@define('MARKDOWN_TAB_WIDTH', 4); |
|
| 26 | 26 | |
| 27 | 27 | # Optional title attribute for footnote links and backlinks. |
| 28 | -@define( 'MARKDOWN_FN_LINK_TITLE', "" ); |
|
| 29 | -@define( 'MARKDOWN_FN_BACKLINK_TITLE', "" ); |
|
| 28 | +@define('MARKDOWN_FN_LINK_TITLE', ""); |
|
| 29 | +@define('MARKDOWN_FN_BACKLINK_TITLE', ""); |
|
| 30 | 30 | |
| 31 | 31 | # Optional class attribute for footnote links and backlinks. |
| 32 | -@define( 'MARKDOWN_FN_LINK_CLASS', "" ); |
|
| 33 | -@define( 'MARKDOWN_FN_BACKLINK_CLASS', "" ); |
|
| 32 | +@define('MARKDOWN_FN_LINK_CLASS', ""); |
|
| 33 | +@define('MARKDOWN_FN_BACKLINK_CLASS', ""); |
|
| 34 | 34 | |
| 35 | 35 | |
| 36 | 36 | # |
@@ -38,8 +38,8 @@ discard block |
||
| 38 | 38 | # |
| 39 | 39 | |
| 40 | 40 | # Change to false to remove Markdown from posts and/or comments. |
| 41 | -@define( 'MARKDOWN_WP_POSTS', true ); |
|
| 42 | -@define( 'MARKDOWN_WP_COMMENTS', true ); |
|
| 41 | +@define('MARKDOWN_WP_POSTS', true); |
|
| 42 | +@define('MARKDOWN_WP_COMMENTS', true); |
|
| 43 | 43 | |
| 44 | 44 | |
| 45 | 45 | |
@@ -47,7 +47,7 @@ discard block |
||
| 47 | 47 | |
| 48 | 48 | if (!defined('MARKDOWN_PARSER_CLASS')) |
| 49 | 49 | { |
| 50 | - define( 'MARKDOWN_PARSER_CLASS', 'MarkdownExtra_Parser' ); |
|
| 50 | + define('MARKDOWN_PARSER_CLASS', 'MarkdownExtra_Parser'); |
|
| 51 | 51 | } |
| 52 | 52 | |
| 53 | 53 | function Markdown($text) { |
@@ -86,19 +86,19 @@ discard block |
||
| 86 | 86 | # - Run Markdown on excerpt, then remove all tags. |
| 87 | 87 | # - Add paragraph tag around the excerpt, but remove it for the excerpt rss. |
| 88 | 88 | if (MARKDOWN_WP_POSTS) { |
| 89 | - remove_filter('the_content', 'wpautop'); |
|
| 89 | + remove_filter('the_content', 'wpautop'); |
|
| 90 | 90 | remove_filter('the_content_rss', 'wpautop'); |
| 91 | - remove_filter('the_excerpt', 'wpautop'); |
|
| 92 | - add_filter('the_content', 'mdwp_MarkdownPost', 6); |
|
| 91 | + remove_filter('the_excerpt', 'wpautop'); |
|
| 92 | + add_filter('the_content', 'mdwp_MarkdownPost', 6); |
|
| 93 | 93 | add_filter('the_content_rss', 'mdwp_MarkdownPost', 6); |
| 94 | 94 | add_filter('get_the_excerpt', 'mdwp_MarkdownPost', 6); |
| 95 | 95 | add_filter('get_the_excerpt', 'trim', 7); |
| 96 | - add_filter('the_excerpt', 'mdwp_add_p'); |
|
| 96 | + add_filter('the_excerpt', 'mdwp_add_p'); |
|
| 97 | 97 | add_filter('the_excerpt_rss', 'mdwp_strip_p'); |
| 98 | 98 | |
| 99 | - remove_filter('content_save_pre', 'balanceTags', 50); |
|
| 100 | - remove_filter('excerpt_save_pre', 'balanceTags', 50); |
|
| 101 | - add_filter('the_content', 'balanceTags', 50); |
|
| 99 | + remove_filter('content_save_pre', 'balanceTags', 50); |
|
| 100 | + remove_filter('excerpt_save_pre', 'balanceTags', 50); |
|
| 101 | + add_filter('the_content', 'balanceTags', 50); |
|
| 102 | 102 | add_filter('get_the_excerpt', 'balanceTags', 9); |
| 103 | 103 | } |
| 104 | 104 | |
@@ -112,7 +112,7 @@ discard block |
||
| 112 | 112 | if (is_single() || is_page() || is_feed()) { |
| 113 | 113 | $parser->fn_id_prefix = ""; |
| 114 | 114 | } else { |
| 115 | - $parser->fn_id_prefix = get_the_ID() . "."; |
|
| 115 | + $parser->fn_id_prefix = get_the_ID()."."; |
|
| 116 | 116 | } |
| 117 | 117 | return $parser->transform($text); |
| 118 | 118 | } |
@@ -128,7 +128,7 @@ discard block |
||
| 128 | 128 | add_filter('pre_comment_content', 'Markdown', 6); |
| 129 | 129 | add_filter('pre_comment_content', 'mdwp_hide_tags', 8); |
| 130 | 130 | add_filter('pre_comment_content', 'mdwp_show_tags', 12); |
| 131 | - add_filter('get_comment_text', 'Markdown', 6); |
|
| 131 | + add_filter('get_comment_text', 'Markdown', 6); |
|
| 132 | 132 | add_filter('get_comment_excerpt', 'Markdown', 6); |
| 133 | 133 | add_filter('get_comment_excerpt', 'mdwp_strip_p', 7); |
| 134 | 134 | |
@@ -193,13 +193,13 @@ discard block |
||
| 193 | 193 | @include_once 'smartypants.php'; |
| 194 | 194 | # Fake Textile class. It calls Markdown instead. |
| 195 | 195 | class Textile { |
| 196 | - function TextileThis($text, $lite='', $encode='') { |
|
| 196 | + function TextileThis($text, $lite = '', $encode = '') { |
|
| 197 | 197 | if ($lite == '' && $encode == '') $text = Markdown($text); |
| 198 | 198 | if (function_exists('SmartyPants')) $text = SmartyPants($text); |
| 199 | 199 | return $text; |
| 200 | 200 | } |
| 201 | 201 | # Fake restricted version: restrictions are not supported for now. |
| 202 | - function TextileRestricted($text, $lite='', $noimage='') { |
|
| 202 | + function TextileRestricted($text, $lite = '', $noimage = '') { |
|
| 203 | 203 | return $this->TextileThis($text, $lite); |
| 204 | 204 | } |
| 205 | 205 | # Workaround to ensure compatibility with TextPattern 4.0.3. |
@@ -339,16 +339,14 @@ discard block |
||
| 339 | 339 | |
| 340 | 340 | $this->teardown(); |
| 341 | 341 | |
| 342 | - return $text . "\n"; |
|
| 342 | + return $text."\n"; |
|
| 343 | 343 | } |
| 344 | 344 | |
| 345 | - public $early_gamut = array |
|
| 346 | - ( |
|
| 345 | + public $early_gamut = array( |
|
| 347 | 346 | 'doFencedCodeBlocks' => 5 |
| 348 | 347 | ); |
| 349 | 348 | |
| 350 | - var $document_gamut = array |
|
| 351 | - ( |
|
| 349 | + var $document_gamut = array( |
|
| 352 | 350 | # Strip link definitions, store in hashes. |
| 353 | 351 | "stripLinkDefinitions" => 20, |
| 354 | 352 | |
@@ -359,8 +357,7 @@ discard block |
||
| 359 | 357 | * @var array These are all the transformations that form block-level tags like paragraphs, headers, and |
| 360 | 358 | * list items. |
| 361 | 359 | */ |
| 362 | - public $block_gamut = array |
|
| 363 | - ( |
|
| 360 | + public $block_gamut = array( |
|
| 364 | 361 | "doHeaders" => 10, |
| 365 | 362 | "doHorizontalRules" => 20, |
| 366 | 363 | |
@@ -407,7 +404,7 @@ discard block |
||
| 407 | 404 | $link_id = strtolower($matches[1]); |
| 408 | 405 | $url = $matches[2] == '' ? $matches[3] : $matches[2]; |
| 409 | 406 | $this->urls[$link_id] = $url; |
| 410 | - $this->titles[$link_id] =& $matches[4]; |
|
| 407 | + $this->titles[$link_id] = & $matches[4]; |
|
| 411 | 408 | return ''; # String that will replace the block |
| 412 | 409 | } |
| 413 | 410 | |
@@ -460,8 +457,8 @@ discard block |
||
| 460 | 457 | (?> |
| 461 | 458 | /> |
| 462 | 459 | | |
| 463 | - >', $nested_tags_level). # end of opening tag |
|
| 464 | - '.*?'. # last level nested tag content |
|
| 460 | + >', $nested_tags_level).# end of opening tag |
|
| 461 | + '.*?'.# last level nested tag content |
|
| 465 | 462 | str_repeat(' |
| 466 | 463 | </\2\s*> # closing nested tag |
| 467 | 464 | ) |
@@ -573,7 +570,7 @@ discard block |
||
| 573 | 570 | |
| 574 | 571 | # Then hash the block. |
| 575 | 572 | static $i = 0; |
| 576 | - $key = "$boundary\x1A" . ++$i . $boundary; |
|
| 573 | + $key = "$boundary\x1A".++$i.$boundary; |
|
| 577 | 574 | $this->html_hashes[$key] = $text; |
| 578 | 575 | return $key; # String that will replace the tag. |
| 579 | 576 | } |
@@ -756,9 +753,9 @@ discard block |
||
| 756 | 753 | return $text; |
| 757 | 754 | } |
| 758 | 755 | function _doAnchors_reference_callback($matches) { |
| 759 | - $whole_match = $matches[1]; |
|
| 760 | - $link_text = $matches[2]; |
|
| 761 | - $link_id =& $matches[3]; |
|
| 756 | + $whole_match = $matches[1]; |
|
| 757 | + $link_text = $matches[2]; |
|
| 758 | + $link_id = & $matches[3]; |
|
| 762 | 759 | |
| 763 | 760 | if ($link_id == "") { |
| 764 | 761 | # for shortcut links like [this][] or [this]. |
@@ -774,10 +771,10 @@ discard block |
||
| 774 | 771 | $url = $this->encodeAttribute($url); |
| 775 | 772 | |
| 776 | 773 | $result = "<a href=\"$url\""; |
| 777 | - if ( isset( $this->titles[$link_id] ) ) { |
|
| 774 | + if (isset($this->titles[$link_id])) { |
|
| 778 | 775 | $title = $this->titles[$link_id]; |
| 779 | 776 | $title = $this->encodeAttribute($title); |
| 780 | - $result .= " title=\"$title\""; |
|
| 777 | + $result .= " title=\"$title\""; |
|
| 781 | 778 | } |
| 782 | 779 | |
| 783 | 780 | $link_text = $this->runSpanGamut($link_text); |
@@ -790,17 +787,17 @@ discard block |
||
| 790 | 787 | return $result; |
| 791 | 788 | } |
| 792 | 789 | function _doAnchors_inline_callback($matches) { |
| 793 | - $whole_match = $matches[1]; |
|
| 794 | - $link_text = $this->runSpanGamut($matches[2]); |
|
| 795 | - $url = $matches[3] == '' ? $matches[4] : $matches[3]; |
|
| 796 | - $title =& $matches[7]; |
|
| 790 | + $whole_match = $matches[1]; |
|
| 791 | + $link_text = $this->runSpanGamut($matches[2]); |
|
| 792 | + $url = $matches[3] == '' ? $matches[4] : $matches[3]; |
|
| 793 | + $title = & $matches[7]; |
|
| 797 | 794 | |
| 798 | 795 | $url = $this->encodeAttribute($url); |
| 799 | 796 | |
| 800 | 797 | $result = "<a href=\"$url\""; |
| 801 | 798 | if (isset($title)) { |
| 802 | 799 | $title = $this->encodeAttribute($title); |
| 803 | - $result .= " title=\"$title\""; |
|
| 800 | + $result .= " title=\"$title\""; |
|
| 804 | 801 | } |
| 805 | 802 | |
| 806 | 803 | $link_text = $this->runSpanGamut($link_text); |
@@ -881,7 +878,7 @@ discard block |
||
| 881 | 878 | if (isset($this->titles[$link_id])) { |
| 882 | 879 | $title = $this->titles[$link_id]; |
| 883 | 880 | $title = $this->encodeAttribute($title); |
| 884 | - $result .= " title=\"$title\""; |
|
| 881 | + $result .= " title=\"$title\""; |
|
| 885 | 882 | } |
| 886 | 883 | $result .= $this->empty_element_suffix; |
| 887 | 884 | $result = $this->hashPart($result); |
@@ -894,17 +891,17 @@ discard block |
||
| 894 | 891 | return $result; |
| 895 | 892 | } |
| 896 | 893 | function _doImages_inline_callback($matches) { |
| 897 | - $whole_match = $matches[1]; |
|
| 898 | - $alt_text = $matches[2]; |
|
| 899 | - $url = $matches[3] == '' ? $matches[4] : $matches[3]; |
|
| 900 | - $title =& $matches[7]; |
|
| 894 | + $whole_match = $matches[1]; |
|
| 895 | + $alt_text = $matches[2]; |
|
| 896 | + $url = $matches[3] == '' ? $matches[4] : $matches[3]; |
|
| 897 | + $title = & $matches[7]; |
|
| 901 | 898 | |
| 902 | 899 | $alt_text = $this->encodeAttribute($alt_text); |
| 903 | 900 | $url = $this->encodeAttribute($url); |
| 904 | 901 | $result = "<img src=\"$url\" alt=\"$alt_text\""; |
| 905 | 902 | if (isset($title)) { |
| 906 | 903 | $title = $this->encodeAttribute($title); |
| 907 | - $result .= " title=\"$title\""; # $title already quoted |
|
| 904 | + $result .= " title=\"$title\""; # $title already quoted |
|
| 908 | 905 | } |
| 909 | 906 | $result .= $this->empty_element_suffix; |
| 910 | 907 | |
@@ -949,12 +946,12 @@ discard block |
||
| 949 | 946 | |
| 950 | 947 | $level = $matches[2]{0} == '=' ? 1 : 2; |
| 951 | 948 | $block = "<h$level>".$this->runSpanGamut($matches[1])."</h$level>"; |
| 952 | - return "\n" . $this->hashBlock($block) . "\n\n"; |
|
| 949 | + return "\n".$this->hashBlock($block)."\n\n"; |
|
| 953 | 950 | } |
| 954 | 951 | function _doHeaders_callback_atx($matches) { |
| 955 | 952 | $level = strlen($matches[1]); |
| 956 | 953 | $block = "<h$level>".$this->runSpanGamut($matches[2])."</h$level>"; |
| 957 | - return "\n" . $this->hashBlock($block) . "\n\n"; |
|
| 954 | + return "\n".$this->hashBlock($block)."\n\n"; |
|
| 958 | 955 | } |
| 959 | 956 | |
| 960 | 957 | |
@@ -1033,13 +1030,13 @@ discard block |
||
| 1033 | 1030 | $list = $matches[1]; |
| 1034 | 1031 | $list_type = preg_match("/$marker_ul_re/", $matches[4]) ? "ul" : "ol"; |
| 1035 | 1032 | |
| 1036 | - $marker_any_re = ( $list_type == "ul" ? $marker_ul_re : $marker_ol_re ); |
|
| 1033 | + $marker_any_re = ($list_type == "ul" ? $marker_ul_re : $marker_ol_re); |
|
| 1037 | 1034 | |
| 1038 | 1035 | $list .= "\n"; |
| 1039 | 1036 | $result = $this->processListItems($list, $marker_any_re); |
| 1040 | 1037 | |
| 1041 | - $result = $this->hashBlock("<$list_type>\n" . $result . "</$list_type>"); |
|
| 1042 | - return "\n". $result ."\n\n"; |
|
| 1038 | + $result = $this->hashBlock("<$list_type>\n".$result."</$list_type>"); |
|
| 1039 | + return "\n".$result."\n\n"; |
|
| 1043 | 1040 | } |
| 1044 | 1041 | |
| 1045 | 1042 | var $list_level = 0; |
@@ -1092,16 +1089,16 @@ discard block |
||
| 1092 | 1089 | } |
| 1093 | 1090 | function _processListItems_callback($matches) { |
| 1094 | 1091 | $item = $matches[4]; |
| 1095 | - $leading_line =& $matches[1]; |
|
| 1096 | - $leading_space =& $matches[2]; |
|
| 1092 | + $leading_line = & $matches[1]; |
|
| 1093 | + $leading_space = & $matches[2]; |
|
| 1097 | 1094 | $marker_space = $matches[3]; |
| 1098 | - $tailing_blank_line =& $matches[5]; |
|
| 1095 | + $tailing_blank_line = & $matches[5]; |
|
| 1099 | 1096 | |
| 1100 | 1097 | if ($leading_line || $tailing_blank_line || |
| 1101 | 1098 | preg_match('/\n{2,}/', $item)) |
| 1102 | 1099 | { |
| 1103 | 1100 | # Replace marker with the appropriate whitespace indentation |
| 1104 | - $item = $leading_space . str_repeat(' ', strlen($marker_space)) . $item; |
|
| 1101 | + $item = $leading_space.str_repeat(' ', strlen($marker_space)).$item; |
|
| 1105 | 1102 | $item = $this->runBlockGamut($this->outdent($item)."\n"); |
| 1106 | 1103 | } |
| 1107 | 1104 | else { |
@@ -1111,7 +1108,7 @@ discard block |
||
| 1111 | 1108 | $item = $this->runSpanGamut($item); |
| 1112 | 1109 | } |
| 1113 | 1110 | |
| 1114 | - return "<li>" . $item . "</li>\n"; |
|
| 1111 | + return "<li>".$item."</li>\n"; |
|
| 1115 | 1112 | } |
| 1116 | 1113 | |
| 1117 | 1114 | |
@@ -1204,7 +1201,7 @@ discard block |
||
| 1204 | 1201 | $token_relist[] = $strong_re; |
| 1205 | 1202 | |
| 1206 | 1203 | # Construct master expression from list. |
| 1207 | - $token_re = '{('. implode('|', $token_relist) .')}'; |
|
| 1204 | + $token_re = '{('.implode('|', $token_relist).')}'; |
|
| 1208 | 1205 | $this->em_strong_prepared_relist["$em$strong"] = $token_re; |
| 1209 | 1206 | } |
| 1210 | 1207 | } |
@@ -1230,8 +1227,8 @@ discard block |
||
| 1230 | 1227 | # |
| 1231 | 1228 | $parts = preg_split($token_re, $text, 2, PREG_SPLIT_DELIM_CAPTURE); |
| 1232 | 1229 | $text_stack[0] .= $parts[0]; |
| 1233 | - $token =& $parts[1]; |
|
| 1234 | - $text =& $parts[2]; |
|
| 1230 | + $token = & $parts[1]; |
|
| 1231 | + $text = & $parts[2]; |
|
| 1235 | 1232 | |
| 1236 | 1233 | if (empty($token)) { |
| 1237 | 1234 | # Reached end of text span: empty stack without emitting. |
@@ -1258,7 +1255,7 @@ discard block |
||
| 1258 | 1255 | } else { |
| 1259 | 1256 | # Other closing marker: close one em or strong and |
| 1260 | 1257 | # change current token state to match the other |
| 1261 | - $token_stack[0] = str_repeat($token{0}, 3-$token_len); |
|
| 1258 | + $token_stack[0] = str_repeat($token{0}, 3 - $token_len); |
|
| 1262 | 1259 | $tag = $token_len == 2 ? "strong" : "em"; |
| 1263 | 1260 | $span = $text_stack[0]; |
| 1264 | 1261 | $span = $this->runSpanGamut($span); |
@@ -1352,7 +1349,7 @@ discard block |
||
| 1352 | 1349 | $bq = $matches[1]; |
| 1353 | 1350 | # trim one level of quoting - trim whitespace-only lines |
| 1354 | 1351 | $bq = preg_replace('/^[ ]*>[ ]?|^[ ]+$/m', '', $bq); |
| 1355 | - $bq = $this->runBlockGamut($bq); # recurse |
|
| 1352 | + $bq = $this->runBlockGamut($bq); # recurse |
|
| 1356 | 1353 | |
| 1357 | 1354 | $bq = preg_replace('/^/m', " ", $bq); |
| 1358 | 1355 | # These leading spaces cause problem with <pre> content, |
@@ -1360,7 +1357,7 @@ discard block |
||
| 1360 | 1357 | $bq = preg_replace_callback('{(\s*<pre>.+?</pre>)}sx', |
| 1361 | 1358 | array(&$this, '_doBlockQuotes_callback2'), $bq); |
| 1362 | 1359 | |
| 1363 | - return "\n". $this->hashBlock("<blockquote>\n$bq\n</blockquote>")."\n\n"; |
|
| 1360 | + return "\n".$this->hashBlock("<blockquote>\n$bq\n</blockquote>")."\n\n"; |
|
| 1364 | 1361 | } |
| 1365 | 1362 | function _doBlockQuotes_callback2($matches) { |
| 1366 | 1363 | $pre = $matches[1]; |
@@ -1462,7 +1459,7 @@ discard block |
||
| 1462 | 1459 | # Ampersand-encoding based entirely on Nat Irons's Amputator |
| 1463 | 1460 | # MT plugin: <http://bumppo.net/projects/amputator/> |
| 1464 | 1461 | $text = preg_replace('/&(?!#?[xX]?(?:[0-9a-fA-F]+|\w+);)/', |
| 1465 | - '&', $text);; |
|
| 1462 | + '&', $text); ; |
|
| 1466 | 1463 | } |
| 1467 | 1464 | # Encode remaining <'s |
| 1468 | 1465 | $text = str_replace('<', '<', $text); |
@@ -1526,9 +1523,9 @@ discard block |
||
| 1526 | 1523 | # Based by a filter by Matthew Wickline, posted to BBEdit-Talk. |
| 1527 | 1524 | # With some optimizations by Milian Wolff. |
| 1528 | 1525 | # |
| 1529 | - $addr = "mailto:" . $addr; |
|
| 1526 | + $addr = "mailto:".$addr; |
|
| 1530 | 1527 | $chars = preg_split('/(?<!^)(?!$)/', $addr); |
| 1531 | - $seed = (int)abs(crc32($addr) / strlen($addr)); # Deterministic seed. |
|
| 1528 | + $seed = (int) abs(crc32($addr) / strlen($addr)); # Deterministic seed. |
|
| 1532 | 1529 | |
| 1533 | 1530 | foreach ($chars as $key => $char) { |
| 1534 | 1531 | $ord = ord($char); |
@@ -1564,7 +1561,7 @@ discard block |
||
| 1564 | 1561 | | |
| 1565 | 1562 | (?<![`\\\\]) |
| 1566 | 1563 | `+ # code span marker |
| 1567 | - '.( $this->no_markup ? '' : ' |
|
| 1564 | + '.($this->no_markup ? '' : ' |
|
| 1568 | 1565 | | |
| 1569 | 1566 | <!-- .*? --> # comment |
| 1570 | 1567 | | |
@@ -1615,7 +1612,7 @@ discard block |
||
| 1615 | 1612 | { |
| 1616 | 1613 | switch ($token{0}) { |
| 1617 | 1614 | case "\\": |
| 1618 | - return $this->hashPart("&#". ord($token{1}). ";"); |
|
| 1615 | + return $this->hashPart("&#".ord($token{1}).";"); |
|
| 1619 | 1616 | case "`": |
| 1620 | 1617 | # Search for end marker in remaining text. |
| 1621 | 1618 | if (preg_match('/^(.*?[^`])'.preg_quote($token).'(?!`)(.*)$/sm', |
@@ -1670,7 +1667,7 @@ discard block |
||
| 1670 | 1667 | # Calculate amount of space, insert spaces, insert block. |
| 1671 | 1668 | $amount = $this->tab_width - |
| 1672 | 1669 | $strlen($line, 'UTF-8') % $this->tab_width; |
| 1673 | - $line .= str_repeat(" ", $amount) . $block; |
|
| 1670 | + $line .= str_repeat(" ", $amount).$block; |
|
| 1674 | 1671 | } |
| 1675 | 1672 | return $line; |
| 1676 | 1673 | } |
@@ -375,6 +375,12 @@ discard block |
||
| 375 | 375 | |
| 376 | 376 | return array($parsed, $text); |
| 377 | 377 | } |
| 378 | + |
|
| 379 | + /** |
|
| 380 | + * @param string $text |
|
| 381 | + * @param string $hash_method |
|
| 382 | + * @param boolean $md_attr |
|
| 383 | + */ |
|
| 378 | 384 | function _hashHTMLBlocks_inHTML($text, $hash_method, $md_attr) { |
| 379 | 385 | # |
| 380 | 386 | # Parse HTML, calling _HashHTMLBlocks_InMarkdown for block tags. |
@@ -804,6 +810,9 @@ discard block |
||
| 804 | 810 | } |
| 805 | 811 | |
| 806 | 812 | |
| 813 | + /** |
|
| 814 | + * @return string |
|
| 815 | + */ |
|
| 807 | 816 | function processDefListItems($list_str) { |
| 808 | 817 | # |
| 809 | 818 | # Process the contents of a single definition list, splitting it |
@@ -84,8 +84,9 @@ discard block |
||
| 84 | 84 | $this->footnote_counter = 1; |
| 85 | 85 | |
| 86 | 86 | foreach ($this->predef_abbr as $abbr_word => $abbr_desc) { |
| 87 | - if ($this->abbr_word_re) |
|
| 88 | - $this->abbr_word_re .= '|'; |
|
| 87 | + if ($this->abbr_word_re) { |
|
| 88 | + $this->abbr_word_re .= '|'; |
|
| 89 | + } |
|
| 89 | 90 | $this->abbr_word_re .= preg_quote($abbr_word); |
| 90 | 91 | $this->abbr_desciptions[$abbr_word] = trim($abbr_desc); |
| 91 | 92 | } |
@@ -174,7 +175,9 @@ discard block |
||
| 174 | 175 | # |
| 175 | 176 | # Returns an array of that form: ( processed text , remaining text ) |
| 176 | 177 | # |
| 177 | - if ($text === '') return array('', ''); |
|
| 178 | + if ($text === '') { |
|
| 179 | + return array('', ''); |
|
| 180 | + } |
|
| 178 | 181 | |
| 179 | 182 | # Regex to check for the presense of newlines around a block tag. |
| 180 | 183 | $newline_before_re = '/(?:^\n?|\n\n)*$/'; |
@@ -280,8 +283,7 @@ discard block |
||
| 280 | 283 | # End marker found: pass text unchanged until marker. |
| 281 | 284 | $parsed .= $tag . $matches[0]; |
| 282 | 285 | $text = substr($text, strlen($matches[0])); |
| 283 | - } |
|
| 284 | - else { |
|
| 286 | + } else { |
|
| 285 | 287 | # Unmatched marker: just skip it. |
| 286 | 288 | $parsed .= $tag; |
| 287 | 289 | } |
@@ -298,8 +300,7 @@ discard block |
||
| 298 | 300 | # End marker found: pass text unchanged until marker. |
| 299 | 301 | $parsed .= $tag . $matches[0]; |
| 300 | 302 | $text = substr($text, strlen($matches[0])); |
| 301 | - } |
|
| 302 | - else { |
|
| 303 | + } else { |
|
| 303 | 304 | # No end marker: just skip it. |
| 304 | 305 | $parsed .= $tag; |
| 305 | 306 | } |
@@ -354,8 +355,11 @@ discard block |
||
| 354 | 355 | # |
| 355 | 356 | # Increase/decrease nested tag count. |
| 356 | 357 | # |
| 357 | - if ($tag{1} == '/') $depth--; |
|
| 358 | - else if ($tag{strlen($tag)-2} != '/') $depth++; |
|
| 358 | + if ($tag{1} == '/') { |
|
| 359 | + $depth--; |
|
| 360 | + } else if ($tag{strlen($tag)-2} != '/') { |
|
| 361 | + $depth++; |
|
| 362 | + } |
|
| 359 | 363 | |
| 360 | 364 | if ($depth < 0) { |
| 361 | 365 | # |
@@ -367,8 +371,7 @@ discard block |
||
| 367 | 371 | } |
| 368 | 372 | |
| 369 | 373 | $parsed .= $tag; |
| 370 | - } |
|
| 371 | - else { |
|
| 374 | + } else { |
|
| 372 | 375 | $parsed .= $tag; |
| 373 | 376 | } |
| 374 | 377 | } while ($depth >= 0); |
@@ -386,7 +389,9 @@ discard block |
||
| 386 | 389 | # |
| 387 | 390 | # Returns an array of that form: ( processed text , remaining text ) |
| 388 | 391 | # |
| 389 | - if ($text === '') return array('', ''); |
|
| 392 | + if ($text === '') { |
|
| 393 | + return array('', ''); |
|
| 394 | + } |
|
| 390 | 395 | |
| 391 | 396 | # Regex to match `markdown` attribute inside of a tag. |
| 392 | 397 | $markdown_attr_re = ' |
@@ -437,8 +442,9 @@ discard block |
||
| 437 | 442 | # Get the name of the starting tag. |
| 438 | 443 | # (This pattern makes $base_tag_name_re safe without quoting.) |
| 439 | 444 | # |
| 440 | - if (preg_match('/^<([\w:$]*)\b/', $text, $matches)) |
|
| 441 | - $base_tag_name_re = $matches[1]; |
|
| 445 | + if (preg_match('/^<([\w:$]*)\b/', $text, $matches)) { |
|
| 446 | + $base_tag_name_re = $matches[1]; |
|
| 447 | + } |
|
| 442 | 448 | |
| 443 | 449 | # |
| 444 | 450 | # Loop through every tag until we find the corresponding closing tag. |
@@ -475,15 +481,17 @@ discard block |
||
| 475 | 481 | { |
| 476 | 482 | # Just add the tag to the block as if it was text. |
| 477 | 483 | $block_text .= $tag; |
| 478 | - } |
|
| 479 | - else { |
|
| 484 | + } else { |
|
| 480 | 485 | # |
| 481 | 486 | # Increase/decrease nested tag count. Only do so if |
| 482 | 487 | # the tag's name match base tag's. |
| 483 | 488 | # |
| 484 | 489 | if (preg_match('{^</?'.$base_tag_name_re.'\b}', $tag)) { |
| 485 | - if ($tag{1} == '/') $depth--; |
|
| 486 | - else if ($tag{strlen($tag)-2} != '/') $depth++; |
|
| 490 | + if ($tag{1} == '/') { |
|
| 491 | + $depth--; |
|
| 492 | + } else if ($tag{strlen($tag)-2} != '/') { |
|
| 493 | + $depth++; |
|
| 494 | + } |
|
| 487 | 495 | } |
| 488 | 496 | |
| 489 | 497 | # |
@@ -530,13 +538,17 @@ discard block |
||
| 530 | 538 | } |
| 531 | 539 | |
| 532 | 540 | # Append tag content to parsed text. |
| 533 | - if (!$span_mode) $parsed .= "\n\n$block_text\n\n"; |
|
| 534 | - else $parsed .= "$block_text"; |
|
| 541 | + if (!$span_mode) { |
|
| 542 | + $parsed .= "\n\n$block_text\n\n"; |
|
| 543 | + } else { |
|
| 544 | + $parsed .= "$block_text"; |
|
| 545 | + } |
|
| 535 | 546 | |
| 536 | 547 | # Start over a new block. |
| 537 | 548 | $block_text = ""; |
| 549 | + } else { |
|
| 550 | + $block_text .= $tag; |
|
| 538 | 551 | } |
| 539 | - else $block_text .= $tag; |
|
| 540 | 552 | } |
| 541 | 553 | |
| 542 | 554 | } while ($depth > 0); |
@@ -601,12 +613,15 @@ discard block |
||
| 601 | 613 | return $text; |
| 602 | 614 | } |
| 603 | 615 | function _doHeaders_attr($attr) { |
| 604 | - if (empty($attr)) return ""; |
|
| 616 | + if (empty($attr)) { |
|
| 617 | + return ""; |
|
| 618 | + } |
|
| 605 | 619 | return " id=\"$attr\""; |
| 606 | 620 | } |
| 607 | 621 | function _doHeaders_callback_setext($matches) { |
| 608 | - if ($matches[3] == '-' && preg_match('{^- }', $matches[1])) |
|
| 609 | - return $matches[0]; |
|
| 622 | + if ($matches[3] == '-' && preg_match('{^- }', $matches[1])) { |
|
| 623 | + return $matches[0]; |
|
| 624 | + } |
|
| 610 | 625 | $level = $matches[3]{0} == '=' ? 1 : 2; |
| 611 | 626 | $attr = $this->_doHeaders_attr($id =& $matches[2]); |
| 612 | 627 | $block = "<h$level$attr>".$this->runSpanGamut($matches[1])."</h$level>"; |
@@ -704,10 +719,15 @@ discard block |
||
| 704 | 719 | # Reading alignement from header underline. |
| 705 | 720 | $separators = preg_split('/ *[|] */', $underline); |
| 706 | 721 | foreach ($separators as $n => $s) { |
| 707 | - if (preg_match('/^ *-+: *$/', $s)) $attr[$n] = ' align="right"'; |
|
| 708 | - else if (preg_match('/^ *:-+: *$/', $s))$attr[$n] = ' align="center"'; |
|
| 709 | - else if (preg_match('/^ *:-+ *$/', $s)) $attr[$n] = ' align="left"'; |
|
| 710 | - else $attr[$n] = ''; |
|
| 722 | + if (preg_match('/^ *-+: *$/', $s)) { |
|
| 723 | + $attr[$n] = ' align="right"'; |
|
| 724 | + } else if (preg_match('/^ *:-+: *$/', $s)) { |
|
| 725 | + $attr[$n] = ' align="center"'; |
|
| 726 | + } else if (preg_match('/^ *:-+ *$/', $s)) { |
|
| 727 | + $attr[$n] = ' align="left"'; |
|
| 728 | + } else { |
|
| 729 | + $attr[$n] = ''; |
|
| 730 | + } |
|
| 711 | 731 | } |
| 712 | 732 | |
| 713 | 733 | # Parsing span elements, including code spans, character escapes, |
@@ -720,8 +740,9 @@ discard block |
||
| 720 | 740 | $text = "<table>\n"; |
| 721 | 741 | $text .= "<thead>\n"; |
| 722 | 742 | $text .= "<tr>\n"; |
| 723 | - foreach ($headers as $n => $header) |
|
| 724 | - $text .= " <th$attr[$n]>".$this->runSpanGamut(trim($header))."</th>\n"; |
|
| 743 | + foreach ($headers as $n => $header) { |
|
| 744 | + $text .= " <th$attr[$n]>".$this->runSpanGamut(trim($header))."</th>\n"; |
|
| 745 | + } |
|
| 725 | 746 | $text .= "</tr>\n"; |
| 726 | 747 | $text .= "</thead>\n"; |
| 727 | 748 | |
@@ -739,8 +760,9 @@ discard block |
||
| 739 | 760 | $row_cells = array_pad($row_cells, $col_count, ''); |
| 740 | 761 | |
| 741 | 762 | $text .= "<tr>\n"; |
| 742 | - foreach ($row_cells as $n => $cell) |
|
| 743 | - $text .= " <td$attr[$n]>".$this->runSpanGamut(trim($cell))."</td>\n"; |
|
| 763 | + foreach ($row_cells as $n => $cell) { |
|
| 764 | + $text .= " <td$attr[$n]>".$this->runSpanGamut(trim($cell))."</td>\n"; |
|
| 765 | + } |
|
| 744 | 766 | $text .= "</tr>\n"; |
| 745 | 767 | } |
| 746 | 768 | $text .= "</tbody>\n"; |
@@ -866,8 +888,7 @@ discard block |
||
| 866 | 888 | $def = str_repeat(' ', strlen($marker_space)) . $def; |
| 867 | 889 | $def = $this->runBlockGamut($this->outdent($def . "\n\n")); |
| 868 | 890 | $def = "\n". $def ."\n"; |
| 869 | - } |
|
| 870 | - else { |
|
| 891 | + } else { |
|
| 871 | 892 | $def = rtrim($def); |
| 872 | 893 | $def = $this->runSpanGamut($this->outdent($def)); |
| 873 | 894 | } |
@@ -925,8 +946,7 @@ discard block |
||
| 925 | 946 | { |
| 926 | 947 | $codeblock = $this->format_codeblock($codeblock, $class); |
| 927 | 948 | $codeblock = $this->unhash($codeblock); |
| 928 | - } |
|
| 929 | - else |
|
| 949 | + } else |
|
| 930 | 950 | { |
| 931 | 951 | $codeblock = htmlspecialchars($codeblock, ENT_NOQUOTES); |
| 932 | 952 | $codeblock = preg_replace_callback('/^\n+/', array($this, '_doFencedCodeBlocks_newlines'), $codeblock); |
@@ -1161,8 +1181,9 @@ discard block |
||
| 1161 | 1181 | function _stripAbbreviations_callback($matches) { |
| 1162 | 1182 | $abbr_word = $matches[1]; |
| 1163 | 1183 | $abbr_desc = $matches[2]; |
| 1164 | - if ($this->abbr_word_re) |
|
| 1165 | - $this->abbr_word_re .= '|'; |
|
| 1184 | + if ($this->abbr_word_re) { |
|
| 1185 | + $this->abbr_word_re .= '|'; |
|
| 1186 | + } |
|
| 1166 | 1187 | $this->abbr_word_re .= preg_quote($abbr_word); |
| 1167 | 1188 | $this->abbr_desciptions[$abbr_word] = trim($abbr_desc); |
| 1168 | 1189 | return ''; # String that will replace the block |
@@ -142,7 +142,7 @@ discard block |
||
| 142 | 142 | # |
| 143 | 143 | # Call the HTML-in-Markdown hasher. |
| 144 | 144 | # |
| 145 | - list($text, ) = $this->_hashHTMLBlocks_inMarkdown($text); |
|
| 145 | + list($text,) = $this->_hashHTMLBlocks_inMarkdown($text); |
|
| 146 | 146 | |
| 147 | 147 | return $text; |
| 148 | 148 | } |
@@ -214,25 +214,25 @@ discard block |
||
| 214 | 214 | | |
| 215 | 215 | # Code span marker |
| 216 | 216 | `+ |
| 217 | - '. ( !$span ? ' # If not in span. |
|
| 217 | + '. (!$span ? ' # If not in span. |
|
| 218 | 218 | | |
| 219 | 219 | # Indented code block |
| 220 | 220 | (?: ^[ ]*\n | ^ | \n[ ]*\n ) |
| 221 | - [ ]{'.($indent+4).'}[^\n]* \n |
|
| 221 | + [ ]{'.($indent + 4).'}[^\n]* \n |
|
| 222 | 222 | (?> |
| 223 | - (?: [ ]{'.($indent+4).'}[^\n]* | [ ]* ) \n |
|
| 223 | + (?: [ ]{'.($indent + 4).'}[^\n]* | [ ]* ) \n |
|
| 224 | 224 | )* |
| 225 | 225 | | |
| 226 | 226 | # Fenced code block marker |
| 227 | 227 | (?> ^ | \n ) |
| 228 | 228 | [ ]{0,'.($indent).'}~~~+[ ]*\n |
| 229 | - ' : '' ). ' # End (if not is span). |
|
| 229 | + ' : '').' # End (if not is span). |
|
| 230 | 230 | ) |
| 231 | 231 | }xs'; |
| 232 | 232 | |
| 233 | 233 | |
| 234 | - $depth = 0; # Current depth inside the tag tree. |
|
| 235 | - $parsed = ""; # Parsed text that will be returned. |
|
| 234 | + $depth = 0; # Current depth inside the tag tree. |
|
| 235 | + $parsed = ""; # Parsed text that will be returned. |
|
| 236 | 236 | |
| 237 | 237 | # |
| 238 | 238 | # Loop through every tag until we find the closing tag of the parent |
@@ -253,7 +253,7 @@ discard block |
||
| 253 | 253 | if ($span) { |
| 254 | 254 | $void = $this->hashPart("", ':'); |
| 255 | 255 | $newline = "$void\n"; |
| 256 | - $parts[0] = $void . str_replace("\n", $newline, $parts[0]) . $void; |
|
| 256 | + $parts[0] = $void.str_replace("\n", $newline, $parts[0]).$void; |
|
| 257 | 257 | } |
| 258 | 258 | |
| 259 | 259 | $parsed .= $parts[0]; # Text before current tag. |
@@ -278,7 +278,7 @@ discard block |
||
| 278 | 278 | $text, $matches)) |
| 279 | 279 | { |
| 280 | 280 | # End marker found: pass text unchanged until marker. |
| 281 | - $parsed .= $tag . $matches[0]; |
|
| 281 | + $parsed .= $tag.$matches[0]; |
|
| 282 | 282 | $text = substr($text, strlen($matches[0])); |
| 283 | 283 | } |
| 284 | 284 | else { |
@@ -289,14 +289,14 @@ discard block |
||
| 289 | 289 | # |
| 290 | 290 | # Check for: Fenced code block marker. |
| 291 | 291 | # |
| 292 | - else if (preg_match('{^\n?[ ]{0,'.($indent+3).'}~}', $tag)) { |
|
| 292 | + else if (preg_match('{^\n?[ ]{0,'.($indent + 3).'}~}', $tag)) { |
|
| 293 | 293 | # Fenced code block marker: find matching end marker. |
| 294 | 294 | $tag_re = preg_quote(trim($tag)); |
| 295 | 295 | if (preg_match('{^(?>.*\n)+?[ ]{0,'.($indent).'}'.$tag_re.'[ ]*\n}', $text, |
| 296 | 296 | $matches)) |
| 297 | 297 | { |
| 298 | 298 | # End marker found: pass text unchanged until marker. |
| 299 | - $parsed .= $tag . $matches[0]; |
|
| 299 | + $parsed .= $tag.$matches[0]; |
|
| 300 | 300 | $text = substr($text, strlen($matches[0])); |
| 301 | 301 | } |
| 302 | 302 | else { |
@@ -318,14 +318,14 @@ discard block |
||
| 318 | 318 | # used as a block tag (tag is alone on it's line). |
| 319 | 319 | # |
| 320 | 320 | else if (preg_match('{^<(?:'.$this->block_tags_re.')\b}', $tag) || |
| 321 | - ( preg_match('{^<(?:'.$this->context_block_tags_re.')\b}', $tag) && |
|
| 321 | + (preg_match('{^<(?:'.$this->context_block_tags_re.')\b}', $tag) && |
|
| 322 | 322 | preg_match($newline_before_re, $parsed) && |
| 323 | - preg_match($newline_after_re, $text) ) |
|
| 323 | + preg_match($newline_after_re, $text)) |
|
| 324 | 324 | ) |
| 325 | 325 | { |
| 326 | 326 | # Need to parse tag and following text using the HTML parser. |
| 327 | 327 | list($block_text, $text) = |
| 328 | - $this->_hashHTMLBlocks_inHTML($tag . $text, "hashBlock", true); |
|
| 328 | + $this->_hashHTMLBlocks_inHTML($tag.$text, "hashBlock", true); |
|
| 329 | 329 | |
| 330 | 330 | # Make sure it stays outside of any paragraph by adding newlines. |
| 331 | 331 | $parsed .= "\n\n$block_text\n\n"; |
@@ -340,7 +340,7 @@ discard block |
||
| 340 | 340 | # Need to parse tag and following text using the HTML parser. |
| 341 | 341 | # (don't check for markdown attribute) |
| 342 | 342 | list($block_text, $text) = |
| 343 | - $this->_hashHTMLBlocks_inHTML($tag . $text, "hashClean", false); |
|
| 343 | + $this->_hashHTMLBlocks_inHTML($tag.$text, "hashClean", false); |
|
| 344 | 344 | |
| 345 | 345 | $parsed .= $block_text; |
| 346 | 346 | } |
@@ -355,14 +355,14 @@ discard block |
||
| 355 | 355 | # Increase/decrease nested tag count. |
| 356 | 356 | # |
| 357 | 357 | if ($tag{1} == '/') $depth--; |
| 358 | - else if ($tag{strlen($tag)-2} != '/') $depth++; |
|
| 358 | + else if ($tag{strlen($tag) - 2} != '/') $depth++; |
|
| 359 | 359 | |
| 360 | 360 | if ($depth < 0) { |
| 361 | 361 | # |
| 362 | 362 | # Going out of parent element. Clean up and break so we |
| 363 | 363 | # return to the calling function. |
| 364 | 364 | # |
| 365 | - $text = $tag . $text; |
|
| 365 | + $text = $tag.$text; |
|
| 366 | 366 | break; |
| 367 | 367 | } |
| 368 | 368 | |
@@ -427,11 +427,11 @@ discard block |
||
| 427 | 427 | ) |
| 428 | 428 | }xs'; |
| 429 | 429 | |
| 430 | - $original_text = $text; # Save original text in case of faliure. |
|
| 430 | + $original_text = $text; # Save original text in case of faliure. |
|
| 431 | 431 | |
| 432 | - $depth = 0; # Current depth inside the tag tree. |
|
| 433 | - $block_text = ""; # Temporary text holder for current text. |
|
| 434 | - $parsed = ""; # Parsed text that will be returned. |
|
| 432 | + $depth = 0; # Current depth inside the tag tree. |
|
| 433 | + $block_text = ""; # Temporary text holder for current text. |
|
| 434 | + $parsed = ""; # Parsed text that will be returned. |
|
| 435 | 435 | |
| 436 | 436 | # |
| 437 | 437 | # Get the name of the starting tag. |
@@ -483,7 +483,7 @@ discard block |
||
| 483 | 483 | # |
| 484 | 484 | if (preg_match('{^</?'.$base_tag_name_re.'\b}', $tag)) { |
| 485 | 485 | if ($tag{1} == '/') $depth--; |
| 486 | - else if ($tag{strlen($tag)-2} != '/') $depth++; |
|
| 486 | + else if ($tag{strlen($tag) - 2} != '/') $depth++; |
|
| 487 | 487 | } |
| 488 | 488 | |
| 489 | 489 | # |
@@ -491,13 +491,13 @@ discard block |
||
| 491 | 491 | # |
| 492 | 492 | if ($md_attr && |
| 493 | 493 | preg_match($markdown_attr_re, $tag, $attr_m) && |
| 494 | - preg_match('/^1|block|span$/', $attr_m[2] . $attr_m[3])) |
|
| 494 | + preg_match('/^1|block|span$/', $attr_m[2].$attr_m[3])) |
|
| 495 | 495 | { |
| 496 | 496 | # Remove `markdown` attribute from opening tag. |
| 497 | 497 | $tag = preg_replace($markdown_attr_re, '', $tag); |
| 498 | 498 | |
| 499 | 499 | # Check if text inside this tag must be parsed in span mode. |
| 500 | - $this->mode = $attr_m[2] . $attr_m[3]; |
|
| 500 | + $this->mode = $attr_m[2].$attr_m[3]; |
|
| 501 | 501 | $span_mode = $this->mode == 'span' || $this->mode != 'block' && |
| 502 | 502 | preg_match('{^<(?:'.$this->contain_span_tags_re.')\b}', $tag); |
| 503 | 503 | |
@@ -608,15 +608,15 @@ discard block |
||
| 608 | 608 | if ($matches[3] == '-' && preg_match('{^- }', $matches[1])) |
| 609 | 609 | return $matches[0]; |
| 610 | 610 | $level = $matches[3]{0} == '=' ? 1 : 2; |
| 611 | - $attr = $this->_doHeaders_attr($id =& $matches[2]); |
|
| 611 | + $attr = $this->_doHeaders_attr($id = & $matches[2]); |
|
| 612 | 612 | $block = "<h$level$attr>".$this->runSpanGamut($matches[1])."</h$level>"; |
| 613 | - return "\n" . $this->hashBlock($block) . "\n\n"; |
|
| 613 | + return "\n".$this->hashBlock($block)."\n\n"; |
|
| 614 | 614 | } |
| 615 | 615 | function _doHeaders_callback_atx($matches) { |
| 616 | 616 | $level = strlen($matches[1]); |
| 617 | - $attr = $this->_doHeaders_attr($id =& $matches[3]); |
|
| 617 | + $attr = $this->_doHeaders_attr($id = & $matches[3]); |
|
| 618 | 618 | $block = "<h$level$attr>".$this->runSpanGamut($matches[2])."</h$level>"; |
| 619 | - return "\n" . $this->hashBlock($block) . "\n\n"; |
|
| 619 | + return "\n".$this->hashBlock($block)."\n\n"; |
|
| 620 | 620 | } |
| 621 | 621 | |
| 622 | 622 | |
@@ -682,8 +682,8 @@ discard block |
||
| 682 | 682 | return $text; |
| 683 | 683 | } |
| 684 | 684 | function _doTable_leadingPipe_callback($matches) { |
| 685 | - $head = $matches[1]; |
|
| 686 | - $underline = $matches[2]; |
|
| 685 | + $head = $matches[1]; |
|
| 686 | + $underline = $matches[2]; |
|
| 687 | 687 | $content = $matches[3]; |
| 688 | 688 | |
| 689 | 689 | # Remove leading pipe for each row. |
@@ -692,17 +692,17 @@ discard block |
||
| 692 | 692 | return $this->_doTable_callback(array($matches[0], $head, $underline, $content)); |
| 693 | 693 | } |
| 694 | 694 | function _doTable_callback($matches) { |
| 695 | - $head = $matches[1]; |
|
| 696 | - $underline = $matches[2]; |
|
| 697 | - $content = $matches[3]; |
|
| 695 | + $head = $matches[1]; |
|
| 696 | + $underline = $matches[2]; |
|
| 697 | + $content = $matches[3]; |
|
| 698 | 698 | |
| 699 | 699 | # Remove any tailing pipes for each line. |
| 700 | - $head = preg_replace('/[|] *$/m', '', $head); |
|
| 701 | - $underline = preg_replace('/[|] *$/m', '', $underline); |
|
| 702 | - $content = preg_replace('/[|] *$/m', '', $content); |
|
| 700 | + $head = preg_replace('/[|] *$/m', '', $head); |
|
| 701 | + $underline = preg_replace('/[|] *$/m', '', $underline); |
|
| 702 | + $content = preg_replace('/[|] *$/m', '', $content); |
|
| 703 | 703 | |
| 704 | 704 | # Reading alignement from header underline. |
| 705 | - $separators = preg_split('/ *[|] */', $underline); |
|
| 705 | + $separators = preg_split('/ *[|] */', $underline); |
|
| 706 | 706 | foreach ($separators as $n => $s) { |
| 707 | 707 | if (preg_match('/^ *-+: *$/', $s)) $attr[$n] = ' align="right"'; |
| 708 | 708 | else if (preg_match('/^ *:-+: *$/', $s))$attr[$n] = ' align="center"'; |
@@ -712,9 +712,9 @@ discard block |
||
| 712 | 712 | |
| 713 | 713 | # Parsing span elements, including code spans, character escapes, |
| 714 | 714 | # and inline HTML tags, so that pipes inside those gets ignored. |
| 715 | - $head = $this->parseSpan($head); |
|
| 716 | - $headers = preg_split('/ *[|] */', $head); |
|
| 717 | - $col_count = count($headers); |
|
| 715 | + $head = $this->parseSpan($head); |
|
| 716 | + $headers = preg_split('/ *[|] */', $head); |
|
| 717 | + $col_count = count($headers); |
|
| 718 | 718 | |
| 719 | 719 | # Write column headers. |
| 720 | 720 | $text = "<table>\n"; |
@@ -746,7 +746,7 @@ discard block |
||
| 746 | 746 | $text .= "</tbody>\n"; |
| 747 | 747 | $text .= "</table>"; |
| 748 | 748 | |
| 749 | - return $this->hashBlock($text) . "\n"; |
|
| 749 | + return $this->hashBlock($text)."\n"; |
|
| 750 | 750 | } |
| 751 | 751 | |
| 752 | 752 | |
@@ -799,8 +799,8 @@ discard block |
||
| 799 | 799 | # Turn double returns into triple returns, so that we can make a |
| 800 | 800 | # paragraph for the last item in a list, if necessary: |
| 801 | 801 | $result = trim($this->processDefListItems($list)); |
| 802 | - $result = "<dl>\n" . $result . "\n</dl>"; |
|
| 803 | - return $this->hashBlock($result) . "\n\n"; |
|
| 802 | + $result = "<dl>\n".$result."\n</dl>"; |
|
| 803 | + return $this->hashBlock($result)."\n\n"; |
|
| 804 | 804 | } |
| 805 | 805 | |
| 806 | 806 | |
@@ -852,27 +852,27 @@ discard block |
||
| 852 | 852 | $text = ''; |
| 853 | 853 | foreach ($terms as $term) { |
| 854 | 854 | $term = $this->runSpanGamut(trim($term)); |
| 855 | - $text .= "\n<dt>" . $term . "</dt>"; |
|
| 855 | + $text .= "\n<dt>".$term."</dt>"; |
|
| 856 | 856 | } |
| 857 | - return $text . "\n"; |
|
| 857 | + return $text."\n"; |
|
| 858 | 858 | } |
| 859 | 859 | function _processDefListItems_callback_dd($matches) { |
| 860 | 860 | $leading_line = $matches[1]; |
| 861 | 861 | $marker_space = $matches[2]; |
| 862 | - $def = $matches[3]; |
|
| 862 | + $def = $matches[3]; |
|
| 863 | 863 | |
| 864 | 864 | if ($leading_line || preg_match('/\n{2,}/', $def)) { |
| 865 | 865 | # Replace marker with the appropriate whitespace indentation |
| 866 | - $def = str_repeat(' ', strlen($marker_space)) . $def; |
|
| 867 | - $def = $this->runBlockGamut($this->outdent($def . "\n\n")); |
|
| 868 | - $def = "\n". $def ."\n"; |
|
| 866 | + $def = str_repeat(' ', strlen($marker_space)).$def; |
|
| 867 | + $def = $this->runBlockGamut($this->outdent($def."\n\n")); |
|
| 868 | + $def = "\n".$def."\n"; |
|
| 869 | 869 | } |
| 870 | 870 | else { |
| 871 | 871 | $def = rtrim($def); |
| 872 | 872 | $def = $this->runSpanGamut($this->outdent($def)); |
| 873 | 873 | } |
| 874 | 874 | |
| 875 | - return "\n<dd>" . $def . "</dd>\n"; |
|
| 875 | + return "\n<dd>".$def."</dd>\n"; |
|
| 876 | 876 | } |
| 877 | 877 | |
| 878 | 878 | /** |
@@ -932,7 +932,7 @@ discard block |
||
| 932 | 932 | $codeblock = preg_replace_callback('/^\n+/', array($this, '_doFencedCodeBlocks_newlines'), $codeblock); |
| 933 | 933 | } |
| 934 | 934 | |
| 935 | - $codeblock = '<pre' . ($class ? ' class="' . $class . '"' : '') . '><code>' . $codeblock . '</code></pre>'; |
|
| 935 | + $codeblock = '<pre'.($class ? ' class="'.$class.'"' : '').'><code>'.$codeblock.'</code></pre>'; |
|
| 936 | 936 | |
| 937 | 937 | return "\n\n".$this->hashBlock($codeblock)."\n\n"; |
| 938 | 938 | } |
@@ -1030,7 +1030,7 @@ discard block |
||
| 1030 | 1030 | return $text; |
| 1031 | 1031 | } |
| 1032 | 1032 | function _stripFootnotes_callback($matches) { |
| 1033 | - $note_id = $this->fn_id_prefix . $matches[1]; |
|
| 1033 | + $note_id = $this->fn_id_prefix.$matches[1]; |
|
| 1034 | 1034 | $this->footnotes[$note_id] = $this->outdent($matches[2]); |
| 1035 | 1035 | return ''; # String that will replace the block |
| 1036 | 1036 | } |
@@ -1058,7 +1058,7 @@ discard block |
||
| 1058 | 1058 | if (!empty($this->footnotes_ordered)) { |
| 1059 | 1059 | $text .= "\n\n"; |
| 1060 | 1060 | $text .= "<div class=\"footnotes\">\n"; |
| 1061 | - $text .= "<hr". $this->empty_element_suffix ."\n"; |
|
| 1061 | + $text .= "<hr".$this->empty_element_suffix."\n"; |
|
| 1062 | 1062 | $text .= "<ol>\n\n"; |
| 1063 | 1063 | |
| 1064 | 1064 | $attr = " rev=\"footnote\""; |
@@ -1090,13 +1090,13 @@ discard block |
||
| 1090 | 1090 | # Add backlink to last paragraph; create new paragraph if needed. |
| 1091 | 1091 | $backlink = "<a href=\"#fnref:$note_id\"$attr>↩</a>"; |
| 1092 | 1092 | if (preg_match('{</p>$}', $footnote)) { |
| 1093 | - $footnote = substr($footnote, 0, -4) . " $backlink</p>"; |
|
| 1093 | + $footnote = substr($footnote, 0, -4)." $backlink</p>"; |
|
| 1094 | 1094 | } else { |
| 1095 | 1095 | $footnote .= "\n\n<p>$backlink</p>"; |
| 1096 | 1096 | } |
| 1097 | 1097 | |
| 1098 | 1098 | $text .= "<li id=\"fn:$note_id\">\n"; |
| 1099 | - $text .= $footnote . "\n"; |
|
| 1099 | + $text .= $footnote."\n"; |
|
| 1100 | 1100 | $text .= "</li>\n\n"; |
| 1101 | 1101 | } |
| 1102 | 1102 | |
@@ -1106,7 +1106,7 @@ discard block |
||
| 1106 | 1106 | return $text; |
| 1107 | 1107 | } |
| 1108 | 1108 | function _appendFootnotes_callback($matches) { |
| 1109 | - $node_id = $this->fn_id_prefix . $matches[1]; |
|
| 1109 | + $node_id = $this->fn_id_prefix.$matches[1]; |
|
| 1110 | 1110 | |
| 1111 | 1111 | # Create footnote marker only if it has a corresponding footnote *and* |
| 1112 | 1112 | # the footnote hasn't been used by another marker. |
@@ -219,6 +219,9 @@ discard block |
||
| 219 | 219 | return $text; |
| 220 | 220 | } |
| 221 | 221 | |
| 222 | + /** |
|
| 223 | + * @param string $text |
|
| 224 | + */ |
|
| 222 | 225 | private function doSourcePublish($text) |
| 223 | 226 | { |
| 224 | 227 | return Patron($text); |
@@ -796,6 +799,9 @@ discard block |
||
| 796 | 799 | ** |
| 797 | 800 | */ |
| 798 | 801 | |
| 802 | + /** |
|
| 803 | + * @param string $markup |
|
| 804 | + */ |
|
| 799 | 805 | function createElement($markup, $attrs, $body=NULL) |
| 800 | 806 | { |
| 801 | 807 | $rc = array(); |
@@ -934,6 +940,10 @@ discard block |
||
| 934 | 940 | # PHP source highlighter |
| 935 | 941 | # |
| 936 | 942 | |
| 943 | + /** |
|
| 944 | + * @param string $text |
|
| 945 | + * @param string $marker |
|
| 946 | + */ |
|
| 937 | 947 | function doSourceCommentLine($text, $marker) |
| 938 | 948 | { |
| 939 | 949 | $lines = explode("\n", $text); |
@@ -983,6 +993,9 @@ discard block |
||
| 983 | 993 | const QUOTE_DOUBLE = '"'; |
| 984 | 994 | const ESCAPE = '\\'; |
| 985 | 995 | |
| 996 | + /** |
|
| 997 | + * @param string $text |
|
| 998 | + */ |
|
| 986 | 999 | function doSourceString($text) |
| 987 | 1000 | { |
| 988 | 1001 | $out = NULL; |
@@ -1124,7 +1124,7 @@ |
||
| 1124 | 1124 | 'break', |
| 1125 | 1125 | 'class', |
| 1126 | 1126 | 'const', |
| 1127 | - 'endif', |
|
| 1127 | + 'endif', |
|
| 1128 | 1128 | 'case', |
| 1129 | 1129 | 'true', |
| 1130 | 1130 | 'self', |
@@ -513,8 +513,7 @@ discard block |
||
| 513 | 513 | if ($style) |
| 514 | 514 | { |
| 515 | 515 | $value = '<p style="' . $style . '">' . $value . '</p>'; |
| 516 | - } |
|
| 517 | - else |
|
| 516 | + } else |
|
| 518 | 517 | { |
| 519 | 518 | $value = "<p>$value</p>"; |
| 520 | 519 | } |
@@ -704,8 +703,7 @@ discard block |
||
| 704 | 703 | ) |
| 705 | 704 | ->fetchAndClose(); |
| 706 | 705 | |
| 707 | - } |
|
| 708 | - else |
|
| 706 | + } else |
|
| 709 | 707 | { |
| 710 | 708 | $entry = $module->model()->loadRange |
| 711 | 709 | ( |
@@ -953,16 +951,13 @@ discard block |
||
| 953 | 951 | if (($c == $in_quotes) && (($i > 1) && ($line{$i - 1} != '\\'))) |
| 954 | 952 | { |
| 955 | 953 | $in_quotes = NULL; |
| 956 | - } |
|
| 957 | - else if ($in_quotes) |
|
| 954 | + } else if ($in_quotes) |
|
| 958 | 955 | { |
| 959 | 956 | continue; |
| 960 | - } |
|
| 961 | - else if (($c == '\'') || ($c == '"')) |
|
| 957 | + } else if (($c == '\'') || ($c == '"')) |
|
| 962 | 958 | { |
| 963 | 959 | $in_quotes = $c; |
| 964 | - } |
|
| 965 | - else if (substr($line, $i, $marker_len) == $marker) |
|
| 960 | + } else if (substr($line, $i, $marker_len) == $marker) |
|
| 966 | 961 | { |
| 967 | 962 | // echo l('found marker at \1 (\2)<br />', $i, \ICanBoogie\escape(substr($line, $i, 16))); |
| 968 | 963 | |
@@ -1005,27 +1000,23 @@ discard block |
||
| 1005 | 1000 | $escaped = false; |
| 1006 | 1001 | |
| 1007 | 1002 | continue; |
| 1008 | - } |
|
| 1009 | - else if ($quote_start !== null && $c == $quote) |
|
| 1003 | + } else if ($quote_start !== null && $c == $quote) |
|
| 1010 | 1004 | { |
| 1011 | 1005 | $out .= $this->hashPart('<span class="string">' . \ICanBoogie\escape($quote . substr($text, $quote_start + 1, $i - $quote_start - 1) . $quote) . '</span>'); |
| 1012 | 1006 | |
| 1013 | 1007 | $quote_start = null; |
| 1014 | 1008 | $quote = null; |
| 1015 | - } |
|
| 1016 | - else |
|
| 1009 | + } else |
|
| 1017 | 1010 | { |
| 1018 | 1011 | $quote = $c; |
| 1019 | 1012 | $quote_start = $i; |
| 1020 | 1013 | } |
| 1021 | - } |
|
| 1022 | - else |
|
| 1014 | + } else |
|
| 1023 | 1015 | { |
| 1024 | 1016 | if ($c == '\\') |
| 1025 | 1017 | { |
| 1026 | 1018 | $escaped = !$escaped; |
| 1027 | - } |
|
| 1028 | - else |
|
| 1019 | + } else |
|
| 1029 | 1020 | { |
| 1030 | 1021 | $escaped = false; |
| 1031 | 1022 | } |
@@ -27,18 +27,18 @@ discard block |
||
| 27 | 27 | @define('txt_registered', '®'); |
| 28 | 28 | @define('txt_copyright', '©'); |
| 29 | 29 | */ |
| 30 | -@define('txt_apostrophe', '\''); |
|
| 31 | -@define('txt_quote_double_open', '« '); |
|
| 30 | +@define('txt_apostrophe', '\''); |
|
| 31 | +@define('txt_quote_double_open', '« '); |
|
| 32 | 32 | @define('txt_quote_double_close', ' »'); |
| 33 | -@define('txt_prime', 'ʹ'); |
|
| 34 | -@define('txt_prime_double', 'ʺ'); |
|
| 35 | -@define('txt_ellipsis', '…'); |
|
| 36 | -@define('txt_emdash', '—'); |
|
| 37 | -@define('txt_endash', '–'); |
|
| 38 | -@define('txt_dimension', '×'); |
|
| 39 | -@define('txt_trademark', '™'); |
|
| 40 | -@define('txt_registered', '®'); |
|
| 41 | -@define('txt_copyright', '©'); |
|
| 33 | +@define('txt_prime', 'ʹ'); |
|
| 34 | +@define('txt_prime_double', 'ʺ'); |
|
| 35 | +@define('txt_ellipsis', '…'); |
|
| 36 | +@define('txt_emdash', '—'); |
|
| 37 | +@define('txt_endash', '–'); |
|
| 38 | +@define('txt_dimension', '×'); |
|
| 39 | +@define('txt_trademark', '™'); |
|
| 40 | +@define('txt_registered', '®'); |
|
| 41 | +@define('txt_copyright', '©'); |
|
| 42 | 42 | |
| 43 | 43 | class Textmark_Parser extends MarkdownExtra_Parser |
| 44 | 44 | { |
@@ -52,14 +52,12 @@ discard block |
||
| 52 | 52 | |
| 53 | 53 | function __construct() |
| 54 | 54 | { |
| 55 | - $this->early_gamut += array |
|
| 56 | - ( |
|
| 55 | + $this->early_gamut += array( |
|
| 57 | 56 | 'doShell' => 5, |
| 58 | 57 | 'doURL' => 6 |
| 59 | 58 | ); |
| 60 | 59 | |
| 61 | - $this->span_gamut += array |
|
| 62 | - ( |
|
| 60 | + $this->span_gamut += array( |
|
| 63 | 61 | 'doGlyphs' => 70, |
| 64 | 62 | 'doSpan' => 71 |
| 65 | 63 | ); |
@@ -69,8 +67,7 @@ discard block |
||
| 69 | 67 | |
| 70 | 68 | public function doShell($text) |
| 71 | 69 | { |
| 72 | - return preg_replace_callback |
|
| 73 | - ( |
|
| 70 | + return preg_replace_callback( |
|
| 74 | 71 | '{^\$\s+([^\n]+)\n}xm', array($this, 'doShell_callback'), $text |
| 75 | 72 | ); |
| 76 | 73 | |
@@ -79,7 +76,7 @@ discard block |
||
| 79 | 76 | |
| 80 | 77 | protected function doShell_callback($matches) |
| 81 | 78 | { |
| 82 | - $text = '<pre class="markdown shell">$ ' . $matches[1] . '</pre>' . PHP_EOL; |
|
| 79 | + $text = '<pre class="markdown shell">$ '.$matches[1].'</pre>'.PHP_EOL; |
|
| 83 | 80 | |
| 84 | 81 | return $this->hashBlock($text); |
| 85 | 82 | } |
@@ -210,9 +207,9 @@ discard block |
||
| 210 | 207 | |
| 211 | 208 | switch ($type) |
| 212 | 209 | { |
| 213 | - case 'php': return '<pre class="php"><code>' . $this->doSourcePHP($text) . '</code></pre>'; |
|
| 214 | - case 'html': return '<pre class="html"><code>' . $this->doSourceHTML($text) . '</code></pre>'; |
|
| 215 | - case 'raw': return '<pre><code>' . $this->doSourceRaw($text) . '</code></pre>'; |
|
| 210 | + case 'php': return '<pre class="php"><code>'.$this->doSourcePHP($text).'</code></pre>'; |
|
| 211 | + case 'html': return '<pre class="html"><code>'.$this->doSourceHTML($text).'</code></pre>'; |
|
| 212 | + case 'raw': return '<pre><code>'.$this->doSourceRaw($text).'</code></pre>'; |
|
| 216 | 213 | case 'publish': return $this->doSourcePublish($text); |
| 217 | 214 | } |
| 218 | 215 | |
@@ -271,8 +268,7 @@ discard block |
||
| 271 | 268 | |
| 272 | 269 | */ |
| 273 | 270 | |
| 274 | - $text = preg_replace_callback |
|
| 275 | - ( |
|
| 271 | + $text = preg_replace_callback( |
|
| 276 | 272 | '{ |
| 277 | 273 | ^h([1-6])\. # $1 = string of h? |
| 278 | 274 | [ ]* |
@@ -296,9 +292,9 @@ discard block |
||
| 296 | 292 | case '-': $level = 3; break; |
| 297 | 293 | } |
| 298 | 294 | |
| 299 | - $block = "<h$level>" . $this->runSpanGamut($matches[1]) . "</h$level>"; |
|
| 295 | + $block = "<h$level>".$this->runSpanGamut($matches[1])."</h$level>"; |
|
| 300 | 296 | |
| 301 | - return "\n" . $this->hashBlock($block) . "\n\n"; |
|
| 297 | + return "\n".$this->hashBlock($block)."\n\n"; |
|
| 302 | 298 | } |
| 303 | 299 | |
| 304 | 300 | function _doHeaders_callback_tp($matches) |
@@ -306,8 +302,8 @@ discard block |
||
| 306 | 302 | // \ICanBoogie\log('<pre>doHeaders[atx]: \1</pre>', print_r($matches, true)); |
| 307 | 303 | |
| 308 | 304 | $level = $matches[1]; |
| 309 | - $block = "<h$level>" . $this->runSpanGamut($matches[2]) . "</h$level>"; |
|
| 310 | - return "\n" . $this->hashBlock($block) . "\n\n"; |
|
| 305 | + $block = "<h$level>".$this->runSpanGamut($matches[2])."</h$level>"; |
|
| 306 | + return "\n".$this->hashBlock($block)."\n\n"; |
|
| 311 | 307 | } |
| 312 | 308 | |
| 313 | 309 | /* |
@@ -327,14 +323,14 @@ discard block |
||
| 327 | 323 | |
| 328 | 324 | $c = "(?:{$clas}|{$styl}|{$lnge}|{$hlgn})*"; |
| 329 | 325 | |
| 330 | - $qtags = array('\*\*','\*','\?\?','-','__','_','%','\+','~','\^'); |
|
| 326 | + $qtags = array('\*\*', '\*', '\?\?', '-', '__', '_', '%', '\+', '~', '\^'); |
|
| 331 | 327 | $pnct = ".,\"'?!;:"; |
| 332 | 328 | |
| 333 | - foreach($qtags as $f) { |
|
| 329 | + foreach ($qtags as $f) { |
|
| 334 | 330 | $text = preg_replace_callback("/ |
| 335 | 331 | (^|(?<=[\s>$pnct\(])|[{[]) |
| 336 | 332 | ($f)(?!$f) |
| 337 | - (" . $c . ") |
|
| 333 | + (".$c.") |
|
| 338 | 334 | (?::(\S+))? |
| 339 | 335 | ([^\s$f]+|\S.*?[^\s$f\n]) |
| 340 | 336 | ([$pnct]*) |
@@ -382,23 +378,22 @@ discard block |
||
| 382 | 378 | { |
| 383 | 379 | // echo l('doGlyphs: "\1"<br />', \ICanBoogie\escape($text)); |
| 384 | 380 | |
| 385 | - $glyph_search = array |
|
| 386 | - ( |
|
| 381 | + $glyph_search = array( |
|
| 387 | 382 | // '/(\w)\'(\w)/', // apostrophe's |
| 388 | - '/(\s)\'(\d+\w?)\b(?!\')/u', // back in '88 |
|
| 383 | + '/(\s)\'(\d+\w?)\b(?!\')/u', // back in '88 |
|
| 389 | 384 | // '/(\S)\'(?=\s|[[:punct:]]|<|$)/', // single closing |
| 390 | 385 | // '/\'/', // single opening |
| 391 | - '/(\S)\"(?=\s|[[:punct:]]|<|$)/u', // double closing |
|
| 392 | - '/"/', // double opening |
|
| 393 | - '/\b([A-Z][A-Z0-9]{2,})\b(?:[(]([^)]*)[)])/u', // 3+ uppercase acronym |
|
| 394 | - '/(?<=\s|^|[>(;-])([A-Z]{3,})([a-z]*)(?=\s|[[:punct:]]|<|$)/u', // 3+ uppercase |
|
| 395 | - '/([^.]?)\.{3}/u', // ellipsis |
|
| 396 | - '/(\s?)--(\s?)/u', // em dash |
|
| 397 | - '/\s-(?:\s|$)/u', // en dash |
|
| 398 | - '/(\d+)( ?)x( ?)(?=\d+)/u', // dimension sign |
|
| 399 | - '/(\b ?|\s|^)[([]TM[])]/iu', // trademark |
|
| 400 | - '/(\b ?|\s|^)[([]R[])]/iu', // registered |
|
| 401 | - '/(\b ?|\s|^)[([]C[])]/iu', // copyright |
|
| 386 | + '/(\S)\"(?=\s|[[:punct:]]|<|$)/u', // double closing |
|
| 387 | + '/"/', // double opening |
|
| 388 | + '/\b([A-Z][A-Z0-9]{2,})\b(?:[(]([^)]*)[)])/u', // 3+ uppercase acronym |
|
| 389 | + '/(?<=\s|^|[>(;-])([A-Z]{3,})([a-z]*)(?=\s|[[:punct:]]|<|$)/u', // 3+ uppercase |
|
| 390 | + '/([^.]?)\.{3}/u', // ellipsis |
|
| 391 | + '/(\s?)--(\s?)/u', // em dash |
|
| 392 | + '/\s-(?:\s|$)/u', // en dash |
|
| 393 | + '/(\d+)( ?)x( ?)(?=\d+)/u', // dimension sign |
|
| 394 | + '/(\b ?|\s|^)[([]TM[])]/iu', // trademark |
|
| 395 | + '/(\b ?|\s|^)[([]R[])]/iu', // registered |
|
| 396 | + '/(\b ?|\s|^)[([]C[])]/iu', // copyright |
|
| 402 | 397 | |
| 403 | 398 | # |
| 404 | 399 | # the following is for french language |
@@ -407,29 +402,28 @@ discard block |
||
| 407 | 402 | '#\s(\!|\?|\:|\;|\-)#u', |
| 408 | 403 | ); |
| 409 | 404 | |
| 410 | - $glyph_replace = array |
|
| 411 | - ( |
|
| 405 | + $glyph_replace = array( |
|
| 412 | 406 | // '$1'.$txt_apostrophe.'$2', // apostrophe's |
| 413 | - '$1'.txt_apostrophe.'$2', // back in '88 |
|
| 407 | + '$1'.txt_apostrophe.'$2', // back in '88 |
|
| 414 | 408 | // '$1'.$txt_quote_single_close, // single closing |
| 415 | 409 | // $txt_quote_single_open, // single opening |
| 416 | - '$1'.txt_quote_double_close, // double closing |
|
| 417 | - txt_quote_double_open, // double opening |
|
| 418 | - '<acronym title="$2">$1</acronym>', // 3+ uppercase acronym |
|
| 419 | - '<span class="caps">$1</span>$2', // 3+ uppercase |
|
| 420 | - '$1'.txt_ellipsis, // ellipsis |
|
| 421 | - '$1'.txt_emdash.'$2', // em dash |
|
| 422 | - ' '.txt_endash.' ', // en dash |
|
| 423 | - '$1$2'.txt_dimension.'$3', // dimension sign |
|
| 424 | - '$1'.txt_trademark, // trademark |
|
| 425 | - '$1'.txt_registered, // registered |
|
| 426 | - '$1'.txt_copyright, // copyright |
|
| 410 | + '$1'.txt_quote_double_close, // double closing |
|
| 411 | + txt_quote_double_open, // double opening |
|
| 412 | + '<acronym title="$2">$1</acronym>', // 3+ uppercase acronym |
|
| 413 | + '<span class="caps">$1</span>$2', // 3+ uppercase |
|
| 414 | + '$1'.txt_ellipsis, // ellipsis |
|
| 415 | + '$1'.txt_emdash.'$2', // em dash |
|
| 416 | + ' '.txt_endash.' ', // en dash |
|
| 417 | + '$1$2'.txt_dimension.'$3', // dimension sign |
|
| 418 | + '$1'.txt_trademark, // trademark |
|
| 419 | + '$1'.txt_registered, // registered |
|
| 420 | + '$1'.txt_copyright, // copyright |
|
| 427 | 421 | |
| 428 | 422 | # |
| 429 | 423 | # the following is for french language |
| 430 | 424 | # |
| 431 | 425 | |
| 432 | - self::NBSP . '$1', |
|
| 426 | + self::NBSP.'$1', |
|
| 433 | 427 | ); |
| 434 | 428 | |
| 435 | 429 | return preg_replace($glyph_search, $glyph_replace, $text); |
@@ -467,8 +461,7 @@ discard block |
||
| 467 | 461 | |
| 468 | 462 | $style = NULL; |
| 469 | 463 | |
| 470 | - if (preg_match |
|
| 471 | - ( |
|
| 464 | + if (preg_match( |
|
| 472 | 465 | '{ |
| 473 | 466 | ( # the whole thing is saved in $1 |
| 474 | 467 | ^p # start |
@@ -514,7 +507,7 @@ discard block |
||
| 514 | 507 | { |
| 515 | 508 | if ($style) |
| 516 | 509 | { |
| 517 | - $value = '<p style="' . $style . '">' . $value . '</p>'; |
|
| 510 | + $value = '<p style="'.$style.'">'.$value.'</p>'; |
|
| 518 | 511 | } |
| 519 | 512 | else |
| 520 | 513 | { |
@@ -583,8 +576,7 @@ discard block |
||
| 583 | 576 | # First, handle reference-style labeled images: ![alt text][id] |
| 584 | 577 | # |
| 585 | 578 | |
| 586 | - $text = preg_replace_callback |
|
| 587 | - ( |
|
| 579 | + $text = preg_replace_callback( |
|
| 588 | 580 | '{ |
| 589 | 581 | ( # wrap whole match in $1 |
| 590 | 582 | ! # start |
@@ -697,10 +689,8 @@ discard block |
||
| 697 | 689 | |
| 698 | 690 | if (isset($parts[1])) |
| 699 | 691 | { |
| 700 | - $entry = $module->model()->loadRange |
|
| 701 | - ( |
|
| 702 | - 0, 1, 'WHERE `' . $module->getConstant('TITLE') . '` = ? AND `' . $module->getConstant('ALBUM') . '` = ?', array |
|
| 703 | - ( |
|
| 692 | + $entry = $module->model()->loadRange( |
|
| 693 | + 0, 1, 'WHERE `'.$module->getConstant('TITLE').'` = ? AND `'.$module->getConstant('ALBUM').'` = ?', array( |
|
| 704 | 694 | $parts[1], $parts[0] |
| 705 | 695 | ) |
| 706 | 696 | ) |
@@ -709,10 +699,8 @@ discard block |
||
| 709 | 699 | } |
| 710 | 700 | else |
| 711 | 701 | { |
| 712 | - $entry = $module->model()->loadRange |
|
| 713 | - ( |
|
| 714 | - 0, 1, 'WHERE `slug` = ? OR `title` = ?', array |
|
| 715 | - ( |
|
| 702 | + $entry = $module->model()->loadRange( |
|
| 703 | + 0, 1, 'WHERE `slug` = ? OR `title` = ?', array( |
|
| 716 | 704 | $id, $id |
| 717 | 705 | ) |
| 718 | 706 | ) |
@@ -727,8 +715,7 @@ discard block |
||
| 727 | 715 | return parent::_doImages_reference_callback($matches); |
| 728 | 716 | } |
| 729 | 717 | |
| 730 | - $params = array |
|
| 731 | - ( |
|
| 718 | + $params = array( |
|
| 732 | 719 | 'src' => $entry->path, |
| 733 | 720 | 'alt' => \ICanBoogie\escape($alt), |
| 734 | 721 | 'width' => $entry->width, |
@@ -757,11 +744,11 @@ discard block |
||
| 757 | 744 | { |
| 758 | 745 | // \ICanBoogie\log('<pre>in \1: \2</pre>', __FUNCTION__, $matches); |
| 759 | 746 | |
| 760 | - $whole_match = $matches[1]; |
|
| 747 | + $whole_match = $matches[1]; |
|
| 761 | 748 | $align = $matches[2]; |
| 762 | - $alt_text = $matches[3]; |
|
| 749 | + $alt_text = $matches[3]; |
|
| 763 | 750 | $url = $matches[4] == '' ? $matches[5] : $matches[4]; |
| 764 | - $title =& $matches[8]; |
|
| 751 | + $title = & $matches[8]; |
|
| 765 | 752 | |
| 766 | 753 | $alt_text = str_replace('"', '"', $alt_text); |
| 767 | 754 | $result = "<img src=\"$url\" alt=\"$alt_text\""; |
@@ -776,13 +763,13 @@ discard block |
||
| 776 | 763 | case '>': $align = 'right'; break; |
| 777 | 764 | } |
| 778 | 765 | |
| 779 | - $result .= ' align="' . $align . '"'; |
|
| 766 | + $result .= ' align="'.$align.'"'; |
|
| 780 | 767 | } |
| 781 | 768 | |
| 782 | 769 | if (isset($title)) |
| 783 | 770 | { |
| 784 | 771 | $title = str_replace('"', '"', $title); |
| 785 | - $result .= " title=\"$title\""; # $title already quoted |
|
| 772 | + $result .= " title=\"$title\""; # $title already quoted |
|
| 786 | 773 | } |
| 787 | 774 | |
| 788 | 775 | $result .= $this->empty_element_suffix; |
@@ -798,16 +785,16 @@ discard block |
||
| 798 | 785 | ** |
| 799 | 786 | */ |
| 800 | 787 | |
| 801 | - function createElement($markup, $attrs, $body=NULL) |
|
| 788 | + function createElement($markup, $attrs, $body = NULL) |
|
| 802 | 789 | { |
| 803 | 790 | $rc = array(); |
| 804 | 791 | |
| 805 | 792 | foreach ($attrs as $name => $value) |
| 806 | 793 | { |
| 807 | - $rc[] = $name . '="' . $value . '"'; |
|
| 794 | + $rc[] = $name.'="'.$value.'"'; |
|
| 808 | 795 | } |
| 809 | 796 | |
| 810 | - return "<$markup " . implode(' ', $rc) . ($body ? ">$body</$markup>" : " />"); |
|
| 797 | + return "<$markup ".implode(' ', $rc).($body ? ">$body</$markup>" : " />"); |
|
| 811 | 798 | } |
| 812 | 799 | |
| 813 | 800 | protected function format_codeblock($codeblock, $type) |
@@ -847,8 +834,7 @@ discard block |
||
| 847 | 834 | # markup |
| 848 | 835 | # |
| 849 | 836 | |
| 850 | - $text = preg_replace_callback |
|
| 851 | - ( |
|
| 837 | + $text = preg_replace_callback( |
|
| 852 | 838 | '#(\<\!?[^\s^\>]+)(\s+[^\>]+)?(\/?\>)#m', array($this, '_do_html_markup'), $text |
| 853 | 839 | ); |
| 854 | 840 | |
@@ -860,8 +846,7 @@ discard block |
||
| 860 | 846 | |
| 861 | 847 | // \ICanBoogie\log('## \1 ## <pre>\2</pre>', __FUNCTION__, $text); |
| 862 | 848 | |
| 863 | - $text = preg_replace_callback |
|
| 864 | - ( |
|
| 849 | + $text = preg_replace_callback( |
|
| 865 | 850 | '#\<\/[a-zA-Z]+\>#m', array($this, '_do_html_markup_close'), $text |
| 866 | 851 | ); |
| 867 | 852 | |
@@ -882,14 +867,14 @@ discard block |
||
| 882 | 867 | { |
| 883 | 868 | // \ICanBoogie\log('<pre>in \1: \2</pre>', __FUNCTION__, $matches); |
| 884 | 869 | |
| 885 | - return $this->hashPart('<span class="string">' . \ICanBoogie\escape($matches[0]) . '</span>'); |
|
| 870 | + return $this->hashPart('<span class="string">'.\ICanBoogie\escape($matches[0]).'</span>'); |
|
| 886 | 871 | } |
| 887 | 872 | |
| 888 | 873 | function _do_html_attribute($matches) |
| 889 | 874 | { |
| 890 | 875 | // \ICanBoogie\log('<pre>in \1: \2</pre>', __FUNCTION__, $matches); |
| 891 | 876 | |
| 892 | - return $this->hashPart('<span class="attribute">' . \ICanBoogie\escape($matches[0]) . '</span>'); |
|
| 877 | + return $this->hashPart('<span class="attribute">'.\ICanBoogie\escape($matches[0]).'</span>'); |
|
| 893 | 878 | } |
| 894 | 879 | |
| 895 | 880 | function _do_html_markup($matches) |
@@ -902,8 +887,7 @@ discard block |
||
| 902 | 887 | # strings |
| 903 | 888 | # |
| 904 | 889 | |
| 905 | - $text = preg_replace_callback |
|
| 906 | - ( |
|
| 890 | + $text = preg_replace_callback( |
|
| 907 | 891 | '#\"[^\"]+\"#', array(&$this, '_do_html_string'), $text |
| 908 | 892 | ); |
| 909 | 893 | |
@@ -913,14 +897,13 @@ discard block |
||
| 913 | 897 | # attributes |
| 914 | 898 | # |
| 915 | 899 | |
| 916 | - $text = preg_replace_callback |
|
| 917 | - ( |
|
| 900 | + $text = preg_replace_callback( |
|
| 918 | 901 | '#[^\s\=]+#', array(&$this, '_do_html_attribute'), $text |
| 919 | 902 | ); |
| 920 | 903 | |
| 921 | - $rc = $this->hashPart('<span class="markup">' . \ICanBoogie\escape($matches[1]) . '</span>'); |
|
| 904 | + $rc = $this->hashPart('<span class="markup">'.\ICanBoogie\escape($matches[1]).'</span>'); |
|
| 922 | 905 | $rc .= $text; |
| 923 | - $rc .= $this->hashpart('<span class="markup">' . \ICanBoogie\escape($matches[3]) . '</span>'); |
|
| 906 | + $rc .= $this->hashpart('<span class="markup">'.\ICanBoogie\escape($matches[3]).'</span>'); |
|
| 924 | 907 | |
| 925 | 908 | return $rc; |
| 926 | 909 | } |
@@ -929,7 +912,7 @@ discard block |
||
| 929 | 912 | { |
| 930 | 913 | // \ICanBoogie\log('<pre>in \1: \2</pre>', __FUNCTION__, $matches); |
| 931 | 914 | |
| 932 | - return $this->hashPart('<span class="markup">' . \ICanBoogie\escape($matches[0]) . '</span>'); |
|
| 915 | + return $this->hashPart('<span class="markup">'.\ICanBoogie\escape($matches[0]).'</span>'); |
|
| 933 | 916 | } |
| 934 | 917 | |
| 935 | 918 | # |
@@ -948,7 +931,7 @@ discard block |
||
| 948 | 931 | { |
| 949 | 932 | $in_quotes = NULL; |
| 950 | 933 | |
| 951 | - for ($i = 0 ; $i < strlen($line) ; $i++) |
|
| 934 | + for ($i = 0; $i < strlen($line); $i++) |
|
| 952 | 935 | { |
| 953 | 936 | $c = $line{$i}; |
| 954 | 937 | |
@@ -970,8 +953,8 @@ discard block |
||
| 970 | 953 | |
| 971 | 954 | $line = |
| 972 | 955 | |
| 973 | - substr($line, 0, $i) . |
|
| 974 | - $this->hashPart('<code class="comment">' . \ICanBoogie\escape(substr($line, $i)) . '</code>'); |
|
| 956 | + substr($line, 0, $i). |
|
| 957 | + $this->hashPart('<code class="comment">'.\ICanBoogie\escape(substr($line, $i)).'</code>'); |
|
| 975 | 958 | |
| 976 | 959 | break; |
| 977 | 960 | } |
@@ -996,7 +979,7 @@ discard block |
||
| 996 | 979 | |
| 997 | 980 | $y = strlen($text); |
| 998 | 981 | |
| 999 | - for ($i = 0 ; $i < $y ; $i++) |
|
| 982 | + for ($i = 0; $i < $y; $i++) |
|
| 1000 | 983 | { |
| 1001 | 984 | $c = $text{$i}; |
| 1002 | 985 | |
@@ -1010,7 +993,7 @@ discard block |
||
| 1010 | 993 | } |
| 1011 | 994 | else if ($quote_start !== null && $c == $quote) |
| 1012 | 995 | { |
| 1013 | - $out .= $this->hashPart('<span class="string">' . \ICanBoogie\escape($quote . substr($text, $quote_start + 1, $i - $quote_start - 1) . $quote) . '</span>'); |
|
| 996 | + $out .= $this->hashPart('<span class="string">'.\ICanBoogie\escape($quote.substr($text, $quote_start + 1, $i - $quote_start - 1).$quote).'</span>'); |
|
| 1014 | 997 | |
| 1015 | 998 | $quote_start = null; |
| 1016 | 999 | $quote = null; |
@@ -1055,8 +1038,7 @@ discard block |
||
| 1055 | 1038 | # comment block |
| 1056 | 1039 | # |
| 1057 | 1040 | |
| 1058 | - $text = preg_replace_callback |
|
| 1059 | - ( |
|
| 1041 | + $text = preg_replace_callback( |
|
| 1060 | 1042 | '#/\*.*?\*/#ms', array(&$this, '_do_php_comment'), $text |
| 1061 | 1043 | ); |
| 1062 | 1044 | |
@@ -1066,8 +1048,7 @@ discard block |
||
| 1066 | 1048 | # functions |
| 1067 | 1049 | # |
| 1068 | 1050 | |
| 1069 | - $text = preg_replace_callback |
|
| 1070 | - ( |
|
| 1051 | + $text = preg_replace_callback( |
|
| 1071 | 1052 | '#(\$?[a-zA-z0-9_]+)\(#', array(&$this, '_do_php_function'), $text |
| 1072 | 1053 | ); |
| 1073 | 1054 | |
@@ -1077,8 +1058,7 @@ discard block |
||
| 1077 | 1058 | |
| 1078 | 1059 | // \ICanBoogie\log('## \1 ## <pre>\2</pre>', __FUNCTION__, \ICanBoogie\escape($text)); |
| 1079 | 1060 | |
| 1080 | - $text = preg_replace_callback |
|
| 1081 | - ( |
|
| 1061 | + $text = preg_replace_callback( |
|
| 1082 | 1062 | '#(\$|\-\>)([a-zA-z0-9_]+)(?!\x1A)#', array(&$this, '_do_php_variable'), $text |
| 1083 | 1063 | ); |
| 1084 | 1064 | |
@@ -1086,13 +1066,11 @@ discard block |
||
| 1086 | 1066 | # numbers |
| 1087 | 1067 | # |
| 1088 | 1068 | |
| 1089 | - $text = preg_replace_callback |
|
| 1090 | - ( |
|
| 1069 | + $text = preg_replace_callback( |
|
| 1091 | 1070 | '#0x[0-9a-fA-F]{1,8}#u', array(&$this, '_do_php_number'), $text |
| 1092 | 1071 | ); |
| 1093 | 1072 | |
| 1094 | - $text = preg_replace_callback |
|
| 1095 | - ( |
|
| 1073 | + $text = preg_replace_callback( |
|
| 1096 | 1074 | '#(?<!\x1A)\d+(?![\w])#u', array(&$this, '_do_php_number'), $text |
| 1097 | 1075 | ); |
| 1098 | 1076 | |
@@ -1100,8 +1078,7 @@ discard block |
||
| 1100 | 1078 | # reserved keywords |
| 1101 | 1079 | # |
| 1102 | 1080 | |
| 1103 | - $reserved = array |
|
| 1104 | - ( |
|
| 1081 | + $reserved = array( |
|
| 1105 | 1082 | 'include_once', |
| 1106 | 1083 | 'require_once', |
| 1107 | 1084 | 'endswitch', |
@@ -1148,9 +1125,8 @@ discard block |
||
| 1148 | 1125 | |
| 1149 | 1126 | foreach ($reserved as $k) |
| 1150 | 1127 | { |
| 1151 | - $text = preg_replace_callback |
|
| 1152 | - ( |
|
| 1153 | - '#' . $k . '#', array(&$this, '_do_php_reserved'), $text |
|
| 1128 | + $text = preg_replace_callback( |
|
| 1129 | + '#'.$k.'#', array(&$this, '_do_php_reserved'), $text |
|
| 1154 | 1130 | ); |
| 1155 | 1131 | } |
| 1156 | 1132 | |
@@ -1158,8 +1134,7 @@ discard block |
||
| 1158 | 1134 | # symbols |
| 1159 | 1135 | # |
| 1160 | 1136 | |
| 1161 | - $text = preg_replace_callback |
|
| 1162 | - ( |
|
| 1137 | + $text = preg_replace_callback( |
|
| 1163 | 1138 | '#[\(\)\[\]\{\}\!\@\%\&\*\|\/\<\>\-\+\=]+#', array(&$this, '_do_php_symbol'), $text |
| 1164 | 1139 | ); |
| 1165 | 1140 | |
@@ -1176,8 +1151,8 @@ discard block |
||
| 1176 | 1151 | |
| 1177 | 1152 | $text = |
| 1178 | 1153 | |
| 1179 | - '<span class="delimiter">' . |
|
| 1180 | - "<?php</span>\n\n" . |
|
| 1154 | + '<span class="delimiter">'. |
|
| 1155 | + "<?php</span>\n\n". |
|
| 1181 | 1156 | |
| 1182 | 1157 | $text; |
| 1183 | 1158 | |
@@ -1221,10 +1196,9 @@ discard block |
||
| 1221 | 1196 | |
| 1222 | 1197 | // \ICanBoogie\log('## \1 ## \2', __FUNCTION__, $matches); |
| 1223 | 1198 | |
| 1224 | - return $this->hashPart |
|
| 1225 | - ( |
|
| 1226 | - '<span class="comment">' . |
|
| 1227 | - $this->_do_codeentities($matches[0]) . |
|
| 1199 | + return $this->hashPart( |
|
| 1200 | + '<span class="comment">'. |
|
| 1201 | + $this->_do_codeentities($matches[0]). |
|
| 1228 | 1202 | '</span>' |
| 1229 | 1203 | ); |
| 1230 | 1204 | } |
@@ -1235,24 +1209,24 @@ discard block |
||
| 1235 | 1209 | |
| 1236 | 1210 | if ($matches[1] == '->') |
| 1237 | 1211 | { |
| 1238 | - return '->' . $this->hashPart('<span class="variable">' . $matches[2] . '</span>'); |
|
| 1212 | + return '->'.$this->hashPart('<span class="variable">'.$matches[2].'</span>'); |
|
| 1239 | 1213 | } |
| 1240 | 1214 | |
| 1241 | - return $this->hashPart('<span class="variable">' . $matches[0] . '</span>'); |
|
| 1215 | + return $this->hashPart('<span class="variable">'.$matches[0].'</span>'); |
|
| 1242 | 1216 | } |
| 1243 | 1217 | |
| 1244 | 1218 | function _do_php_reserved($matches) |
| 1245 | 1219 | { |
| 1246 | 1220 | // \ICanBoogie\log('## \1 ## \2', __FUNCTION__, $matches); |
| 1247 | 1221 | |
| 1248 | - return $this->hashPart('<span class="reserved">' . $matches[0] . '</span>'); |
|
| 1222 | + return $this->hashPart('<span class="reserved">'.$matches[0].'</span>'); |
|
| 1249 | 1223 | } |
| 1250 | 1224 | |
| 1251 | 1225 | function _do_php_function_def($matches) |
| 1252 | 1226 | { |
| 1253 | 1227 | // \ICanBoogie\log('## \1 ## \2', __FUNCTION__, $matches); |
| 1254 | 1228 | |
| 1255 | - return $this->hashPart('<span class="function">function</span>' . $matches[1]); |
|
| 1229 | + return $this->hashPart('<span class="function">function</span>'.$matches[1]); |
|
| 1256 | 1230 | // return $this->hashPart('<span class="function">' . $matches[1] . '</span>(', 'F'); |
| 1257 | 1231 | } |
| 1258 | 1232 | |
@@ -1265,19 +1239,19 @@ discard block |
||
| 1265 | 1239 | return $matches[0]; |
| 1266 | 1240 | } |
| 1267 | 1241 | |
| 1268 | - return $this->hashPart('<span class="function">' . $matches[1] . '</span>', 'F'). '('; |
|
| 1242 | + return $this->hashPart('<span class="function">'.$matches[1].'</span>', 'F').'('; |
|
| 1269 | 1243 | } |
| 1270 | 1244 | |
| 1271 | 1245 | function _do_php_symbol($matches) |
| 1272 | 1246 | { |
| 1273 | - return $this->hashPart('<span class="symbol">' . \ICanBoogie\escape($matches[0]) . '</span>'); |
|
| 1247 | + return $this->hashPart('<span class="symbol">'.\ICanBoogie\escape($matches[0]).'</span>'); |
|
| 1274 | 1248 | } |
| 1275 | 1249 | |
| 1276 | 1250 | function _do_php_number($matches) |
| 1277 | 1251 | { |
| 1278 | 1252 | // \ICanBoogie\log('## \1 ## \2', __FUNCTION__, $matches); |
| 1279 | 1253 | |
| 1280 | - return $this->hashPart('<span class="number">' . $matches[0] . '</span>'); |
|
| 1254 | + return $this->hashPart('<span class="number">'.$matches[0].'</span>'); |
|
| 1281 | 1255 | } |
| 1282 | 1256 | |
| 1283 | 1257 | /* |
@@ -1291,10 +1265,10 @@ discard block |
||
| 1291 | 1265 | |
| 1292 | 1266 | function _doAnchors_inline_callback($matches) |
| 1293 | 1267 | { |
| 1294 | - $whole_match = $matches[1]; |
|
| 1295 | - $link_text = $this->runSpanGamut($matches[2]); |
|
| 1296 | - $url = $matches[3] == '' ? $matches[4] : $matches[3]; |
|
| 1297 | - $title =& $matches[7]; |
|
| 1268 | + $whole_match = $matches[1]; |
|
| 1269 | + $link_text = $this->runSpanGamut($matches[2]); |
|
| 1270 | + $url = $matches[3] == '' ? $matches[4] : $matches[3]; |
|
| 1271 | + $title = & $matches[7]; |
|
| 1298 | 1272 | |
| 1299 | 1273 | $url = $this->encodeAmpsAndAngles($url); |
| 1300 | 1274 | |
@@ -1302,7 +1276,7 @@ discard block |
||
| 1302 | 1276 | if (isset($title)) { |
| 1303 | 1277 | $title = str_replace('"', '"', $title); |
| 1304 | 1278 | $title = $this->encodeAmpsAndAngles($title); |
| 1305 | - $result .= " title=\"$title\""; |
|
| 1279 | + $result .= " title=\"$title\""; |
|
| 1306 | 1280 | } |
| 1307 | 1281 | |
| 1308 | 1282 | if (substr($url, 0, 7) == 'http://') |
@@ -113,8 +113,7 @@ discard block |
||
| 113 | 113 | { |
| 114 | 114 | continue; |
| 115 | 115 | } |
| 116 | - } |
|
| 117 | - else if (!$quote) |
|
| 116 | + } else if (!$quote) |
|
| 118 | 117 | { |
| 119 | 118 | $quote = $c; |
| 120 | 119 | |
@@ -211,12 +210,10 @@ discard block |
||
| 211 | 210 | if (is_numeric($part)) |
| 212 | 211 | { |
| 213 | 212 | $part = (int) $part; |
| 214 | - } |
|
| 215 | - else if (is_float($part)) |
|
| 213 | + } else if (is_float($part)) |
|
| 216 | 214 | { |
| 217 | 215 | $part = (float) $part; |
| 218 | - } |
|
| 219 | - else |
|
| 216 | + } else |
|
| 220 | 217 | { |
| 221 | 218 | $part = constant($part); |
| 222 | 219 | } |
@@ -359,19 +356,16 @@ discard block |
||
| 359 | 356 | if (function_exists('str' . $method)) |
| 360 | 357 | { |
| 361 | 358 | $callback = 'str' . $method; |
| 362 | - } |
|
| 363 | - else if (function_exists('str_' . $method)) |
|
| 359 | + } else if (function_exists('str_' . $method)) |
|
| 364 | 360 | { |
| 365 | 361 | $callback = 'str_' . $method; |
| 366 | 362 | } |
| 367 | - } |
|
| 368 | - else if (is_array($context) || is_object($context)) |
|
| 363 | + } else if (is_array($context) || is_object($context)) |
|
| 369 | 364 | { |
| 370 | 365 | if (function_exists('ICanBoogie\array_' . $method)) |
| 371 | 366 | { |
| 372 | 367 | $callback = 'ICanBoogie\array_' . $method; |
| 373 | - } |
|
| 374 | - else if (function_exists('array_' . $method)) |
|
| 368 | + } else if (function_exists('array_' . $method)) |
|
| 375 | 369 | { |
| 376 | 370 | $callback = 'array_' . $method; |
| 377 | 371 | } |
@@ -425,13 +419,11 @@ discard block |
||
| 425 | 419 | if ($callback == 'array_shift') |
| 426 | 420 | { |
| 427 | 421 | $context = array_shift($context); |
| 428 | - } |
|
| 429 | - else |
|
| 422 | + } else |
|
| 430 | 423 | { |
| 431 | 424 | $context = call_user_func_array($callback, $args); |
| 432 | 425 | } |
| 433 | - } |
|
| 434 | - else |
|
| 426 | + } else |
|
| 435 | 427 | { |
| 436 | 428 | $context = call_user_func_array($callback, $args); |
| 437 | 429 | } |
@@ -264,6 +264,10 @@ |
||
| 264 | 264 | return $parts; |
| 265 | 265 | } |
| 266 | 266 | |
| 267 | + /** |
|
| 268 | + * @param string $expression |
|
| 269 | + * @param boolean $silent |
|
| 270 | + */ |
|
| 267 | 271 | protected function evaluate($context, $expression, $tokens, $silent) |
| 268 | 272 | { |
| 269 | 273 | $expression_path = []; |
@@ -65,7 +65,7 @@ discard block |
||
| 65 | 65 | { |
| 66 | 66 | if ($str{0} == '@') |
| 67 | 67 | { |
| 68 | - $str = 'this.' . substr($str, 1); |
|
| 68 | + $str = 'this.'.substr($str, 1); |
|
| 69 | 69 | } |
| 70 | 70 | |
| 71 | 71 | $str .= '.'; |
@@ -84,7 +84,7 @@ discard block |
||
| 84 | 84 | |
| 85 | 85 | $parts = []; |
| 86 | 86 | |
| 87 | - for ($i = 0 ; $i < $length ; $i++) |
|
| 87 | + for ($i = 0; $i < $length; $i++) |
|
| 88 | 88 | { |
| 89 | 89 | $c = $str{$i}; |
| 90 | 90 | |
@@ -280,8 +280,7 @@ discard block |
||
| 280 | 280 | { |
| 281 | 281 | if (!is_array($context) && !is_object($context)) |
| 282 | 282 | { |
| 283 | - throw new \InvalidArgumentException(\ICanBoogie\format |
|
| 284 | - ( |
|
| 283 | + throw new \InvalidArgumentException(\ICanBoogie\format( |
|
| 285 | 284 | 'Unexpected variable type: %type (%value) for %identifier in expression %expression, should be either an array or an object', [ |
| 286 | 285 | |
| 287 | 286 | '%type' => gettype($context), |
@@ -325,7 +324,7 @@ discard block |
||
| 325 | 324 | |
| 326 | 325 | if ($args_evaluate) |
| 327 | 326 | { |
| 328 | - $this->engine->error('we should evaluate %eval', [ '%eval' => $args_evaluate ]); |
|
| 327 | + $this->engine->error('we should evaluate %eval', ['%eval' => $args_evaluate]); |
|
| 329 | 328 | } |
| 330 | 329 | |
| 331 | 330 | # |
@@ -334,7 +333,7 @@ discard block |
||
| 334 | 333 | |
| 335 | 334 | if (is_object($context) && method_exists($context, $method)) |
| 336 | 335 | { |
| 337 | - $context = call_user_func_array([ $context, $method ], $args); |
|
| 336 | + $context = call_user_func_array([$context, $method], $args); |
|
| 338 | 337 | |
| 339 | 338 | break; |
| 340 | 339 | } |
@@ -355,24 +354,24 @@ discard block |
||
| 355 | 354 | { |
| 356 | 355 | if (is_string($context)) |
| 357 | 356 | { |
| 358 | - if (function_exists('str' . $method)) |
|
| 357 | + if (function_exists('str'.$method)) |
|
| 359 | 358 | { |
| 360 | - $callback = 'str' . $method; |
|
| 359 | + $callback = 'str'.$method; |
|
| 361 | 360 | } |
| 362 | - else if (function_exists('str_' . $method)) |
|
| 361 | + else if (function_exists('str_'.$method)) |
|
| 363 | 362 | { |
| 364 | - $callback = 'str_' . $method; |
|
| 363 | + $callback = 'str_'.$method; |
|
| 365 | 364 | } |
| 366 | 365 | } |
| 367 | 366 | else if (is_array($context) || is_object($context)) |
| 368 | 367 | { |
| 369 | - if (function_exists('ICanBoogie\array_' . $method)) |
|
| 368 | + if (function_exists('ICanBoogie\array_'.$method)) |
|
| 370 | 369 | { |
| 371 | - $callback = 'ICanBoogie\array_' . $method; |
|
| 370 | + $callback = 'ICanBoogie\array_'.$method; |
|
| 372 | 371 | } |
| 373 | - else if (function_exists('array_' . $method)) |
|
| 372 | + else if (function_exists('array_'.$method)) |
|
| 374 | 373 | { |
| 375 | - $callback = 'array_' . $method; |
|
| 374 | + $callback = 'array_'.$method; |
|
| 376 | 375 | } |
| 377 | 376 | } |
| 378 | 377 | } |
@@ -393,7 +392,7 @@ discard block |
||
| 393 | 392 | { |
| 394 | 393 | if (is_object($context) && method_exists($context, '__call')) |
| 395 | 394 | { |
| 396 | - $context = call_user_func_array([ $context, $method ], $args); |
|
| 395 | + $context = call_user_func_array([$context, $method], $args); |
|
| 397 | 396 | |
| 398 | 397 | break; |
| 399 | 398 | } |
@@ -460,7 +459,7 @@ discard block |
||
| 460 | 459 | * |
| 461 | 460 | * @return mixed The extracted value. |
| 462 | 461 | */ |
| 463 | - protected function extract_value($container, $identifier, &$exists=false) |
|
| 462 | + protected function extract_value($container, $identifier, &$exists = false) |
|
| 464 | 463 | { |
| 465 | 464 | $exists = false; |
| 466 | 465 | |
@@ -170,8 +170,7 @@ discard block |
||
| 170 | 170 | # |
| 171 | 171 | |
| 172 | 172 | $nodes[] = $this->parseMarkup(substr($value, 0, -1)); |
| 173 | - } |
|
| 174 | - else if ($closing) |
|
| 173 | + } else if ($closing) |
|
| 175 | 174 | { |
| 176 | 175 | # |
| 177 | 176 | # closing markup |
@@ -185,8 +184,7 @@ discard block |
||
| 185 | 184 | } |
| 186 | 185 | |
| 187 | 186 | return $nodes; |
| 188 | - } |
|
| 189 | - else |
|
| 187 | + } else |
|
| 190 | 188 | { |
| 191 | 189 | # |
| 192 | 190 | # this is an open markup with possible children |
@@ -38,6 +38,9 @@ discard block |
||
| 38 | 38 | $this->error_handler = $tags[self::T_ERROR_HANDLER]; |
| 39 | 39 | } |
| 40 | 40 | |
| 41 | + /** |
|
| 42 | + * @param string $html |
|
| 43 | + */ |
|
| 41 | 44 | public function parse($html, $namespace=null, $encoding='utf-8') |
| 42 | 45 | { |
| 43 | 46 | $this->encoding = $encoding; |
@@ -87,6 +90,9 @@ discard block |
||
| 87 | 90 | return $tree; |
| 88 | 91 | } |
| 89 | 92 | |
| 93 | + /** |
|
| 94 | + * @return string |
|
| 95 | + */ |
|
| 90 | 96 | protected function escapeSpecials($html) |
| 91 | 97 | { |
| 92 | 98 | # |
@@ -23,7 +23,7 @@ discard block |
||
| 23 | 23 | protected $error_handler; |
| 24 | 24 | protected $namespace; |
| 25 | 25 | |
| 26 | - public function __construct(array $tags=[]) |
|
| 26 | + public function __construct(array $tags = []) |
|
| 27 | 27 | { |
| 28 | 28 | $tags += [ |
| 29 | 29 | |
@@ -38,7 +38,7 @@ discard block |
||
| 38 | 38 | $this->error_handler = $tags[self::T_ERROR_HANDLER]; |
| 39 | 39 | } |
| 40 | 40 | |
| 41 | - public function parse($html, $namespace=null, $encoding='utf-8') |
|
| 41 | + public function parse($html, $namespace = null, $encoding = 'utf-8') |
|
| 42 | 42 | { |
| 43 | 43 | $this->encoding = $encoding; |
| 44 | 44 | $this->namespace = $namespace; |
@@ -63,9 +63,8 @@ discard block |
||
| 63 | 63 | # note that i+2 might end with a '/' indicating an auto-closing markup |
| 64 | 64 | # |
| 65 | 65 | |
| 66 | - $this->matches = preg_split |
|
| 67 | - ( |
|
| 68 | - '#<(/?)' . $namespace . '([^>]*)>#', $html, -1, PREG_SPLIT_DELIM_CAPTURE |
|
| 66 | + $this->matches = preg_split( |
|
| 67 | + '#<(/?)'.$namespace.'([^>]*)>#', $html, -1, PREG_SPLIT_DELIM_CAPTURE |
|
| 69 | 68 | ); |
| 70 | 69 | |
| 71 | 70 | # |
@@ -93,13 +92,13 @@ discard block |
||
| 93 | 92 | # here we escape comments |
| 94 | 93 | # |
| 95 | 94 | |
| 96 | - $html = preg_replace_callback('#<\!--.+-->#sU', [ $this, 'escapeSpecials_callback' ], $html); |
|
| 95 | + $html = preg_replace_callback('#<\!--.+-->#sU', [$this, 'escapeSpecials_callback'], $html); |
|
| 97 | 96 | |
| 98 | 97 | # |
| 99 | 98 | # and processing options |
| 100 | 99 | # |
| 101 | 100 | |
| 102 | - $html = preg_replace_callback('#<\?.+\?>#sU', [ $this, 'escapeSpecials_callback' ], $html); |
|
| 101 | + $html = preg_replace_callback('#<\?.+\?>#sU', [$this, 'escapeSpecials_callback'], $html); |
|
| 103 | 102 | |
| 104 | 103 | return $html; |
| 105 | 104 | } |
@@ -110,10 +109,9 @@ discard block |
||
| 110 | 109 | |
| 111 | 110 | $text = $m[0]; |
| 112 | 111 | |
| 113 | - $text = str_replace |
|
| 114 | - ( |
|
| 115 | - [ '<', '>' ], |
|
| 116 | - [ "\x01", "\x02" ], |
|
| 112 | + $text = str_replace( |
|
| 113 | + ['<', '>'], |
|
| 114 | + ["\x01", "\x02"], |
|
| 117 | 115 | $text |
| 118 | 116 | ); |
| 119 | 117 | |
@@ -122,10 +120,9 @@ discard block |
||
| 122 | 120 | |
| 123 | 121 | protected function unescapeSpecials($tree) |
| 124 | 122 | { |
| 125 | - return is_array($tree) ? array_map([ $this, 'unescapeSpecials' ], $tree) : str_replace |
|
| 126 | - ( |
|
| 127 | - [ "\x01", "\x02" ], |
|
| 128 | - [ '<', '>' ], |
|
| 123 | + return is_array($tree) ? array_map([$this, 'unescapeSpecials'], $tree) : str_replace( |
|
| 124 | + ["\x01", "\x02"], |
|
| 125 | + ['<', '>'], |
|
| 129 | 126 | $tree |
| 130 | 127 | ); |
| 131 | 128 | } |
@@ -246,20 +243,19 @@ discard block |
||
| 246 | 243 | $args[$m[1]] = html_entity_decode($m[2], ENT_QUOTES, $this->encoding); |
| 247 | 244 | } |
| 248 | 245 | |
| 249 | - return [ 'name' => $name, 'args' => $args ]; |
|
| 246 | + return ['name' => $name, 'args' => $args]; |
|
| 250 | 247 | } |
| 251 | 248 | |
| 252 | 249 | protected function error($markup, $expected) |
| 253 | 250 | { |
| 254 | 251 | $this->malformed = true; |
| 255 | 252 | |
| 256 | - call_user_func |
|
| 257 | - ( |
|
| 253 | + call_user_func( |
|
| 258 | 254 | $this->error_handler, $expected |
| 259 | 255 | ? 'unexpected closing markup %markup, should be %expected' |
| 260 | 256 | : 'unexpected closing markup %markup, when none was opened', [ |
| 261 | 257 | |
| 262 | - '%markup' => $this->namespace . $markup, '%expected' => $expected |
|
| 258 | + '%markup' => $this->namespace.$markup, '%expected' => $expected |
|
| 263 | 259 | |
| 264 | 260 | ] |
| 265 | 261 | ); |
@@ -134,12 +134,10 @@ discard block |
||
| 134 | 134 | $this->errors[] = '<div class="alert alert-error alert-danger">' . $alert->getMessage() . '</div>'; |
| 135 | 135 | |
| 136 | 136 | return; |
| 137 | - } |
|
| 138 | - else if ($alert instanceof \Exception) |
|
| 137 | + } else if ($alert instanceof \Exception) |
|
| 139 | 138 | { |
| 140 | 139 | $alert = class_exists('ICanBoogie\Debug') ? Debug::format_alert($alert) : (string) $alert; |
| 141 | - } |
|
| 142 | - else |
|
| 140 | + } else |
|
| 143 | 141 | { |
| 144 | 142 | $alert = \ICanBoogie\format($alert, $args); |
| 145 | 143 | } |
@@ -189,8 +187,7 @@ discard block |
||
| 189 | 187 | if ($e instanceof \ICanBoogie\HTTP\Exception) |
| 190 | 188 | { |
| 191 | 189 | throw $e; |
| 192 | - } |
|
| 193 | - else if ($e instanceof \ICanBoogie\ActiveRecord\Exception) |
|
| 190 | + } else if ($e instanceof \ICanBoogie\ActiveRecord\Exception) |
|
| 194 | 191 | { |
| 195 | 192 | throw $e; |
| 196 | 193 | } |
@@ -267,8 +264,7 @@ discard block |
||
| 267 | 264 | if ($template_resolver instanceof Render\BasicTemplateResolver) |
| 268 | 265 | { |
| 269 | 266 | $basic_template_resolver = $template_resolver; |
| 270 | - } |
|
| 271 | - else if ($template_resolver instanceof Render\TemplateResolverDecorator) |
|
| 267 | + } else if ($template_resolver instanceof Render\TemplateResolverDecorator) |
|
| 272 | 268 | { |
| 273 | 269 | $basic_template_resolver = $template_resolver->find_renderer(Render\BasicTemplateResolver::class); |
| 274 | 270 | } |
@@ -470,14 +466,12 @@ discard block |
||
| 470 | 466 | try |
| 471 | 467 | { |
| 472 | 468 | $rc .= $node($this, $this->context); |
| 473 | - } |
|
| 474 | - catch (\Exception $e) |
|
| 469 | + } catch (\Exception $e) |
|
| 475 | 470 | { |
| 476 | 471 | if (class_exists('ICanBoogie\Debug')) |
| 477 | 472 | { |
| 478 | 473 | $rc .= Debug::format_alert($e); |
| 479 | - } |
|
| 480 | - else |
|
| 474 | + } else |
|
| 481 | 475 | { |
| 482 | 476 | $rc .= $e; |
| 483 | 477 | } |
@@ -115,6 +115,9 @@ discard block |
||
| 115 | 115 | protected $trace = []; |
| 116 | 116 | protected $errors = []; |
| 117 | 117 | |
| 118 | + /** |
|
| 119 | + * @param string[] $a |
|
| 120 | + */ |
|
| 118 | 121 | public function trace_enter($a) |
| 119 | 122 | { |
| 120 | 123 | array_unshift($this->trace, $a); |
@@ -205,6 +208,9 @@ discard block |
||
| 205 | 208 | return $rc; |
| 206 | 209 | } |
| 207 | 210 | |
| 211 | + /** |
|
| 212 | + * @return string |
|
| 213 | + */ |
|
| 208 | 214 | public function get_file() |
| 209 | 215 | { |
| 210 | 216 | foreach ($this->trace as $trace) |
@@ -233,6 +239,9 @@ discard block |
||
| 233 | 239 | |
| 234 | 240 | protected $templates = []; |
| 235 | 241 | |
| 242 | + /** |
|
| 243 | + * @param string $name |
|
| 244 | + */ |
|
| 236 | 245 | public function addTemplate($name, $template) |
| 237 | 246 | { |
| 238 | 247 | if (isset($this->templates[$name])) |
@@ -317,7 +326,7 @@ discard block |
||
| 317 | 326 | /** |
| 318 | 327 | * Calls a template. |
| 319 | 328 | * |
| 320 | - * @param $name |
|
| 329 | + * @param string $name |
|
| 321 | 330 | * @param array $args |
| 322 | 331 | * |
| 323 | 332 | * @return string |
@@ -376,6 +385,9 @@ discard block |
||
| 376 | 385 | ** |
| 377 | 386 | */ |
| 378 | 387 | |
| 388 | + /** |
|
| 389 | + * @return Node[] |
|
| 390 | + */ |
|
| 379 | 391 | protected function get_compiled($template) |
| 380 | 392 | { |
| 381 | 393 | static $compiler; |
@@ -87,7 +87,7 @@ discard block |
||
| 87 | 87 | * @param string $expression |
| 88 | 88 | * @param bool $silent |
| 89 | 89 | */ |
| 90 | - public function evaluate($expression, $silent=false, $context=null) |
|
| 90 | + public function evaluate($expression, $silent = false, $context = null) |
|
| 91 | 91 | { |
| 92 | 92 | $evaluator = $this->evaluator; |
| 93 | 93 | |
@@ -125,11 +125,11 @@ discard block |
||
| 125 | 125 | array_shift($this->trace); |
| 126 | 126 | } |
| 127 | 127 | |
| 128 | - public function error($alert, array $args=[]) |
|
| 128 | + public function error($alert, array $args = []) |
|
| 129 | 129 | { |
| 130 | 130 | if ($alert instanceof \ICanBoogie\Exception\Config) |
| 131 | 131 | { |
| 132 | - $this->errors[] = '<div class="alert alert-danger">' . $alert->getMessage() . '</div>'; |
|
| 132 | + $this->errors[] = '<div class="alert alert-danger">'.$alert->getMessage().'</div>'; |
|
| 133 | 133 | |
| 134 | 134 | return; |
| 135 | 135 | } |
@@ -166,12 +166,12 @@ discard block |
||
| 166 | 166 | } |
| 167 | 167 | } |
| 168 | 168 | |
| 169 | - $trace_html .= sprintf('#%02d: in %s "%s"', $i--, $which, $message) . '<br />'; |
|
| 169 | + $trace_html .= sprintf('#%02d: in %s "%s"', $i--, $which, $message).'<br />'; |
|
| 170 | 170 | } |
| 171 | 171 | |
| 172 | 172 | if ($trace_html) |
| 173 | 173 | { |
| 174 | - $trace_html = '<pre>' . $trace_html . '</pre>'; |
|
| 174 | + $trace_html = '<pre>'.$trace_html.'</pre>'; |
|
| 175 | 175 | } |
| 176 | 176 | } |
| 177 | 177 | |
@@ -179,7 +179,7 @@ discard block |
||
| 179 | 179 | # |
| 180 | 180 | # |
| 181 | 181 | |
| 182 | - $this->errors[] = '<div class="alert alert-danger">' . $alert . $trace_html . '</div>'; |
|
| 182 | + $this->errors[] = '<div class="alert alert-danger">'.$alert.$trace_html.'</div>'; |
|
| 183 | 183 | } |
| 184 | 184 | |
| 185 | 185 | public function handle_exception(\Exception $e) |
@@ -278,7 +278,7 @@ discard block |
||
| 278 | 278 | } |
| 279 | 279 | |
| 280 | 280 | $tries = []; |
| 281 | - $template_pathname = $template_resolver->resolve($name, [ '.patron', '.html' ], $tries); |
|
| 281 | + $template_pathname = $template_resolver->resolve($name, ['.patron', '.html'], $tries); |
|
| 282 | 282 | |
| 283 | 283 | if ($template_pathname) |
| 284 | 284 | { |
@@ -286,7 +286,7 @@ discard block |
||
| 286 | 286 | } |
| 287 | 287 | |
| 288 | 288 | $template_name = TemplateName::from($name); |
| 289 | - $template_pathname = $template_resolver->resolve($template_name->as_partial, [ '.patron', '.html' ], $tries); |
|
| 289 | + $template_pathname = $template_resolver->resolve($template_name->as_partial, ['.patron', '.html'], $tries); |
|
| 290 | 290 | |
| 291 | 291 | if ($template_pathname) |
| 292 | 292 | { |
@@ -301,7 +301,7 @@ discard block |
||
| 301 | 301 | $content = file_get_contents($pathname); |
| 302 | 302 | $nodes = $this->get_compiled($content); |
| 303 | 303 | |
| 304 | - return new Template($nodes, [ 'file' => $pathname ]); |
|
| 304 | + return new Template($nodes, ['file' => $pathname]); |
|
| 305 | 305 | } |
| 306 | 306 | |
| 307 | 307 | protected function get_template($name) |
@@ -322,14 +322,14 @@ discard block |
||
| 322 | 322 | * |
| 323 | 323 | * @return string |
| 324 | 324 | */ |
| 325 | - public function callTemplate($name, array $args=[]) |
|
| 325 | + public function callTemplate($name, array $args = []) |
|
| 326 | 326 | { |
| 327 | 327 | $template = $this->get_template($name); |
| 328 | 328 | |
| 329 | 329 | if (!$template) |
| 330 | 330 | { |
| 331 | 331 | $er = 'Unknown template %name'; |
| 332 | - $params = [ '%name' => $name ]; |
|
| 332 | + $params = ['%name' => $name]; |
|
| 333 | 333 | |
| 334 | 334 | if ($this->templates) |
| 335 | 335 | { |
@@ -342,7 +342,7 @@ discard block |
||
| 342 | 342 | return null; |
| 343 | 343 | } |
| 344 | 344 | |
| 345 | - $this->trace_enter([ 'template', $name, $template ]); |
|
| 345 | + $this->trace_enter(['template', $name, $template]); |
|
| 346 | 346 | |
| 347 | 347 | $this->context['self']['arguments'] = $args; |
| 348 | 348 | |
@@ -365,7 +365,7 @@ discard block |
||
| 365 | 365 | |
| 366 | 366 | protected function init_context() |
| 367 | 367 | { |
| 368 | - $this->context = new \BlueTihi\Context([ 'self' => null, 'this' => null ]); |
|
| 368 | + $this->context = new \BlueTihi\Context(['self' => null, 'this' => null]); |
|
| 369 | 369 | } |
| 370 | 370 | |
| 371 | 371 | /* |
@@ -388,7 +388,7 @@ discard block |
||
| 388 | 388 | return $compiler($template); |
| 389 | 389 | } |
| 390 | 390 | |
| 391 | - public function __invoke($template, $bind=null, array $options=[]) |
|
| 391 | + public function __invoke($template, $bind = null, array $options = []) |
|
| 392 | 392 | { |
| 393 | 393 | if (!$template) |
| 394 | 394 | { |
@@ -448,12 +448,12 @@ discard block |
||
| 448 | 448 | $template = $this->get_compiled($template); |
| 449 | 449 | } |
| 450 | 450 | |
| 451 | - $template = new Template($template, [ 'file' => $file ]); |
|
| 451 | + $template = new Template($template, ['file' => $file]); |
|
| 452 | 452 | } |
| 453 | 453 | |
| 454 | 454 | if ($template->file) |
| 455 | 455 | { |
| 456 | - $this->trace_enter([ 'file', $template->file ]); |
|
| 456 | + $this->trace_enter(['file', $template->file]); |
|
| 457 | 457 | } |
| 458 | 458 | |
| 459 | 459 | $rc = ''; |
@@ -136,11 +136,11 @@ |
||
| 136 | 136 | # call hook |
| 137 | 137 | # |
| 138 | 138 | |
| 139 | - $engine->trace_enter([ 'markup', $name ]); |
|
| 139 | + $engine->trace_enter(['markup', $name]); |
|
| 140 | 140 | |
| 141 | 141 | if ($binding) |
| 142 | 142 | { |
| 143 | - array_push($engine->context_markup, [ $engine->context['self'], $engine->context['this'] ]); |
|
| 143 | + array_push($engine->context_markup, [$engine->context['self'], $engine->context['this']]); |
|
| 144 | 144 | |
| 145 | 145 | $engine->context['self'] = [ |
| 146 | 146 | |
@@ -74,19 +74,16 @@ discard block |
||
| 74 | 74 | if ($value{0} == ':') |
| 75 | 75 | { |
| 76 | 76 | $args[$param] = substr($value, 1); |
| 77 | - } |
|
| 78 | - else |
|
| 77 | + } else |
|
| 79 | 78 | { |
| 80 | 79 | $args[$param] = $engine->evaluate($value, $silent, $context); |
| 81 | 80 | } |
| 82 | 81 | } |
| 83 | - } |
|
| 84 | - else if (isset($options['required'])) |
|
| 82 | + } else if (isset($options['required'])) |
|
| 85 | 83 | { |
| 86 | 84 | $missing[$param] = true; |
| 87 | 85 | } |
| 88 | - } |
|
| 89 | - else |
|
| 86 | + } else |
|
| 90 | 87 | { |
| 91 | 88 | if (!array_key_exists($param, $args)) |
| 92 | 89 | { |
@@ -122,8 +119,7 @@ discard block |
||
| 122 | 119 | if (isset($arg->args['select'])) |
| 123 | 120 | { |
| 124 | 121 | $arg = $engine->evaluate($arg->args['select'], false, $context); |
| 125 | - } |
|
| 126 | - else |
|
| 122 | + } else |
|
| 127 | 123 | { |
| 128 | 124 | $arg = $engine($arg->nodes); |
| 129 | 125 | } |
@@ -155,8 +151,7 @@ discard block |
||
| 155 | 151 | try |
| 156 | 152 | { |
| 157 | 153 | $rc = call_user_func($callback, $args, $engine, $this->nodes); |
| 158 | - } |
|
| 159 | - catch (\Exception $e) |
|
| 154 | + } catch (\Exception $e) |
|
| 160 | 155 | { |
| 161 | 156 | $engine->handle_exception($e); |
| 162 | 157 | } |
@@ -47,8 +47,7 @@ discard block |
||
| 47 | 47 | } |
| 48 | 48 | |
| 49 | 49 | $nodes[] = new ControlNode($node['name'], $node['args'], $children); |
| 50 | - } |
|
| 51 | - else |
|
| 50 | + } else |
|
| 52 | 51 | { |
| 53 | 52 | # |
| 54 | 53 | # we don't resolve comments, unless they are Internet Explorer comments e.g. <!--[ |
@@ -61,8 +60,7 @@ discard block |
||
| 61 | 60 | $children = $this->parse_html_node($node); |
| 62 | 61 | |
| 63 | 62 | $nodes = array_merge($nodes, $children); |
| 64 | - } |
|
| 65 | - else |
|
| 63 | + } else |
|
| 66 | 64 | { |
| 67 | 65 | # |
| 68 | 66 | # The comments, which are on odd position, are kept intact. The text, which is |
@@ -74,8 +72,7 @@ discard block |
||
| 74 | 72 | if ($i % 2) |
| 75 | 73 | { |
| 76 | 74 | $nodes[] = new TextNode($part); |
| 77 | - } |
|
| 78 | - else |
|
| 75 | + } else |
|
| 79 | 76 | { |
| 80 | 77 | $children = $this->parse_html_node($part); |
| 81 | 78 | |
@@ -99,8 +96,7 @@ discard block |
||
| 99 | 96 | if ($i % 2) |
| 100 | 97 | { |
| 101 | 98 | $nodes[] = $this->parse_expression($part); |
| 102 | - } |
|
| 103 | - else |
|
| 99 | + } else |
|
| 104 | 100 | { |
| 105 | 101 | $nodes[] = new TextNode($part); |
| 106 | 102 | } |