1<?php
2
3namespace dokuwiki\plugin\prosemirror\parser;
4
5
6class SmileyNode extends Node implements InlineNodeInterface
7{
8
9    protected $parent;
10    protected $data;
11
12    /** @var TextNode */
13    protected $textNode;
14
15    public function __construct($data, Node $parent, Node $previous = null)
16    {
17        $this->parent = &$parent;
18        $this->data = $data;
19
20        // every inline node needs a TextNode to track marks
21        $this->textNode = new TextNode(['marks' => $data['marks'] ?? null], $parent, $previous);
22    }
23
24    /**
25     * Get the node's representation as DokuWiki Syntax
26     *
27     * @return string
28     */
29    public function toSyntax()
30    {
31        return $this->data['attrs']['syntax'];
32    }
33
34    /**
35     * @param string $markType
36     */
37    public function increaseMark($markType)
38    {
39        return $this->textNode->increaseMark($markType);
40    }
41
42    /**
43     * @param string $markType
44     * @return int|null
45     * @throws \Exception
46     */
47    public function getStartingNodeMarkScore($markType)
48    {
49        return $this->textNode->getStartingNodeMarkScore($markType);
50    }
51}
52