xref: /dokuwiki/inc/Parsing/ParserMode/Preformatted.php (revision be906b566b9bdfd92c032ee07c4fd077d820a8d1)
1*be906b56SAndreas Gohr<?php
2*be906b56SAndreas Gohr
3*be906b56SAndreas Gohrnamespace dokuwiki\Parsing\ParserMode;
4*be906b56SAndreas Gohr
5*be906b56SAndreas Gohrclass Preformatted extends AbstractMode
6*be906b56SAndreas Gohr{
7*be906b56SAndreas Gohr
8*be906b56SAndreas Gohr    /** @inheritdoc */
9*be906b56SAndreas Gohr    public function connectTo($mode)
10*be906b56SAndreas Gohr    {
11*be906b56SAndreas Gohr        // Has hard coded awareness of lists...
12*be906b56SAndreas Gohr        $this->Lexer->addEntryPattern('\n  (?![\*\-])', $mode, 'preformatted');
13*be906b56SAndreas Gohr        $this->Lexer->addEntryPattern('\n\t(?![\*\-])', $mode, 'preformatted');
14*be906b56SAndreas Gohr
15*be906b56SAndreas Gohr        // How to effect a sub pattern with the Lexer!
16*be906b56SAndreas Gohr        $this->Lexer->addPattern('\n  ', 'preformatted');
17*be906b56SAndreas Gohr        $this->Lexer->addPattern('\n\t', 'preformatted');
18*be906b56SAndreas Gohr    }
19*be906b56SAndreas Gohr
20*be906b56SAndreas Gohr    /** @inheritdoc */
21*be906b56SAndreas Gohr    public function postConnect()
22*be906b56SAndreas Gohr    {
23*be906b56SAndreas Gohr        $this->Lexer->addExitPattern('\n', 'preformatted');
24*be906b56SAndreas Gohr    }
25*be906b56SAndreas Gohr
26*be906b56SAndreas Gohr    /** @inheritdoc */
27*be906b56SAndreas Gohr    public function getSort()
28*be906b56SAndreas Gohr    {
29*be906b56SAndreas Gohr        return 20;
30*be906b56SAndreas Gohr    }
31*be906b56SAndreas Gohr}
32