xref: /plugin/description/syntax.php (revision 917d5640a0beb78e6433531eb9b3e1dbd00cf688)
1e874628fSMatthias Schulte<?php
2e874628fSMatthias Schulte/**
3e874628fSMatthias Schulte * Description plugin
4e874628fSMatthias Schulte *
5e874628fSMatthias Schulte * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
6*917d5640Slupo49 * @author     Matthias Schulte <dokuwiki@lupo49.de>
7e874628fSMatthias Schulte */
8e874628fSMatthias Schulte
9e874628fSMatthias Schulte// must be run within Dokuwiki
10e874628fSMatthias Schulteif(!defined('DOKU_INC')) die();
11e874628fSMatthias Schulte
12e874628fSMatthias Schulteif (!defined('DOKU_LF')) define('DOKU_LF', "\n");
13e874628fSMatthias Schulteif (!defined('DOKU_TAB')) define('DOKU_TAB', "\t");
14e874628fSMatthias Schulteif (!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
15e874628fSMatthias Schulte
16e874628fSMatthias Schulterequire_once(DOKU_PLUGIN.'syntax.php');
17e874628fSMatthias Schulte
18e874628fSMatthias Schulteclass syntax_plugin_description extends DokuWiki_Syntax_Plugin {
19e874628fSMatthias Schulte
20e874628fSMatthias Schulte    function getType() { return 'substition'; }
21e874628fSMatthias Schulte    function getPType() { return 'block'; }
22e874628fSMatthias Schulte    function getSort() { return 98; }
23e874628fSMatthias Schulte
24e874628fSMatthias Schulte    function connectTo($mode) {
25e874628fSMatthias Schulte        $this->Lexer->addSpecialPattern('\{\{description>.+?\}\}', $mode, 'plugin_description');
26e874628fSMatthias Schulte    }
27e874628fSMatthias Schulte
28e874628fSMatthias Schulte    function handle($match, $state, $pos, &$handler) {
29e874628fSMatthias Schulte        $match = substr($match, 14, -2); // strip markup
30e874628fSMatthias Schulte        $match = hsc($match);
31e874628fSMatthias Schulte
32e874628fSMatthias Schulte        return array($match);
33e874628fSMatthias Schulte    }
34e874628fSMatthias Schulte
35e874628fSMatthias Schulte    function render($mode, &$renderer, $data) {
36e874628fSMatthias Schulte        global $conf;
37e874628fSMatthias Schulte        global $ID;
38e874628fSMatthias Schulte        $description = $data[0];
39e874628fSMatthias Schulte        if(empty($description)) return false;
40e874628fSMatthias Schulte
41af8734d9SMatthias Schulte        if ($mode == 'metadata') {
42*917d5640Slupo49            $renderer->meta['plugin_description']['keywords'] = $description;
43e874628fSMatthias Schulte            return true;
44e874628fSMatthias Schulte        }
45e874628fSMatthias Schulte        return false;
46e874628fSMatthias Schulte    }
47e874628fSMatthias Schulte}
48e874628fSMatthias Schulte
49e874628fSMatthias Schulte// vim:ts=4:sw=4:et:
50