Differential D20774 Diff 49536 src/infrastructure/markup/blockrule/PhutilRemarkupHorizontalRuleBlockRule.php
Changeset View
Changeset View
Standalone View
Standalone View
src/infrastructure/markup/blockrule/PhutilRemarkupHorizontalRuleBlockRule.php
- This file was added.
| <?php | |||||
| final class PhutilRemarkupHorizontalRuleBlockRule | |||||
| extends PhutilRemarkupBlockRule { | |||||
| /** | |||||
| * This rule executes at priority `300`, so it can preempt the list block | |||||
| * rule and claim blocks which begin `---`. | |||||
| */ | |||||
| public function getPriority() { | |||||
| return 300; | |||||
| } | |||||
| public function getMatchingLineCount(array $lines, $cursor) { | |||||
| $num_lines = 0; | |||||
| $pattern = '/^\s*(?:_{3,}|\*\s?\*\s?\*(\s|\*)*|\-\s?\-\s?\-(\s|\-)*)$/'; | |||||
| if (preg_match($pattern, rtrim($lines[$cursor], "\n\r"))) { | |||||
| $num_lines++; | |||||
| $cursor++; | |||||
| while (isset($lines[$cursor]) && !strlen(trim($lines[$cursor]))) { | |||||
| $num_lines++; | |||||
| $cursor++; | |||||
| } | |||||
| } | |||||
| return $num_lines; | |||||
| } | |||||
| public function markupText($text, $children) { | |||||
| if ($this->getEngine()->isTextMode()) { | |||||
| return rtrim($text); | |||||
| } | |||||
| return phutil_tag('hr', array('class' => 'remarkup-hr')); | |||||
| } | |||||
| } | |||||