40 lines
799 B
PHP
40 lines
799 B
PHP
<?php
|
|
/**
|
|
* @copyright Copyright 2014 Carsten Brandt, 2024 Daniel Pimley
|
|
* @license https://github.com/xenocrat/chyrp-markdown/blob/master/LICENSE
|
|
* @link https://github.com/xenocrat/chyrp-markdown#readme
|
|
*/
|
|
|
|
namespace xenocrat\markdown\block;
|
|
|
|
/**
|
|
* Adds horizontal rules.
|
|
*/
|
|
trait RuleTrait
|
|
{
|
|
/**
|
|
* Identify a line as a horizontal rule.
|
|
*/
|
|
protected function identifyHr($line): bool
|
|
{
|
|
// At least 3 of -, * or _ on one line make a hr.
|
|
return preg_match('/^ {0,3}([\-\*_])\s*\1\s*\1(\1|\s)*$/', $line);
|
|
}
|
|
|
|
/**
|
|
* Consume a horizontal rule.
|
|
*/
|
|
protected function consumeHr($lines, $current): array
|
|
{
|
|
return [['hr'], $current];
|
|
}
|
|
|
|
/**
|
|
* Renders a horizontal rule.
|
|
*/
|
|
protected function renderHr($block): string
|
|
{
|
|
return $this->html5 ? "<hr>\n" : "<hr />\n";
|
|
}
|
|
|
|
}
|