1*04fd306cSNickeau<?php 2*04fd306cSNickeau 3*04fd306cSNickeaunamespace ComboStrap; 4*04fd306cSNickeau 5*04fd306cSNickeauuse Doku_Handler; 6*04fd306cSNickeau 7*04fd306cSNickeauclass Parser 8*04fd306cSNickeau{ 9*04fd306cSNickeau 10*04fd306cSNickeau 11*04fd306cSNickeau /** 12*04fd306cSNickeau * @param $markup - the markup 13*04fd306cSNickeau * @return Doku_Handler - the handler 14*04fd306cSNickeau */ 15*04fd306cSNickeau public static function parseMarkupToHandler($markup): Doku_Handler 16*04fd306cSNickeau { 17*04fd306cSNickeau global $ID; 18*04fd306cSNickeau $keep = $ID; 19*04fd306cSNickeau global $ACT; 20*04fd306cSNickeau $keepAct = $ACT; 21*04fd306cSNickeau if ($ID === null) { 22*04fd306cSNickeau $ID = ExecutionContext::getActualOrCreateFromEnv()->getConfig()->getDefaultContextPath()->getWikiId(); 23*04fd306cSNickeau } 24*04fd306cSNickeau try { 25*04fd306cSNickeau /** 26*04fd306cSNickeau * Fragment 27*04fd306cSNickeau */ 28*04fd306cSNickeau $ACT = ExecutionContext::PREVIEW_ACTION; 29*04fd306cSNickeau $modes = p_get_parsermodes(); 30*04fd306cSNickeau $handler = new Doku_Handler(); 31*04fd306cSNickeau $parser = new \dokuwiki\Parsing\Parser($handler); 32*04fd306cSNickeau 33*04fd306cSNickeau //add modes to parser 34*04fd306cSNickeau foreach ($modes as $mode) { 35*04fd306cSNickeau $parser->addMode($mode['mode'], $mode['obj']); 36*04fd306cSNickeau } 37*04fd306cSNickeau $parser->parse($markup); 38*04fd306cSNickeau return $handler; 39*04fd306cSNickeau } finally { 40*04fd306cSNickeau $ID = $keep; 41*04fd306cSNickeau $ACT = $keepAct; 42*04fd306cSNickeau } 43*04fd306cSNickeau } 44*04fd306cSNickeau} 45