DokuWiki

It's better when it's simple

User Tools

Site Tools


plugin:fontsize

fontsize Plugin

Compatible with DokuWiki

>= 2005-07-01

plugin This plugin allows text in different sizes.

Last updated on
2008-04-25
Provides
Syntax

This extension has not been updated in over 2 years. It may no longer be maintained or supported and may have compatibility issues.

Tagged with style, typography

Description

This plugin allows to write text in different sizes.

Syntax

Enclose the text in ## tags to make it larger, and in ,, to make it smaller.
Add more #s or ,s to increase or decrease the size in steps of 20%.

##this text is shown at 120% of the base size##, ###this is 140%### ####and this is 160%####
,,this is smaller, at 80%,, and ,,,this is at 60%,,,
,,if I were to put a comma after a small text,,%%,%% I would need to enclose the comma in double percent signs

##this text is shown at 120% of the base size##, ###this is 140%### ####and this is 160%#### ,,this is smaller, at 80%,, and ,,,this is at 60%,,, ,,if I were to put a comma after a small text,,, I would need to enclose the comma in double percent signs

Source Code

Create a directory fontsize in /wiki/lib/plugins and save the code in a syntax.php file there.

<?php
/**
* Font Size Plugin: Allow different font sizes
* 
* @license    GPL 3 (http://www.gnu.org/licenses/gpl.html)
* @author     Jesús A. Álvarez <zydeco [at] namedfork [dot] net>
*/
 
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');
 
class  syntax_plugin_fontsize extends DokuWiki_Syntax_Plugin {
 
	function getInfo(){
		return array(
			'author' => 'Jesús A. Álvarez',
			'email'  => 'zydeco@namedfork.net',
			'date'   => '2008-04-25',
			'name'   => 'Font Size Plugin',
			'desc'   => 'Allow different font sizes.',
			'url'    => 'http://www.dokuwiki.org/plugin:fontsize',
			);
	}
 
	function getType() { return('formatting'); }
	function getSort() { return 131; }
 
	function connectTo($mode) {
		$this->Lexer->addEntryPattern('##+(?=.*##+)',$mode,'plugin_fontsize');
		$this->Lexer->addEntryPattern(',,+(?=.*,,+)',$mode,'plugin_fontsize');
	}
 
    function postConnect() {
        $this->Lexer->addExitPattern('##+', 'plugin_fontsize');
        $this->Lexer->addExitPattern(',,+', 'plugin_fontsize');
    }
 
	function handle($match, $state, $pos, &$handler){
		switch ($state) {
			case DOKU_LEXER_ENTER:
				if ($match{1} == '#')
					$size = (strlen($match)*20)+80 .'%';
				else
					$size = 120-(strlen($match)*20) . '%';
				return array($state, $size);
			case DOKU_LEXER_UNMATCHED:	return array($state, $match);
			case DOKU_LEXER_EXIT:		return array($state, '');
		}
		return array();
	}
 
	function render($mode, &$renderer, $data) {
		if ($mode == 'xhtml') {
			list($state, $match) = $data;
			switch ($state) {
				case DOKU_LEXER_ENTER:
					$renderer->doc .= "<span style='font-size:$match;'>"; break;
				case DOKU_LEXER_UNMATCHED:
					$renderer->doc .= $renderer->_xmlEntities($match); break;
				case DOKU_LEXER_EXIT:
					$renderer->doc .= '</span>'; break;
			}
			return true;
		}
		return false;
	}
 
}
//Setup VIM: ex: et ts=4 enc=utf-8 :

Discussion

Hi. Is is me or I can't get the system to recognize a link if it's put in smalltext?

,, [[http://www.giocoestudio.it|programma]] ,,

this does not work…

Tnx!


Work neither with H1, H2, H3 etc titles :(

====== ##########big title for blind ppl########## ======

Too bad.


Hi!

You can solve this problem by patching the plugin with the function below:

    function getAllowedTypes() {
        return array('formatting', 'substition');
    }

See also synopsis for getAllowedTypes().


Hi! I have fontsize2 up and working, but fontsize does not. Have the syntax.php in the plugins folder, but the plugin does not work and does not appear in plugins in the config. Why :-?


I can not seem to get this to work for a page of text. All the line breaks stop working. Maybe because I'm using the xbr plugin?


Patching plugin works, thank you!


I wanted to link to a larger text, like

[[fs|####test####]]

but the number-signs are not resolved. I tried adding the patch above in syntax.php, but it did not work. Outside of the links, it works fine. Any idea?

plugin/fontsize.txt · Last modified: 2016-01-24 19:36 by Aleksandr