<?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";
	}

}