1<?php
2/**
3 * @copyright Copyright (c) 2014 Carsten Brandt
4 * @license https://github.com/cebe/markdown/blob/master/LICENSE
5 * @link https://github.com/cebe/markdown#readme
6 */
7
8namespace cebe\markdown\inline;
9
10/**
11 * Adds strikeout inline elements
12 */
13trait StrikeoutTrait
14{
15	/**
16	 * Parses the strikethrough feature.
17	 * @marker ~~
18	 */
19	protected function parseStrike($markdown)
20	{
21		if (preg_match('/^~~(.+?)~~/', $markdown, $matches)) {
22			return [
23				[
24					'strike',
25					$this->parseInline($matches[1])
26				],
27				strlen($matches[0])
28			];
29		}
30		return [['text', $markdown[0] . $markdown[1]], 2];
31	}
32
33	protected function renderStrike($block)
34	{
35		return '<del>' . $this->renderAbsy($block[1]) . '</del>';
36	}
37
38    abstract protected function parseInline($text);
39    abstract protected function renderAbsy($blocks);
40}
41