From f62ea8a1d1cf10eddeae777b11420624e111b7ea Mon Sep 17 00:00:00 2001 From: andi Date: Sun, 5 Jun 2005 12:38:42 +0200 Subject: directory layout cleanup !IMPORTANT This patch changes the directory structure of dokuwiki as suggested in http://www.freelists.org/archives/dokuwiki/06-2005/msg00045.html As the changes.log is not managed through darcs you need to move it your self to the new location in data/changes.log I think I modified the code at all nessessary places, but I may have forgotten a few things. darcs-hash:20050605103842-9977f-af20f63c1d604888375d175d89ac6bd71566d47d.gz --- lib/plugins/info/syntax.php | 110 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 lib/plugins/info/syntax.php (limited to 'lib/plugins/info') diff --git a/lib/plugins/info/syntax.php b/lib/plugins/info/syntax.php new file mode 100644 index 000000000..f0afcf2ec --- /dev/null +++ b/lib/plugins/info/syntax.php @@ -0,0 +1,110 @@ + + */ + +if(!defined('DOKU_INC')) define('DOKU_INC',realpath(dirname(__FILE__).'/../../').'/'); +if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/'); +require_once(DOKU_PLUGIN.'syntax.php'); + +/** + * All DokuWiki plugins to extend the parser/rendering mechanism + * need to inherit from this class + */ +class syntax_plugin_info extends DokuWiki_Syntax_Plugin { + + /** + * What kind of syntax are we? + */ + function getType(){ + return 'substition'; + } + + /** + * Where to sort in? + */ + function getSort(){ + return 155; + } + + + /** + * Connect pattern to lexer + */ + function connectTo($mode) { + $this->Lexer->addSpecialPattern('~~INFO:\w+~~',$mode,'plugin_info'); + } + + + /** + * Handle the match + */ + function handle($match, $state, $pos, &$handler){ + $match = substr($match,7,-2); //strip ~~INFO: from start and ~~ from end + return array(strtolower($match)); + } + + /** + * Create output + */ + function render($mode, &$renderer, $data) { + if($mode == 'xhtml'){ + //handle various info stuff + switch ($data[0]){ + case 'version'; + $renderer->doc .= getVersion(); + break; + case 'syntaxmodes'; + $renderer->doc .= $this->_syntaxmodes_xhtml(); + break; + case 'syntaxtypes'; + $renderer->doc .= $this->_syntaxtypes_xhtml(); + break; + default: + $renderer->doc .= "no info about ".htmlspecialchars($data[0]); + } + return true; + } + return false; + } + + /** + * lists all known syntax types and their registered modes + */ + function _syntaxtypes_xhtml(){ + global $PARSER_MODES; + $doc = ''; + + $doc .= ''; + foreach($PARSER_MODES as $mode => $modes){ + $doc .= ''; + $doc .= ''; + $doc .= ''; + $doc .= ''; + } + $doc .= '
'; + $doc .= $mode; + $doc .= ''; + $doc .= join(', ',$modes); + $doc .= '
'; + return $doc; + } + + /** + * lists all known syntax modes and their sorting value + */ + function _syntaxmodes_xhtml(){ + $modes = p_get_parsermodes(); + $doc = ''; + + foreach ($modes as $mode){ + $doc .= $mode['mode'].' ('.$mode['sort'].'), '; + } + return $doc; + } +} + +//Setup VIM: ex: et ts=4 enc=utf-8 : -- cgit v1.2.3