Note: This plugin will be discontinued. A BBCode plugin making different text sizes possible will be realeased soon.
With this plugin the syntax of DokuWiki is extended to allow text with larger font size. The syntax to use this plugin is…
#+Larger text+#
You can see the plugin in action here.
Put the following PHP file in /lib/plugins/larger/syntax.php.
<?php /** * Larger Plugin: enables larger text font size with syntax #+text+# * * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * @author Esther Brunner <esther [at] kaffeehaus [dot] ch> */ 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_larger extends DokuWiki_Syntax_Plugin { /** * return some info */ function getInfo(){ return array( 'author' => 'Esther Brunner', 'email' => 'esther@kaffeehaus.ch', 'date' => '2005-06-27', 'name' => 'Larger Plugin', 'desc' => 'Enables larger text', 'url' => 'http://www.dokuwiki.org/plugin:larger', ); } /** * Constructor - adds allowed modes */ function syntax_plugin_larger(){ global $PARSER_MODES; $this->allowedModes = array_merge ( $PARSER_MODES['formatting'], $PARSER_MODES['substition'], $PARSER_MODES['disabled'] ); } /** * What kind of syntax are we? */ function getType(){ return 'formatting'; } /** * Where to sort in? */ function getSort(){ return 106; } /** * Connect pattern to lexer */ function connectTo($mode) { $this->Lexer->addEntryPattern('#\+(?=.*\+#)',$mode,'plugin_larger'); } function postConnect() { $this->Lexer->addExitPattern('\+#','plugin_larger'); } /** * Handle the match */ function handle($match, $state, $pos, &$handler){ return array($match, $state); } /** * Create output */ function render($mode, &$renderer, $data) { if($mode == 'xhtml'){ if ($data[1] == DOKU_LEXER_ENTER){ $renderer->doc .= '<span style="font-size:larger">'; } else if ($data[1] == DOKU_LEXER_UNMATCHED){ $renderer->doc .= $renderer->_xmlEntities($data[0]); } else if ($data[1] == DOKU_LEXER_EXIT){ $renderer->doc .= '</span>'; } return true; } return false; } } //Setup VIM: ex: et ts=4 enc=utf-8 : ?>