1be906b56SAndreas Gohr<?php 2be906b56SAndreas Gohr 3be906b56SAndreas Gohrnamespace dokuwiki\Parsing\ParserMode; 4be906b56SAndreas Gohr 5*71096e46SAndreas Gohruse dokuwiki\Parsing\Handler; 6*71096e46SAndreas Gohr 7be906b56SAndreas Gohrclass Unformatted extends AbstractMode 8be906b56SAndreas Gohr{ 9be906b56SAndreas Gohr /** @inheritdoc */ 10*71096e46SAndreas Gohr public function getSort() 11*71096e46SAndreas Gohr { 12*71096e46SAndreas Gohr return 170; 13*71096e46SAndreas Gohr } 14*71096e46SAndreas Gohr 15*71096e46SAndreas Gohr /** @inheritdoc */ 16be906b56SAndreas Gohr public function connectTo($mode) 17be906b56SAndreas Gohr { 18be906b56SAndreas Gohr $this->Lexer->addEntryPattern('<nowiki>(?=.*</nowiki>)', $mode, 'unformatted'); 19be906b56SAndreas Gohr $this->Lexer->addEntryPattern('%%(?=.*%%)', $mode, 'unformattedalt'); 20be906b56SAndreas Gohr } 21be906b56SAndreas Gohr 22be906b56SAndreas Gohr /** @inheritdoc */ 23be906b56SAndreas Gohr public function postConnect() 24be906b56SAndreas Gohr { 25be906b56SAndreas Gohr $this->Lexer->addExitPattern('</nowiki>', 'unformatted'); 26be906b56SAndreas Gohr $this->Lexer->addExitPattern('%%', 'unformattedalt'); 27be906b56SAndreas Gohr $this->Lexer->mapHandler('unformattedalt', 'unformatted'); 28be906b56SAndreas Gohr } 29be906b56SAndreas Gohr 30be906b56SAndreas Gohr /** @inheritdoc */ 31*71096e46SAndreas Gohr public function handle($match, $state, $pos, Handler $handler) 32be906b56SAndreas Gohr { 33*71096e46SAndreas Gohr if ($state == DOKU_LEXER_UNMATCHED) { 34*71096e46SAndreas Gohr $handler->addCall('unformatted', [$match], $pos); 35*71096e46SAndreas Gohr } 36*71096e46SAndreas Gohr return true; 37be906b56SAndreas Gohr } 38be906b56SAndreas Gohr} 39