xref: /plugin/mikioplugin/syntax/steps.php (revision 3a0ad8d394ede994db68f1ed17eff796c659fc4a)
17935713eSJames Collins<?php
27935713eSJames Collins/**
37935713eSJames Collins * Mikio Syntax Plugin: Steps
47935713eSJames Collins *
57935713eSJames Collins * @link        http://github.com/nomadjimbob/mikioplugin
67935713eSJames Collins * @license     GPL 2 (http://www.gnu.org/licenses/gpl.html)
77935713eSJames Collins * @author      James Collins <james.collins@outlook.com.au>
87935713eSJames Collins */
97935713eSJames Collinsif (!defined('DOKU_INC')) die();
107935713eSJames Collinsif (!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
11*3a0ad8d3SJames Collinsrequire_once(__DIR__.'/core.php');
127935713eSJames Collins
137935713eSJames Collinsclass syntax_plugin_mikioplugin_steps extends syntax_plugin_mikioplugin_core {
147935713eSJames Collins    public $tag                 = 'steps';
1543f781e0SJames Collins    public $requires_tag        = 'step';
167935713eSJames Collins    public $hasEndTag           = true;
177935713eSJames Collins
187935713eSJames Collins    public function __construct() {
197935713eSJames Collins        $this->addCommonOptions('shadow');
207935713eSJames Collins    }
217935713eSJames Collins
227935713eSJames Collins    // public function getAllowedTypes() {  return array(); }
237935713eSJames Collins
247935713eSJames Collins    public function render_lexer_enter(Doku_Renderer $renderer, $data) {
257935713eSJames Collins        $classes = $this->buildClass($data);
267935713eSJames Collins
277935713eSJames Collins        $renderer->doc .= '<ul class="' . $this->elemClass . ' ' . $this->classPrefix . 'steps'. $classes . '">';
287935713eSJames Collins    }
297935713eSJames Collins
307935713eSJames Collins
317935713eSJames Collins    public function render_lexer_exit(Doku_Renderer $renderer, $data) {
327935713eSJames Collins        $renderer->doc .= '</ul>';
337935713eSJames Collins    }
347935713eSJames Collins
357935713eSJames Collins
367935713eSJames Collins    // public function render_lexer_unmatched(Doku_Renderer $renderer, $data) {
377935713eSJames Collins    //     $items = [];
387935713eSJames Collins    //     $bar = '';
397935713eSJames Collins
407935713eSJames Collins    //     if(preg_match_all('/<(?i:' . $this->tagPrefix . 'step)(.*?)>/s', $data, $match)) {
417935713eSJames Collins    //         if(count($match) >= 1) {
427935713eSJames Collins    //             for($i = 0; $i < count($match[1]); $i++) {
437935713eSJames Collins    //                 $title = '';
447935713eSJames Collins    //                 $text = '';
457935713eSJames Collins    //                 $complete = false;
467935713eSJames Collins
477935713eSJames Collins    //                 if(preg_match('/title=("\w[\w\s]*(?=")|\w+|"[\w\s]*")/is', $match[1][$i], $titleMatch)) {
487935713eSJames Collins    //                     if(count($titleMatch) >= 1) {
497935713eSJames Collins    //                         $title = str_replace("\"", "", $titleMatch[1]);
507935713eSJames Collins    //                     }
517935713eSJames Collins    //                 }
527935713eSJames Collins
537935713eSJames Collins    //                 if(preg_match('/text=("\w[\w\s]*(?=")|\w+|"[\w\s]*")/is', $match[1][$i], $titleMatch)) {
547935713eSJames Collins    //                     if(count($titleMatch) >= 1) {
557935713eSJames Collins    //                         $text = str_replace("\"", "", $titleMatch[1]);
567935713eSJames Collins    //                     }
577935713eSJames Collins    //                 }
587935713eSJames Collins
597935713eSJames Collins    //                 if(preg_match('/ complete /is', $match[1][$i], $titleMatch)) {
607935713eSJames Collins    //                     if(count($titleMatch) >= 1) {
617935713eSJames Collins    //                         $complete = true;
627935713eSJames Collins    //                     }
637935713eSJames Collins    //                 }
647935713eSJames Collins
657935713eSJames Collins    //                 $items[] = array('title' => $title, 'text' => $text, 'complete' => $complete);
667935713eSJames Collins    //             }
677935713eSJames Collins    //         }
687935713eSJames Collins    //     }
697935713eSJames Collins
707935713eSJames Collins    //     foreach($items as $item) {
717935713eSJames Collins    //         $bar .= '<li class="' . $this->elemClass . ' ' . $this->classPrefix . 'step' . ($item['complete'] ? ' ' . $this->classPrefix . 'complete' : '' ) . '"><b>' . $item['title'] .'</b>' . $item['text'] . '</li>';
727935713eSJames Collins    //     }
737935713eSJames Collins
747935713eSJames Collins    //     $renderer->doc .= $bar . '</ul>';
757935713eSJames Collins    // }
767935713eSJames Collins}
777935713eSJames Collins?>
78