about summary refs log tree commit diff stats
path: root/wiki/lib/plugins/styling
diff options
context:
space:
mode:
authorahriman <ahriman@falte.red>2019-01-02 04:57:35 +0000
committerahriman <ahriman@falte.red>2019-01-02 04:57:35 +0000
commit2bd7f83a6495011ada78ca8a9f2af417caf01760 (patch)
treef9acdb7f09e011c65330ab993d4db3620787dbfb /wiki/lib/plugins/styling
parentbcb215c3a7e914d05f166846a33860e48bba64fb (diff)
downloadsite-2bd7f83a6495011ada78ca8a9f2af417caf01760.tar.gz
removed dokuwiki
Diffstat (limited to 'wiki/lib/plugins/styling')
-rw-r--r--wiki/lib/plugins/styling/README27
-rw-r--r--wiki/lib/plugins/styling/action.php60
-rw-r--r--wiki/lib/plugins/styling/admin.php211
-rw-r--r--wiki/lib/plugins/styling/admin.svg1
-rw-r--r--wiki/lib/plugins/styling/iris.js1488
-rw-r--r--wiki/lib/plugins/styling/lang/bg/lang.php21
-rw-r--r--wiki/lib/plugins/styling/lang/cs/intro.txt2
-rw-r--r--wiki/lib/plugins/styling/lang/cs/lang.php24
-rw-r--r--wiki/lib/plugins/styling/lang/cy/intro.txt2
-rw-r--r--wiki/lib/plugins/styling/lang/cy/lang.php36
-rw-r--r--wiki/lib/plugins/styling/lang/de-informal/intro.txt2
-rw-r--r--wiki/lib/plugins/styling/lang/de-informal/lang.php23
-rw-r--r--wiki/lib/plugins/styling/lang/de/intro.txt2
-rw-r--r--wiki/lib/plugins/styling/lang/de/lang.php24
-rw-r--r--wiki/lib/plugins/styling/lang/en/intro.txt2
-rw-r--r--wiki/lib/plugins/styling/lang/en/lang.php35
-rw-r--r--wiki/lib/plugins/styling/lang/eo/lang.php9
-rw-r--r--wiki/lib/plugins/styling/lang/es/intro.txt2
-rw-r--r--wiki/lib/plugins/styling/lang/es/lang.php23
-rw-r--r--wiki/lib/plugins/styling/lang/fa/intro.txt2
-rw-r--r--wiki/lib/plugins/styling/lang/fa/lang.php24
-rw-r--r--wiki/lib/plugins/styling/lang/fr/intro.txt2
-rw-r--r--wiki/lib/plugins/styling/lang/fr/lang.php25
-rw-r--r--wiki/lib/plugins/styling/lang/hr/intro.txt2
-rw-r--r--wiki/lib/plugins/styling/lang/hr/lang.php23
-rw-r--r--wiki/lib/plugins/styling/lang/hu/intro.txt2
-rw-r--r--wiki/lib/plugins/styling/lang/hu/lang.php23
-rw-r--r--wiki/lib/plugins/styling/lang/it/intro.txt2
-rw-r--r--wiki/lib/plugins/styling/lang/it/lang.php23
-rw-r--r--wiki/lib/plugins/styling/lang/ja/intro.txt2
-rw-r--r--wiki/lib/plugins/styling/lang/ja/lang.php23
-rw-r--r--wiki/lib/plugins/styling/lang/ko/intro.txt2
-rw-r--r--wiki/lib/plugins/styling/lang/ko/lang.php23
-rw-r--r--wiki/lib/plugins/styling/lang/nl/intro.txt2
-rw-r--r--wiki/lib/plugins/styling/lang/nl/lang.php24
-rw-r--r--wiki/lib/plugins/styling/lang/no/intro.txt2
-rw-r--r--wiki/lib/plugins/styling/lang/no/lang.php24
-rw-r--r--wiki/lib/plugins/styling/lang/pl/intro.txt1
-rw-r--r--wiki/lib/plugins/styling/lang/pl/lang.php24
-rw-r--r--wiki/lib/plugins/styling/lang/pt-br/intro.txt2
-rw-r--r--wiki/lib/plugins/styling/lang/pt-br/lang.php23
-rw-r--r--wiki/lib/plugins/styling/lang/pt/lang.php19
-rw-r--r--wiki/lib/plugins/styling/lang/ru/intro.txt1
-rw-r--r--wiki/lib/plugins/styling/lang/ru/lang.php23
-rw-r--r--wiki/lib/plugins/styling/lang/sk/lang.php18
-rw-r--r--wiki/lib/plugins/styling/lang/sv/lang.php17
-rw-r--r--wiki/lib/plugins/styling/lang/zh-tw/lang.php15
-rw-r--r--wiki/lib/plugins/styling/lang/zh/intro.txt1
-rw-r--r--wiki/lib/plugins/styling/lang/zh/lang.php23
-rw-r--r--wiki/lib/plugins/styling/plugin.info.txt7
-rw-r--r--wiki/lib/plugins/styling/popup.php30
-rw-r--r--wiki/lib/plugins/styling/script.js97
-rw-r--r--wiki/lib/plugins/styling/style.less13
53 files changed, 0 insertions, 2538 deletions
diff --git a/wiki/lib/plugins/styling/README b/wiki/lib/plugins/styling/README
deleted file mode 100644
index a1a5e89..0000000
--- a/wiki/lib/plugins/styling/README
+++ /dev/null
@@ -1,27 +0,0 @@
-styling Plugin for DokuWiki
-
-Allows to edit style.ini replacements
-
-All documentation for this plugin can be found at
-https://www.dokuwiki.org/plugin:styling
-
-If you install this plugin manually, make sure it is installed in
-lib/plugins/styling/ - if the folder is called different it
-will not work!
-
-Please refer to http://www.dokuwiki.org/plugins for additional info
-on how to install plugins in DokuWiki.
-
-----
-Copyright (C) Andreas Gohr <andi@splitbrain.org>
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; version 2 of the License
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-See the COPYING file in your DokuWiki folder for details
diff --git a/wiki/lib/plugins/styling/action.php b/wiki/lib/plugins/styling/action.php
deleted file mode 100644
index 896e14b..0000000
--- a/wiki/lib/plugins/styling/action.php
+++ /dev/null
@@ -1,60 +0,0 @@
-<?php
-/**
- * DokuWiki Plugin styling (Action Component)
- *
- * @license GPL 2 http://www.gnu.org/licenses/gpl-2.0.html
- * @author  Andreas Gohr <andi@splitbrain.org>
- */
-
-// must be run within Dokuwiki
-if(!defined('DOKU_INC')) die();
-
-/**
- * Class action_plugin_styling
- *
- * This handles all the save actions and loading the interface
- *
- * All this usually would be done within an admin plugin, but we want to have this available outside
- * the admin interface using our floating dialog.
- */
-class action_plugin_styling extends DokuWiki_Action_Plugin {
-
-    /**
-     * Registers a callback functions
-     *
-     * @param Doku_Event_Handler $controller DokuWiki's event controller object
-     * @return void
-     */
-    public function register(Doku_Event_Handler $controller) {
-        $controller->register_hook('TPL_METAHEADER_OUTPUT', 'BEFORE', $this, 'handle_header');
-    }
-
-    /**
-     * Adds the preview parameter to the stylesheet loading in non-js mode
-     *
-     * @param Doku_Event $event  event object by reference
-     * @param mixed      $param  [the parameters passed as fifth argument to register_hook() when this
-     *                           handler was registered]
-     * @return void
-     */
-    public function handle_header(Doku_Event &$event, $param) {
-        global $ACT;
-        global $INPUT;
-        if($ACT != 'admin' || $INPUT->str('page') != 'styling') return;
-        if(!auth_isadmin()) return;
-
-        // set preview
-        $len = count($event->data['link']);
-        for($i = 0; $i < $len; $i++) {
-            if(
-                $event->data['link'][$i]['rel'] == 'stylesheet' &&
-                strpos($event->data['link'][$i]['href'], 'lib/exe/css.php') !== false
-            ) {
-                $event->data['link'][$i]['href'] .= '&preview=1&tseed='.time();
-            }
-        }
-    }
-
-}
-
-// vim:ts=4:sw=4:et:
diff --git a/wiki/lib/plugins/styling/admin.php b/wiki/lib/plugins/styling/admin.php
deleted file mode 100644
index 055ac22..0000000
--- a/wiki/lib/plugins/styling/admin.php
+++ /dev/null
@@ -1,211 +0,0 @@
-<?php
-/**
- * DokuWiki Plugin styling (Admin Component)
- *
- * @license GPL 2 http://www.gnu.org/licenses/gpl-2.0.html
- * @author  Andreas Gohr <andi@splitbrain.org>
- */
-
-// must be run within Dokuwiki
-if(!defined('DOKU_INC')) die();
-
-class admin_plugin_styling extends DokuWiki_Admin_Plugin {
-
-    public $ispopup = false;
-
-    /**
-     * @return int sort number in admin menu
-     */
-    public function getMenuSort() {
-        return 1000;
-    }
-
-    /**
-     * @return bool true if only access for superuser, false is for superusers and moderators
-     */
-    public function forAdminOnly() {
-        return true;
-    }
-
-    /**
-     * handle the different actions (also called from ajax)
-     */
-    public function handle() {
-        global $INPUT;
-        $run = $INPUT->extract('run')->str('run');
-        if(!$run) return;
-        $run = "run_$run";
-        $this->$run();
-    }
-
-    /**
-     * Render HTML output, e.g. helpful text and a form
-     */
-    public function html() {
-        $class = 'nopopup';
-        if($this->ispopup) $class = 'ispopup page';
-
-        echo '<div id="plugin__styling" class="'.$class.'">';
-        ptln('<h1>'.$this->getLang('menu').'</h1>');
-        $this->form();
-        echo '</div>';
-    }
-
-    /**
-     * Create the actual editing form
-     */
-    public function form() {
-        global $conf;
-        global $ID;
-
-        $styleUtil = new \dokuwiki\StyleUtils();
-        $styleini     = $styleUtil->cssStyleini($conf['template'], true);
-        $replacements = $styleini['replacements'];
-
-        if($this->ispopup) {
-            $target = DOKU_BASE.'lib/plugins/styling/popup.php';
-        } else {
-            $target = wl($ID, array('do' => 'admin', 'page' => 'styling'));
-        }
-
-        if(empty($replacements)) {
-            echo '<p class="error">'.$this->getLang('error').'</p>';
-        } else {
-            echo $this->locale_xhtml('intro');
-
-            echo '<form class="styling" method="post" action="'.$target.'">';
-
-            echo '<table><tbody>';
-            foreach($replacements as $key => $value) {
-                $name = tpl_getLang($key);
-                if(empty($name)) $name = $this->getLang($key);
-                if(empty($name)) $name = $key;
-
-                echo '<tr>';
-                echo '<td><label for="tpl__'.hsc($key).'">'.$name.'</label></td>';
-                echo '<td><input type="text" name="tpl['.hsc($key).']" id="tpl__'.hsc($key).'" value="'.hsc($value).'" '.$this->colorClass($key).' dir="ltr" /></td>';
-                echo '</tr>';
-            }
-            echo '</tbody></table>';
-
-            echo '<p>';
-            echo '<button type="submit" name="run[preview]" class="btn_preview primary">'.$this->getLang('btn_preview').'</button> ';
-            echo '<button type="submit" name="run[reset]">'.$this->getLang('btn_reset').'</button>'; #FIXME only if preview.ini exists
-            echo '</p>';
-
-            echo '<p>';
-            echo '<button type="submit" name="run[save]" class="primary">'.$this->getLang('btn_save').'</button>';
-            echo '</p>';
-
-            echo '<p>';
-            echo '<button type="submit" name="run[revert]">'.$this->getLang('btn_revert').'</button>'; #FIXME only if local.ini exists
-            echo '</p>';
-
-            echo '</form>';
-
-            echo tpl_locale_xhtml('style');
-
-        }
-    }
-
-    /**
-     * set the color class attribute
-     */
-    protected function colorClass($key) {
-        static $colors = array(
-            'text',
-            'background',
-            'text_alt',
-            'background_alt',
-            'text_neu',
-            'background_neu',
-            'border',
-            'highlight',
-            'background_site',
-            'link',
-            'existing',
-            'missing',
-        );
-
-        if(preg_match('/colou?r/', $key) || in_array(trim($key,'_'), $colors)) {
-            return 'class="color"';
-        } else {
-            return '';
-        }
-    }
-
-    /**
-     * saves the preview.ini (alos called from ajax directly)
-     */
-    public function run_preview() {
-        global $conf;
-        $ini = $conf['cachedir'].'/preview.ini';
-        io_saveFile($ini, $this->makeini());
-    }
-
-    /**
-     * deletes the preview.ini
-     */
-    protected function run_reset() {
-        global $conf;
-        $ini = $conf['cachedir'].'/preview.ini';
-        io_saveFile($ini, '');
-    }
-
-    /**
-     * deletes the local style.ini replacements
-     */
-    protected function run_revert() {
-        $this->replaceini('');
-        $this->run_reset();
-    }
-
-    /**
-     * save the local style.ini replacements
-     */
-    protected function run_save() {
-        $this->replaceini($this->makeini());
-        $this->run_reset();
-    }
-
-    /**
-     * create the replacement part of a style.ini from submitted data
-     *
-     * @return string
-     */
-    protected function makeini() {
-        global $INPUT;
-
-        $ini = "[replacements]\n";
-        $ini .= ";These overwrites have been generated from the Template styling Admin interface\n";
-        $ini .= ";Any values in this section will be overwritten by that tool again\n";
-        foreach($INPUT->arr('tpl') as $key => $val) {
-            $ini .= $key.' = "'.addslashes($val).'"'."\n";
-        }
-
-        return $ini;
-    }
-
-    /**
-     * replaces the replacement parts in the local ini
-     *
-     * @param string $new the new ini contents
-     */
-    protected function replaceini($new) {
-        global $conf;
-        $ini = DOKU_CONF."tpl/".$conf['template']."/style.ini";
-        if(file_exists($ini)) {
-            $old = io_readFile($ini);
-            $old = preg_replace('/\[replacements\]\n.*?(\n\[.*]|$)/s', '\\1', $old);
-            $old = trim($old);
-        } else {
-            $old = '';
-        }
-
-        io_makeFileDir($ini);
-        io_saveFile($ini, "$old\n\n$new");
-    }
-
-}
-
-// vim:ts=4:sw=4:et:
diff --git a/wiki/lib/plugins/styling/admin.svg b/wiki/lib/plugins/styling/admin.svg
deleted file mode 100644
index 5d73870..0000000
--- a/wiki/lib/plugins/styling/admin.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17.5 12a1.5 1.5 0 0 1-1.5-1.5A1.5 1.5 0 0 1 17.5 9a1.5 1.5 0 0 1 1.5 1.5 1.5 1.5 0 0 1-1.5 1.5m-3-4A1.5 1.5 0 0 1 13 6.5 1.5 1.5 0 0 1 14.5 5 1.5 1.5 0 0 1 16 6.5 1.5 1.5 0 0 1 14.5 8m-5 0A1.5 1.5 0 0 1 8 6.5 1.5 1.5 0 0 1 9.5 5 1.5 1.5 0 0 1 11 6.5 1.5 1.5 0 0 1 9.5 8m-3 4A1.5 1.5 0 0 1 5 10.5 1.5 1.5 0 0 1 6.5 9 1.5 1.5 0 0 1 8 10.5 1.5 1.5 0 0 1 6.5 12M12 3a9 9 0 0 0-9 9 9 9 0 0 0 9 9 1.5 1.5 0 0 0 1.5-1.5c0-.39-.15-.74-.39-1-.23-.27-.38-.62-.38-1a1.5 1.5 0 0 1 1.5-1.5H16a5 5 0 0 0 5-5c0-4.42-4.03-8-9-8z"/></svg>
\ No newline at end of file
diff --git a/wiki/lib/plugins/styling/iris.js b/wiki/lib/plugins/styling/iris.js
deleted file mode 100644
index 4eda502..0000000
--- a/wiki/lib/plugins/styling/iris.js
+++ /dev/null
@@ -1,1488 +0,0 @@
-/*! Iris Color Picker - v1.0.7 - 2014-11-28
-* https://github.com/Automattic/Iris
-* Copyright (c) 2014 Matt Wiebe; Licensed GPLv2 */
-(function( $, undef ){
-	var _html, nonGradientIE, gradientType, vendorPrefixes, _css, Iris, UA, isIE, IEVersion;
-
-	_html = '<div class="iris-picker"><div class="iris-picker-inner"><div class="iris-square"><a class="iris-square-value" href="#"><span class="iris-square-handle ui-slider-handle"></span></a><div class="iris-square-inner iris-square-horiz"></div><div class="iris-square-inner iris-square-vert"></div></div><div class="iris-slider iris-strip"><div class="iris-slider-offset"></div></div></div></div>';
-	_css = '.iris-picker{display:block;position:relative}.iris-picker,.iris-picker *{-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input+.iris-picker{margin-top:4px}.iris-error{background-color:#ffafaf}.iris-border{border-radius:3px;border:1px solid #aaa;width:200px;background-color:#fff}.iris-picker-inner{position:absolute;top:0;right:0;left:0;bottom:0}.iris-border .iris-picker-inner{top:10px;right:10px;left:10px;bottom:10px}.iris-picker .iris-square-inner{position:absolute;left:0;right:0;top:0;bottom:0}.iris-picker .iris-square,.iris-picker .iris-slider,.iris-picker .iris-square-inner,.iris-picker .iris-palette{border-radius:3px;box-shadow:inset 0 0 5px rgba(0,0,0,.4);height:100%;width:12.5%;float:left;margin-right:5%}.iris-picker .iris-square{width:76%;margin-right:10%;position:relative}.iris-picker .iris-square-inner{width:auto;margin:0}.iris-ie-9 .iris-square,.iris-ie-9 .iris-slider,.iris-ie-9 .iris-square-inner,.iris-ie-9 .iris-palette{box-shadow:none;border-radius:0}.iris-ie-9 .iris-square,.iris-ie-9 .iris-slider,.iris-ie-9 .iris-palette{outline:1px solid rgba(0,0,0,.1)}.iris-ie-lt9 .iris-square,.iris-ie-lt9 .iris-slider,.iris-ie-lt9 .iris-square-inner,.iris-ie-lt9 .iris-palette{outline:1px solid #aaa}.iris-ie-lt9 .iris-square .ui-slider-handle{outline:1px solid #aaa;background-color:#fff;-ms-filter:"alpha(Opacity=30)"}.iris-ie-lt9 .iris-square .iris-square-handle{background:0;border:3px solid #fff;-ms-filter:"alpha(Opacity=50)"}.iris-picker .iris-strip{margin-right:0;position:relative}.iris-picker .iris-strip .ui-slider-handle{position:absolute;background:0;margin:0;right:-3px;left:-3px;border:4px solid #aaa;border-width:4px 3px;width:auto;height:6px;border-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.2);opacity:.9;z-index:5;cursor:ns-resize}.iris-strip .ui-slider-handle:before{content:" ";position:absolute;left:-2px;right:-2px;top:-3px;bottom:-3px;border:2px solid #fff;border-radius:3px}.iris-picker .iris-slider-offset{position:absolute;top:11px;left:0;right:0;bottom:-3px;width:auto;height:auto;background:transparent;border:0;border-radius:0}.iris-picker .iris-square-handle{background:transparent;border:5px solid #aaa;border-radius:50%;border-color:rgba(128,128,128,.5);box-shadow:none;width:12px;height:12px;position:absolute;left:-10px;top:-10px;cursor:move;opacity:1;z-index:10}.iris-picker .ui-state-focus .iris-square-handle{opacity:.8}.iris-picker .iris-square-handle:hover{border-color:#999}.iris-picker .iris-square-value:focus .iris-square-handle{box-shadow:0 0 2px rgba(0,0,0,.75);opacity:.8}.iris-picker .iris-square-handle:hover::after{border-color:#fff}.iris-picker .iris-square-handle::after{position:absolute;bottom:-4px;right:-4px;left:-4px;top:-4px;border:3px solid #f9f9f9;border-color:rgba(255,255,255,.8);border-radius:50%;content:" "}.iris-picker .iris-square-value{width:8px;height:8px;position:absolute}.iris-ie-lt9 .iris-square-value,.iris-mozilla .iris-square-value{width:1px;height:1px}.iris-palette-container{position:absolute;bottom:0;left:0;margin:0;padding:0}.iris-border .iris-palette-container{left:10px;bottom:10px}.iris-picker .iris-palette{margin:0;cursor:pointer}.iris-square-handle,.ui-slider-handle{border:0;outline:0}';
-
-	// Even IE9 dosen't support gradients. Elaborate sigh.
-	UA = navigator.userAgent.toLowerCase();
-	isIE = navigator.appName === 'Microsoft Internet Explorer';
-	IEVersion = isIE ? parseFloat( UA.match( /msie ([0-9]{1,}[\.0-9]{0,})/ )[1] ) : 0;
-	nonGradientIE = ( isIE && IEVersion < 10 );
-	gradientType = false;
-
-	// we don't bother with an unprefixed version, as it has a different syntax
-	vendorPrefixes = [ '-moz-', '-webkit-', '-o-', '-ms-' ];
-
-	// Bail for IE <= 7
-	if ( nonGradientIE && IEVersion <= 7 ) {
-		$.fn.iris = $.noop;
-		$.support.iris = false;
-		return;
-	}
-
-	$.support.iris = true;
-
-	function testGradientType() {
-		var el, base,
-			bgImageString = 'backgroundImage';
-
-		if ( nonGradientIE ) {
-			gradientType = 'filter';
-		}
-		else {
-			el = $( '<div id="iris-gradtest" />' );
-			base = 'linear-gradient(top,#fff,#000)';
-			$.each( vendorPrefixes, function( i, val ){
-				el.css( bgImageString, val + base );
-				if ( el.css( bgImageString ).match( 'gradient' ) ) {
-					gradientType = i;
-					return false;
-				}
-			});
-			// check for legacy webkit gradient syntax
-			if ( gradientType === false ) {
-				el.css( 'background', '-webkit-gradient(linear,0% 0%,0% 100%,from(#fff),to(#000))' );
-				if ( el.css( bgImageString ).match( 'gradient' ) ) {
-					gradientType = 'webkit';
-				}
-			}
-			el.remove();
-		}
-
-	}
-
-	/**
-	* Only for CSS3 gradients. oldIE will use a separate function.
-	*
-	* Accepts as many color stops as necessary from 2nd arg on, or 2nd
-	* arg can be an array of color stops
-	*
-	* @param  {string} origin Gradient origin - top or left, defaults to left.
-	* @return {string}        Appropriate CSS3 gradient string for use in
-	*/
-	function createGradient( origin, stops ) {
-		origin = ( origin === 'top' ) ? 'top' : 'left';
-		stops = $.isArray( stops ) ? stops : Array.prototype.slice.call( arguments, 1 );
-		if ( gradientType === 'webkit' ) {
-			return legacyWebkitGradient( origin, stops );
-		} else {
-			return vendorPrefixes[ gradientType ] + 'linear-gradient(' + origin + ', ' + stops.join(', ') + ')';
-		}
-	}
-
-	/**
-	* Stupid gradients for a stupid browser.
-	*/
-	function stupidIEGradient( origin, stops ) {
-		var type, self, lastIndex, filter, startPosProp, endPosProp, dimensionProp, template, html;
-
-		origin = ( origin === 'top' ) ? 'top' : 'left';
-		stops = $.isArray( stops ) ? stops : Array.prototype.slice.call( arguments, 1 );
-		// 8 hex: AARRGGBB
-		// GradientType: 0 vertical, 1 horizontal
-		type = ( origin === 'top' ) ? 0 : 1;
-		self = $( this );
-		lastIndex = stops.length - 1;
-		filter = 'filter';
-		startPosProp = ( type === 1 ) ? 'left' : 'top';
-		endPosProp = ( type === 1 ) ? 'right' : 'bottom';
-		dimensionProp = ( type === 1 ) ? 'height' : 'width';
-		template = '<div class="iris-ie-gradient-shim" style="position:absolute;' + dimensionProp + ':100%;' + startPosProp + ':%start%;' + endPosProp + ':%end%;' + filter + ':%filter%;" data-color:"%color%"></div>';
-		html = '';
-		// need a positioning context
-		if ( self.css('position') === 'static' ) {
-			self.css( {position: 'relative' } );
-		}
-
-		stops = fillColorStops( stops );
-		$.each(stops, function( i, startColor ) {
-			var endColor, endStop, filterVal;
-
-			// we want two at a time. if we're on the last pair, bail.
-			if ( i === lastIndex ) {
-				return false;
-			}
-
-			endColor = stops[ i + 1 ];
-			//if our pairs are at the same color stop, moving along.
-			if ( startColor.stop === endColor.stop ) {
-				return;
-			}
-
-			endStop = 100 - parseFloat( endColor.stop ) + '%';
-			startColor.octoHex = new Color( startColor.color ).toIEOctoHex();
-			endColor.octoHex = new Color( endColor.color ).toIEOctoHex();
-
-			filterVal = 'progid:DXImageTransform.Microsoft.Gradient(GradientType=' + type + ', StartColorStr=\'' + startColor.octoHex + '\', EndColorStr=\'' + endColor.octoHex + '\')';
-			html += template.replace( '%start%', startColor.stop ).replace( '%end%', endStop ).replace( '%filter%', filterVal );
-		});
-		self.find( '.iris-ie-gradient-shim' ).remove();
-		$( html ).prependTo( self );
-	}
-
-	function legacyWebkitGradient( origin, colorList ) {
-		var stops = [];
-		origin = ( origin === 'top' ) ? '0% 0%,0% 100%,' : '0% 100%,100% 100%,';
-		colorList = fillColorStops( colorList );
-		$.each( colorList, function( i, val ){
-			stops.push( 'color-stop(' + ( parseFloat( val.stop ) / 100 ) + ', ' + val.color + ')' );
-		});
-		return '-webkit-gradient(linear,' + origin + stops.join(',') + ')';
-	}
-
-	function fillColorStops( colorList ) {
-		var colors = [],
-			percs = [],
-			newColorList = [],
-			lastIndex = colorList.length - 1;
-
-		$.each( colorList, function( index, val ) {
-			var color = val,
-				perc = false,
-				match = val.match( /1?[0-9]{1,2}%$/ );
-
-			if ( match ) {
-				color = val.replace( /\s?1?[0-9]{1,2}%$/, '' );
-				perc = match.shift();
-			}
-			colors.push( color );
-			percs.push( perc );
-		});
-
-		// back fill first and last
-		if ( percs[0] === false ) {
-			percs[0] = '0%';
-		}
-
-		if ( percs[lastIndex] === false ) {
-			percs[lastIndex] = '100%';
-		}
-
-		percs = backFillColorStops( percs );
-
-		$.each( percs, function( i ){
-			newColorList[i] = { color: colors[i], stop: percs[i] };
-		});
-		return newColorList;
-	}
-
-	function backFillColorStops( stops ) {
-		var first = 0,
-			last = stops.length - 1,
-			i = 0,
-			foundFirst = false,
-			incr,
-			steps,
-			step,
-			firstVal;
-
-		if ( stops.length <= 2 || $.inArray( false, stops ) < 0 ) {
-			return stops;
-		}
-		while ( i < stops.length - 1 ) {
-			if ( ! foundFirst && stops[i] === false ) {
-				first = i - 1;
-				foundFirst = true;
-			} else if ( foundFirst && stops[i] !== false ) {
-				last = i;
-				i = stops.length;
-			}
-			i++;
-		}
-		steps = last - first;
-		firstVal = parseInt( stops[first].replace('%'), 10 );
-		incr = ( parseFloat( stops[last].replace('%') ) - firstVal ) / steps;
-		i = first + 1;
-		step = 1;
-		while ( i < last ) {
-			stops[i] = ( firstVal + ( step * incr ) ) + '%';
-			step++;
-			i++;
-		}
-		return backFillColorStops( stops );
-	}
-
-	$.fn.gradient = function() {
-		var args = arguments;
-		return this.each( function() {
-			// this'll be oldishIE
-			if ( nonGradientIE ) {
-				stupidIEGradient.apply( this, args );
-			} else {
-				// new hotness
-				$( this ).css( 'backgroundImage', createGradient.apply( this, args ) );
-			}
-		});
-	};
-
-	$.fn.raninbowGradient = function( origin, args ) {
-		var opts, template, i, steps;
-
-		origin = origin || 'top';
-		opts = $.extend( {}, { s: 100, l: 50 }, args );
-		template = 'hsl(%h%,' + opts.s + '%,' + opts.l + '%)';
-		i = 0;
-		steps = [];
-		while ( i <= 360 ) {
-			steps.push( template.replace('%h%', i) );
-			i += 30;
-		}
-		return this.each(function() {
-			$(this).gradient( origin, steps );
-		});
-	};
-
-	// the colorpicker widget def.
-	Iris = {
-		options: {
-			color: false,
-			mode: 'hsl',
-			controls: {
-				horiz: 's', // horizontal defaults to saturation
-				vert: 'l', // vertical defaults to lightness
-				strip: 'h' // right strip defaults to hue
-			},
-			hide: true, // hide the color picker by default
-			border: true, // draw a border around the collection of UI elements
-			target: false, // a DOM element / jQuery selector that the element will be appended within. Only used when called on an input.
-			width: 200, // the width of the collection of UI elements
-			palettes: false // show a palette of basic colors beneath the square.
-		},
-		_color: '',
-		_palettes: [ '#000', '#fff', '#d33', '#d93', '#ee2', '#81d742', '#1e73be', '#8224e3' ],
-		_inited: false,
-		_defaultHSLControls: {
-			horiz: 's',
-			vert: 'l',
-			strip: 'h'
-		},
-		_defaultHSVControls: {
-			horiz: 'h',
-			vert: 'v',
-			strip: 's'
-		},
-		_scale: {
-			h: 360,
-			s: 100,
-			l: 100,
-			v: 100
-		},
-		_create: function() {
-			var self = this,
-				el = self.element,
-				color = self.options.color || el.val();
-
-			if ( gradientType === false ) {
-				testGradientType();
-			}
-
-			if ( el.is( 'input' ) ) {
-				if ( self.options.target ) {
-					self.picker = $( _html ).appendTo( self.options.target );
-				} else {
-					self.picker = $( _html ).insertAfter( el );
-				}
-
-				self._addInputListeners( el );
-			} else {
-				el.append( _html );
-				self.picker = el.find( '.iris-picker' );
-			}
-
-			// Browsers / Versions
-			// Feature detection doesn't work for these, and $.browser is deprecated
-			if ( isIE ) {
-				if ( IEVersion === 9 ) {
-					self.picker.addClass( 'iris-ie-9' );
-				} else if ( IEVersion <= 8 ) {
-					self.picker.addClass( 'iris-ie-lt9' );
-				}
-			} else if ( UA.indexOf('compatible') < 0 && UA.indexOf('khtml') < 0 && UA.match( /mozilla/ ) ) {
-				self.picker.addClass( 'iris-mozilla' );
-			}
-
-			if ( self.options.palettes ) {
-				self._addPalettes();
-			}
-
-			self._color = new Color( color ).setHSpace( self.options.mode );
-			self.options.color = self._color.toString();
-
-			// prep 'em for re-use
-			self.controls = {
-				square:      self.picker.find( '.iris-square' ),
-				squareDrag:  self.picker.find( '.iris-square-value' ),
-				horiz:       self.picker.find( '.iris-square-horiz' ),
-				vert:        self.picker.find( '.iris-square-vert' ),
-				strip:       self.picker.find( '.iris-strip' ),
-				stripSlider: self.picker.find( '.iris-strip .iris-slider-offset' )
-			};
-
-			// small sanity check - if we chose hsv, change default controls away from hsl
-			if ( self.options.mode === 'hsv' && self._has('l', self.options.controls) ) {
-				self.options.controls = self._defaultHSVControls;
-			} else if ( self.options.mode === 'hsl' && self._has('v', self.options.controls) ) {
-				self.options.controls = self._defaultHSLControls;
-			}
-
-			// store it. HSL gets squirrely
-			self.hue = self._color.h();
-
-			if ( self.options.hide ) {
-				self.picker.hide();
-			}
-
-			if ( self.options.border ) {
-				self.picker.addClass( 'iris-border' );
-			}
-
-			self._initControls();
-			self.active = 'external';
-			self._dimensions();
-			self._change();
-		},
-		_has: function(needle, haystack) {
-			var ret = false;
-			$.each(haystack, function(i,v){
-				if ( needle === v ) {
-					ret = true;
-					// exit the loop
-					return false;
-				}
-			});
-			return ret;
-		},
-		_addPalettes: function () {
-			var container = $( '<div class="iris-palette-container" />' ),
-				palette = $( '<a class="iris-palette" tabindex="0" />' ),
-				colors = $.isArray( this.options.palettes ) ? this.options.palettes : this._palettes;
-
-			// do we have an existing container? Empty and reuse it.
-			if ( this.picker.find( '.iris-palette-container' ).length ) {
-				container = this.picker.find( '.iris-palette-container' ).detach().html( '' );
-			}
-
-			$.each(colors, function(index, val) {
-				palette.clone().data( 'color', val )
-					.css( 'backgroundColor', val ).appendTo( container )
-					.height( 10 ).width( 10 );
-			});
-
-			this.picker.append(container);
-		},
-		_paint: function() {
-			var self = this;
-			self._paintDimension( 'top', 'strip' );
-			self._paintDimension( 'top', 'vert' );
-			self._paintDimension( 'left', 'horiz' );
-		},
-		_paintDimension: function( origin, control ) {
-			var self = this,
-				c = self._color,
-				mode = self.options.mode,
-				color = self._getHSpaceColor(),
-				target = self.controls[ control ],
-				controlOpts = self.options.controls,
-				stops;
-
-			// don't paint the active control
-			if ( control === self.active || ( self.active === 'square' && control !== 'strip' ) ) {
-				return;
-			}
-
-			switch ( controlOpts[ control ] ) {
-				case 'h':
-					if ( mode === 'hsv' ) {
-						color = c.clone();
-						switch ( control ) {
-							case 'horiz':
-								color[controlOpts.vert](100);
-								break;
-							case 'vert':
-								color[controlOpts.horiz](100);
-								break;
-							case 'strip':
-								color.setHSpace('hsl');
-								break;
-						}
-						stops = color.toHsl();
-					} else {
-						if ( control === 'strip' ) {
-							stops = { s: color.s, l: color.l };
-						} else {
-							stops = { s: 100, l: color.l };
-						}
-					}
-
-					target.raninbowGradient( origin, stops );
-					break;
-				case 's':
-					if ( mode === 'hsv' ) {
-						if ( control === 'vert' ) {
-							stops = [ c.clone().a(0).s(0).toCSS('rgba'), c.clone().a(1).s(0).toCSS('rgba') ];
-						} else if ( control === 'strip' ) {
-							stops = [ c.clone().s(100).toCSS('hsl'), c.clone().s(0).toCSS('hsl') ];
-						} else if ( control === 'horiz' ) {
-							stops = [ '#fff', 'hsl(' + color.h + ',100%,50%)' ];
-						}
-					} else { // implicit mode === 'hsl'
-						if ( control === 'vert' && self.options.controls.horiz === 'h' ) {
-							stops = ['hsla(0, 0%, ' + color.l + '%, 0)', 'hsla(0, 0%, ' + color.l + '%, 1)'];
-						} else {
-							stops = ['hsl('+ color.h +',0%,50%)', 'hsl(' + color.h + ',100%,50%)'];
-						}
-					}
-
-
-					target.gradient( origin, stops );
-					break;
-				case 'l':
-					if ( control === 'strip' ) {
-						stops = ['hsl(' + color.h + ',100%,100%)', 'hsl(' + color.h + ', ' + color.s + '%,50%)', 'hsl('+ color.h +',100%,0%)'];
-					} else {
-						stops = ['#fff', 'rgba(255,255,255,0) 50%', 'rgba(0,0,0,0) 50%', 'rgba(0,0,0,1)'];
-					}
-					target.gradient( origin, stops );
-					break;
-				case 'v':
-						if ( control === 'strip' ) {
-							stops = [ c.clone().v(100).toCSS(), c.clone().v(0).toCSS() ];
-						} else {
-							stops = ['rgba(0,0,0,0)', '#000'];
-						}
-						target.gradient( origin, stops );
-					break;
-				default:
-					break;
-			}
-		},
-
-		_getHSpaceColor: function() {
-			return ( this.options.mode === 'hsv' ) ? this._color.toHsv() : this._color.toHsl();
-		},
-
-		_dimensions: function( reset ) {
-			// whatever size
-			var self = this,
-				opts = self.options,
-				controls = self.controls,
-				square = controls.square,
-				strip = self.picker.find( '.iris-strip' ),
-				squareWidth = '77.5%',
-				stripWidth = '12%',
-				totalPadding = 20,
-				innerWidth = opts.border ? opts.width - totalPadding : opts.width,
-				controlsHeight,
-				paletteCount = $.isArray( opts.palettes ) ? opts.palettes.length : self._palettes.length,
-				paletteMargin, paletteWidth, paletteContainerWidth;
-
-			if ( reset ) {
-				square.css( 'width', '' );
-				strip.css( 'width', '' );
-				self.picker.css( {width: '', height: ''} );
-			}
-
-			squareWidth = innerWidth * ( parseFloat( squareWidth ) / 100 );
-			stripWidth = innerWidth * ( parseFloat( stripWidth ) / 100 );
-			controlsHeight = opts.border ? squareWidth + totalPadding : squareWidth;
-
-			square.width( squareWidth ).height( squareWidth );
-			strip.height( squareWidth ).width( stripWidth );
-			self.picker.css( { width: opts.width, height: controlsHeight } );
-
-			if ( ! opts.palettes ) {
-				return self.picker.css( 'paddingBottom', '' );
-			}
-
-			// single margin at 2%
-			paletteMargin = squareWidth * 2 / 100;
-			paletteContainerWidth = squareWidth - ( ( paletteCount - 1 ) * paletteMargin );
-			paletteWidth = paletteContainerWidth / paletteCount;
-			self.picker.find('.iris-palette').each( function( i ) {
-				var margin = i === 0 ? 0 : paletteMargin;
-				$( this ).css({
-					width: paletteWidth,
-					height: paletteWidth,
-					marginLeft: margin
-				});
-			});
-			self.picker.css( 'paddingBottom', paletteWidth + paletteMargin );
-			strip.height( paletteWidth + paletteMargin + squareWidth );
-		},
-
-		_addInputListeners: function( input ) {
-			var self = this,
-				debounceTimeout = 100,
-				callback = function( event ){
-					var color = new Color( input.val() ),
-						val = input.val().replace( /^#/, '' );
-
-					input.removeClass( 'iris-error' );
-					// we gave a bad color
-					if ( color.error ) {
-						// don't error on an empty input - we want those allowed
-						if ( val !== '' ) {
-							input.addClass( 'iris-error' );
-						}
-					} else {
-						if ( color.toString() !== self._color.toString() ) {
-							// let's not do this on keyup for hex shortcodes
-							if ( ! ( event.type === 'keyup' && val.match( /^[0-9a-fA-F]{3}$/ ) ) ) {
-								self._setOption( 'color', color.toString() );
-							}
-						}
-					}
-				};
-
-			input.on( 'change', callback ).on( 'keyup', self._debounce( callback, debounceTimeout ) );
-
-			// If we initialized hidden, show on first focus. The rest is up to you.
-			if ( self.options.hide ) {
-				input.one( 'focus', function() {
-					self.show();
-				});
-			}
-		},
-
-		_initControls: function() {
-			var self = this,
-				controls = self.controls,
-				square = controls.square,
-				controlOpts = self.options.controls,
-				stripScale = self._scale[controlOpts.strip];
-
-			controls.stripSlider.slider({
-				orientation: 'vertical',
-				max: stripScale,
-				slide: function( event, ui ) {
-					self.active = 'strip';
-					// "reverse" for hue.
-					if ( controlOpts.strip === 'h' ) {
-						ui.value = stripScale - ui.value;
-					}
-
-					self._color[controlOpts.strip]( ui.value );
-					self._change.apply( self, arguments );
-				}
-			});
-
-			controls.squareDrag.draggable({
-				containment: controls.square.find( '.iris-square-inner' ),
-				zIndex: 1000,
-				cursor: 'move',
-				drag: function( event, ui ) {
-					self._squareDrag( event, ui );
-				},
-				start: function() {
-					square.addClass( 'iris-dragging' );
-					$(this).addClass( 'ui-state-focus' );
-				},
-				stop: function() {
-					square.removeClass( 'iris-dragging' );
-					$(this).removeClass( 'ui-state-focus' );
-				}
-			}).on( 'mousedown mouseup', function( event ) {
-				var focusClass = 'ui-state-focus';
-				event.preventDefault();
-				if (event.type === 'mousedown' ) {
-					self.picker.find( '.' + focusClass ).removeClass( focusClass ).blur();
-					$(this).addClass( focusClass ).focus();
-				} else {
-					$(this).removeClass( focusClass );
-				}
-			}).on( 'keydown', function( event ) {
-				var container = controls.square,
-					draggable = controls.squareDrag,
-					position = draggable.position(),
-					distance = self.options.width / 100; // Distance in pixels the draggable should be moved: 1 "stop"
-
-				// make alt key go "10"
-				if ( event.altKey ) {
-					distance *= 10;
-				}
-
-				// Reposition if one of the directional keys is pressed
-				switch ( event.keyCode ) {
-					case 37: position.left -= distance; break; // Left
-					case 38: position.top  -= distance; break; // Up
-					case 39: position.left += distance; break; // Right
-					case 40: position.top  += distance; break; // Down
-					default: return true; // Exit and bubble
-				}
-
-				// Keep draggable within container
-				position.left = Math.max( 0, Math.min( position.left, container.width() ) );
-				position.top =  Math.max( 0, Math.min( position.top, container.height() ) );
-
-				draggable.css(position);
-				self._squareDrag( event, { position: position });
-				event.preventDefault();
-			});
-
-			// allow clicking on the square to move there and keep dragging
-			square.mousedown( function( event ) {
-				var squareOffset, pos;
-				// only left click
-				if ( event.which !== 1 ) {
-					return;
-				}
-
-				// prevent bubbling from the handle: no infinite loops
-				if ( ! $( event.target ).is( 'div' ) ) {
-					return;
-				}
-
-				squareOffset = self.controls.square.offset();
-				pos = {
-						top: event.pageY - squareOffset.top,
-						left: event.pageX - squareOffset.left
-				};
-				event.preventDefault();
-				self._squareDrag( event, { position: pos } );
-				event.target = self.controls.squareDrag.get(0);
-				self.controls.squareDrag.css( pos ).trigger( event );
-			});
-
-			// palettes
-			if ( self.options.palettes ) {
-				self._paletteListeners();
-			}
-		},
-
-		_paletteListeners: function() {
-			var self = this;
-			self.picker.find('.iris-palette-container').on('click.palette', '.iris-palette', function() {
-				self._color.fromCSS( $(this).data('color') );
-				self.active = 'external';
-				self._change();
-			}).on( 'keydown.palette', '.iris-palette', function( event ) {
-				if ( ! ( event.keyCode === 13 || event.keyCode === 32 ) ) {
-					return true;
-				}
-				event.stopPropagation();
-				$( this ).click();
-			});
-		},
-
-		_squareDrag: function( event, ui ) {
-			var self = this,
-				controlOpts = self.options.controls,
-				dimensions = self._squareDimensions(),
-				vertVal = Math.round( ( dimensions.h - ui.position.top ) / dimensions.h * self._scale[controlOpts.vert] ),
-				horizVal = self._scale[controlOpts.horiz] - Math.round( ( dimensions.w - ui.position.left ) / dimensions.w * self._scale[controlOpts.horiz] );
-
-			self._color[controlOpts.horiz]( horizVal )[controlOpts.vert]( vertVal );
-
-			self.active = 'square';
-			self._change.apply( self, arguments );
-		},
-
-		_setOption: function( key, value ) {
-			var self = this,
-				oldValue = self.options[key],
-				doDimensions = false,
-				hexLessColor,
-				newColor,
-				method;
-
-			// ensure the new value is set. We can reset to oldValue if some check wasn't met.
-			self.options[key] = value;
-
-			switch(key) {
-				case 'color':
-					// cast to string in case we have a number
-					value = '' + value;
-					hexLessColor = value.replace( /^#/, '' );
-					newColor = new Color( value ).setHSpace( self.options.mode );
-					if ( newColor.error ) {
-						self.options[key] = oldValue;
-					} else {
-						self._color = newColor;
-						self.options.color = self.options[key] = self._color.toString();
-						self.active = 'external';
-						self._change();
-					}
-					break;
-				case 'palettes':
-					doDimensions = true;
-
-					if ( value ) {
-						self._addPalettes();
-					} else {
-						self.picker.find('.iris-palette-container').remove();
-					}
-
-					// do we need to add events?
-					if ( ! oldValue ) {
-						self._paletteListeners();
-					}
-					break;
-				case 'width':
-					doDimensions = true;
-					break;
-				case 'border':
-					doDimensions = true;
-					method = value ? 'addClass' : 'removeClass';
-					self.picker[method]('iris-border');
-					break;
-				case 'mode':
-				case 'controls':
-					// if nothing's changed, let's bail, since this causes re-rendering the whole widget
-					if ( oldValue === value ) {
-						return;
-					}
-
-					// we're using these poorly named variables because they're already scoped.
-					// method is the element that Iris was called on. oldValue will be the options
-					method = self.element;
-					oldValue = self.options;
-					oldValue.hide = ! self.picker.is( ':visible' );
-					self.destroy();
-					self.picker.remove();
-					return $(self.element).iris(oldValue);
-			}
-
-			// Do we need to recalc dimensions?
-			if ( doDimensions ) {
-				self._dimensions(true);
-			}
-		},
-
-		_squareDimensions: function( forceRefresh ) {
-			var square = this.controls.square,
-				dimensions,
-				control;
-
-			if ( forceRefresh !== undef && square.data('dimensions') ) {
-				return square.data('dimensions');
-			}
-
-			control = this.controls.squareDrag;
-			dimensions = {
-				w: square.width(),
-				h: square.height()
-			};
-			square.data( 'dimensions', dimensions );
-			return dimensions;
-		},
-
-		_isNonHueControl: function( active, type ) {
-			if ( active === 'square' && this.options.controls.strip === 'h' ) {
-				return true;
-			} else if ( type === 'external' || ( type === 'h' && active === 'strip' ) ) {
-				return false;
-			}
-
-			return true;
-		},
-
-		_change: function() {
-			var self = this,
-				controls = self.controls,
-				color = self._getHSpaceColor(),
-				actions = [ 'square', 'strip' ],
-				controlOpts = self.options.controls,
-				type = controlOpts[self.active] || 'external',
-				oldHue = self.hue;
-
-			if ( self.active === 'strip' ) {
-				// take no action on any of the square sliders if we adjusted the strip
-				actions = [];
-			} else if ( self.active !== 'external' ) {
-				// for non-strip, non-external, strip should never change
-				actions.pop(); // conveniently the last item
-			}
-
-			$.each( actions, function(index, item) {
-				var value, dimensions, cssObj;
-				if ( item !== self.active ) {
-					switch ( item ) {
-						case 'strip':
-							// reverse for hue
-							value = ( controlOpts.strip === 'h' ) ? self._scale[controlOpts.strip] - color[controlOpts.strip] : color[controlOpts.strip];
-							controls.stripSlider.slider( 'value', value );
-							break;
-						case 'square':
-							dimensions = self._squareDimensions();
-							cssObj = {
-								left: color[controlOpts.horiz] / self._scale[controlOpts.horiz] * dimensions.w,
-								top: dimensions.h - ( color[controlOpts.vert] / self._scale[controlOpts.vert] * dimensions.h )
-							};
-
-							self.controls.squareDrag.css( cssObj );
-							break;
-					}
-				}
-			});
-
-			// Ensure that we don't change hue if we triggered a hue reset
-			if ( color.h !== oldHue && self._isNonHueControl( self.active, type ) ) {
-				self._color.h(oldHue);
-			}
-
-			// store hue for repeating above check next time
-			self.hue = self._color.h();
-
-			self.options.color = self._color.toString();
-
-			// only run after the first time
-			if ( self._inited ) {
-				self._trigger( 'change', { type: self.active }, { color: self._color } );
-			}
-
-			if ( self.element.is( ':input' ) && ! self._color.error ) {
-				self.element.removeClass( 'iris-error' );
-				if ( self.element.val() !== self._color.toString() ) {
-					self.element.val( self._color.toString() );
-				}
-			}
-
-			self._paint();
-			self._inited = true;
-			self.active = false;
-		},
-		// taken from underscore.js _.debounce method
-		_debounce: function( func, wait, immediate ) {
-			var timeout, result;
-			return function() {
-				var context = this,
-					args = arguments,
-					later,
-					callNow;
-
-				later = function() {
-					timeout = null;
-					if ( ! immediate) {
-						result = func.apply( context, args );
-					}
-				};
-
-				callNow = immediate && !timeout;
-				clearTimeout( timeout );
-				timeout = setTimeout( later, wait );
-				if ( callNow ) {
-					result = func.apply( context, args );
-				}
-				return result;
-			};
-		},
-		show: function() {
-			this.picker.show();
-		},
-		hide: function() {
-			this.picker.hide();
-		},
-		toggle: function() {
-			this.picker.toggle();
-		},
-		color: function(newColor) {
-			if ( newColor === true ) {
-				return this._color.clone();
-			} else if ( newColor === undef ) {
-				return this._color.toString();
-			}
-			this.option('color', newColor);
-		}
-	};
-	// initialize the widget
-	$.widget( 'a8c.iris', Iris );
-	// add CSS
-	$( '<style id="iris-css">' + _css + '</style>' ).appendTo( 'head' );
-
-}( jQuery ));
-/*! Color.js - v0.9.11 - 2013-08-09
-* https://github.com/Automattic/Color.js
-* Copyright (c) 2013 Matt Wiebe; Licensed GPLv2 */
-(function(global, undef) {
-
-	var Color = function( color, type ) {
-		if ( ! ( this instanceof Color ) )
-			return new Color( color, type );
-
-		return this._init( color, type );
-	};
-
-	Color.fn = Color.prototype = {
-		_color: 0,
-		_alpha: 1,
-		error: false,
-		// for preserving hue/sat in fromHsl().toHsl() flows
-		_hsl: { h: 0, s: 0, l: 0 },
-		// for preserving hue/sat in fromHsv().toHsv() flows
-		_hsv: { h: 0, s: 0, v: 0 },
-		// for setting hsl or hsv space - needed for .h() & .s() functions to function properly
-		_hSpace: 'hsl',
-		_init: function( color ) {
-			var func = 'noop';
-			switch ( typeof color ) {
-					case 'object':
-						// alpha?
-						if ( color.a !== undef )
-							this.a( color.a );
-						func = ( color.r !== undef ) ? 'fromRgb' :
-							( color.l !== undef ) ? 'fromHsl' :
-							( color.v !== undef ) ? 'fromHsv' : func;
-						return this[func]( color );
-					case 'string':
-						return this.fromCSS( color );
-					case 'number':
-						return this.fromInt( parseInt( color, 10 ) );
-			}
-			return this;
-		},
-
-		_error: function() {
-			this.error = true;
-			return this;
-		},
-
-		clone: function() {
-			var newColor = new Color( this.toInt() ),
-				copy = ['_alpha', '_hSpace', '_hsl', '_hsv', 'error'];
-			for ( var i = copy.length - 1; i >= 0; i-- ) {
-				newColor[ copy[i] ] = this[ copy[i] ];
-			}
-			return newColor;
-		},
-
-		setHSpace: function( space ) {
-			this._hSpace = ( space === 'hsv' ) ? space : 'hsl';
-			return this;
-		},
-
-		noop: function() {
-			return this;
-		},
-
-		fromCSS: function( color ) {
-			var list,
-				leadingRE = /^(rgb|hs(l|v))a?\(/;
-			this.error = false;
-
-			// whitespace and semicolon trim
-			color = color.replace(/^\s+/, '').replace(/\s+$/, '').replace(/;$/, '');
-
-			if ( color.match(leadingRE) && color.match(/\)$/) ) {
-				list = color.replace(/(\s|%)/g, '').replace(leadingRE, '').replace(/,?\);?$/, '').split(',');
-
-				if ( list.length < 3 )
-					return this._error();
-
-				if ( list.length === 4 ) {
-					this.a( parseFloat( list.pop() ) );
-					// error state has been set to true in .a() if we passed NaN
-					if ( this.error )
-						return this;
-				}
-
-				for (var i = list.length - 1; i >= 0; i--) {
-					list[i] = parseInt(list[i], 10);
-					if ( isNaN( list[i] ) )
-						return this._error();
-				}
-
-				if ( color.match(/^rgb/) ) {
-					return this.fromRgb( {
-						r: list[0],
-						g: list[1],
-						b: list[2]
-					} );
-				} else if ( color.match(/^hsv/) ) {
-					return this.fromHsv( {
-						h: list[0],
-						s: list[1],
-						v: list[2]
-					} );
-				} else {
-					return this.fromHsl( {
-						h: list[0],
-						s: list[1],
-						l: list[2]
-					} );
-				}
-			} else {
-				// must be hex amirite?
-				return this.fromHex( color );
-			}
-		},
-
-		fromRgb: function( rgb, preserve ) {
-			if ( typeof rgb !== 'object' || rgb.r === undef || rgb.g === undef || rgb.b === undef )
-				return this._error();
-
-			this.error = false;
-			return this.fromInt( parseInt( ( rgb.r << 16 ) + ( rgb.g << 8 ) + rgb.b, 10 ), preserve );
-		},
-
-		fromHex: function( color ) {
-			color = color.replace(/^#/, '').replace(/^0x/, '');
-			if ( color.length === 3 ) {
-				color = color[0] + color[0] + color[1] + color[1] + color[2] + color[2];
-			}
-
-			// rough error checking - this is where things go squirrely the most
-			this.error = ! /^[0-9A-F]{6}$/i.test( color );
-			return this.fromInt( parseInt( color, 16 ) );
-		},
-
-		fromHsl: function( hsl ) {
-			var r, g, b, q, p, h, s, l;
-
-			if ( typeof hsl !== 'object' || hsl.h === undef || hsl.s === undef || hsl.l === undef )
-				return this._error();
-
-			this._hsl = hsl; // store it
-			this._hSpace = 'hsl'; // implicit
-			h = hsl.h / 360; s = hsl.s / 100; l = hsl.l / 100;
-			if ( s === 0 ) {
-				r = g = b = l; // achromatic
-			}
-			else {
-				q = l < 0.5 ? l * ( 1 + s ) : l + s - l * s;
-				p = 2 * l - q;
-				r = this.hue2rgb( p, q, h + 1/3 );
-				g = this.hue2rgb( p, q, h );
-				b = this.hue2rgb( p, q, h - 1/3 );
-			}
-			return this.fromRgb( {
-				r: r * 255,
-				g: g * 255,
-				b: b * 255
-			}, true ); // true preserves hue/sat
-		},
-
-		fromHsv: function( hsv ) {
-			var h, s, v, r, g, b, i, f, p, q, t;
-			if ( typeof hsv !== 'object' || hsv.h === undef || hsv.s === undef || hsv.v === undef )
-				return this._error();
-
-			this._hsv = hsv; // store it
-			this._hSpace = 'hsv'; // implicit
-
-			h = hsv.h / 360; s = hsv.s / 100; v = hsv.v / 100;
-			i = Math.floor( h * 6 );
-			f = h * 6 - i;
-			p = v * ( 1 - s );
-			q = v * ( 1 - f * s );
-			t = v * ( 1 - ( 1 - f ) * s );
-
-			switch( i % 6 ) {
-				case 0:
-					r = v; g = t; b = p;
-					break;
-				case 1:
-					r = q; g = v; b = p;
-					break;
-				case 2:
-					r = p; g = v; b = t;
-					break;
-				case 3:
-					r = p; g = q; b = v;
-					break;
-				case 4:
-					r = t; g = p; b = v;
-					break;
-				case 5:
-					r = v; g = p; b = q;
-					break;
-			}
-
-			return this.fromRgb( {
-				r: r * 255,
-				g: g * 255,
-				b: b * 255
-			}, true ); // true preserves hue/sat
-
-		},
-		// everything comes down to fromInt
-		fromInt: function( color, preserve ) {
-			this._color = parseInt( color, 10 );
-
-			if ( isNaN( this._color ) )
-				this._color = 0;
-
-			// let's coerce things
-			if ( this._color > 16777215 )
-				this._color = 16777215;
-			else if ( this._color < 0 )
-				this._color = 0;
-
-			// let's not do weird things
-			if ( preserve === undef ) {
-				this._hsv.h = this._hsv.s = this._hsl.h = this._hsl.s = 0;
-			}
-			// EVENT GOES HERE
-			return this;
-		},
-
-		hue2rgb: function( p, q, t ) {
-			if ( t < 0 ) {
-				t += 1;
-			}
-			if ( t > 1 ) {
-				t -= 1;
-			}
-			if ( t < 1/6 ) {
-				return p + ( q - p ) * 6 * t;
-			}
-			if ( t < 1/2 ) {
-				return q;
-			}
-			if ( t < 2/3 ) {
-				return p + ( q - p ) * ( 2/3 - t ) * 6;
-			}
-			return p;
-		},
-
-		toString: function() {
-			var hex = parseInt( this._color, 10 ).toString( 16 );
-			if ( this.error )
-				return '';
-			// maybe left pad it
-			if ( hex.length < 6 ) {
-				for (var i = 6 - hex.length - 1; i >= 0; i--) {
-					hex = '0' + hex;
-				}
-			}
-			return '#' + hex;
-		},
-
-		toCSS: function( type, alpha ) {
-			type = type || 'hex';
-			alpha = parseFloat( alpha || this._alpha );
-			switch ( type ) {
-				case 'rgb':
-				case 'rgba':
-					var rgb = this.toRgb();
-					if ( alpha < 1 ) {
-						return "rgba( " + rgb.r + ", " + rgb.g + ", " + rgb.b + ", " + alpha + " )";
-					}
-					else {
-						return "rgb( " + rgb.r + ", " + rgb.g + ", " + rgb.b + " )";
-					}
-					break;
-				case 'hsl':
-				case 'hsla':
-					var hsl = this.toHsl();
-					if ( alpha < 1 ) {
-						return "hsla( " + hsl.h + ", " + hsl.s + "%, " + hsl.l + "%, " + alpha + " )";
-					}
-					else {
-						return "hsl( " + hsl.h + ", " + hsl.s + "%, " + hsl.l + "% )";
-					}
-					break;
-				default:
-					return this.toString();
-			}
-		},
-
-		toRgb: function() {
-			return {
-				r: 255 & ( this._color >> 16 ),
-				g: 255 & ( this._color >> 8 ),
-				b: 255 & ( this._color )
-			};
-		},
-
-		toHsl: function() {
-			var rgb = this.toRgb();
-			var r = rgb.r / 255, g = rgb.g / 255, b = rgb.b / 255;
-			var max = Math.max( r, g, b ), min = Math.min( r, g, b );
-			var h, s, l = ( max + min ) / 2;
-
-			if ( max === min ) {
-				h = s = 0; // achromatic
-			} else {
-				var d = max - min;
-				s = l > 0.5 ? d / ( 2 - max - min ) : d / ( max + min );
-				switch ( max ) {
-					case r: h = ( g - b ) / d + ( g < b ? 6 : 0 );
-						break;
-					case g: h = ( b - r ) / d + 2;
-						break;
-					case b: h = ( r - g ) / d + 4;
-						break;
-				}
-				h /= 6;
-			}
-
-			// maintain hue & sat if we've been manipulating things in the HSL space.
-			h = Math.round( h * 360 );
-			if ( h === 0 && this._hsl.h !== h ) {
-				h = this._hsl.h;
-			}
-			s = Math.round( s * 100 );
-			if ( s === 0 && this._hsl.s ) {
-				s = this._hsl.s;
-			}
-
-			return {
-				h: h,
-				s: s,
-				l: Math.round( l * 100 )
-			};
-
-		},
-
-		toHsv: function() {
-			var rgb = this.toRgb();
-			var r = rgb.r / 255, g = rgb.g / 255, b = rgb.b / 255;
-			var max = Math.max( r, g, b ), min = Math.min( r, g, b );
-			var h, s, v = max;
-			var d = max - min;
-			s = max === 0 ? 0 : d / max;
-
-			if ( max === min ) {
-				h = s = 0; // achromatic
-			} else {
-				switch( max ){
-					case r:
-						h = ( g - b ) / d + ( g < b ? 6 : 0 );
-						break;
-					case g:
-						h = ( b - r ) / d + 2;
-						break;
-					case b:
-						h = ( r - g ) / d + 4;
-						break;
-				}
-				h /= 6;
-			}
-
-			// maintain hue & sat if we've been manipulating things in the HSV space.
-			h = Math.round( h * 360 );
-			if ( h === 0 && this._hsv.h !== h ) {
-				h = this._hsv.h;
-			}
-			s = Math.round( s * 100 );
-			if ( s === 0 && this._hsv.s ) {
-				s = this._hsv.s;
-			}
-
-			return {
-				h: h,
-				s: s,
-				v: Math.round( v * 100 )
-			};
-		},
-
-		toInt: function() {
-			return this._color;
-		},
-
-		toIEOctoHex: function() {
-			// AARRBBGG
-			var hex = this.toString();
-			var AA = parseInt( 255 * this._alpha, 10 ).toString(16);
-			if ( AA.length === 1 ) {
-				AA = '0' + AA;
-			}
-			return '#' + AA + hex.replace(/^#/, '' );
-		},
-
-		toLuminosity: function() {
-			var rgb = this.toRgb();
-			return 0.2126 * Math.pow( rgb.r / 255, 2.2 ) + 0.7152 * Math.pow( rgb.g / 255, 2.2 ) + 0.0722 * Math.pow( rgb.b / 255, 2.2);
-		},
-
-		getDistanceLuminosityFrom: function( color ) {
-			if ( ! ( color instanceof Color ) ) {
-				throw 'getDistanceLuminosityFrom requires a Color object';
-			}
-			var lum1 = this.toLuminosity();
-			var lum2 = color.toLuminosity();
-			if ( lum1 > lum2 ) {
-				return ( lum1 + 0.05 ) / ( lum2 + 0.05 );
-			}
-			else {
-				return ( lum2 + 0.05 ) / ( lum1 + 0.05 );
-			}
-		},
-
-		getMaxContrastColor: function() {
-			var lum = this.toLuminosity();
-			var hex = ( lum >= 0.5 ) ? '000000' : 'ffffff';
-			return new Color( hex );
-		},
-
-		getReadableContrastingColor: function( bgColor, minContrast ) {
-			if ( ! bgColor instanceof Color ) {
-				return this;
-			}
-
-			// you shouldn't use less than 5, but you might want to.
-			var targetContrast = ( minContrast === undef ) ? 5 : minContrast;
-			// working things
-			var contrast = bgColor.getDistanceLuminosityFrom( this );
-			var maxContrastColor = bgColor.getMaxContrastColor();
-			var maxContrast = maxContrastColor.getDistanceLuminosityFrom( bgColor );
-
-			// if current max contrast is less than the target contrast, we had wishful thinking.
-			// still, go max
-			if ( maxContrast <= targetContrast ) {
-				return maxContrastColor;
-			}
-			// or, we might already have sufficient contrast
-			else if ( contrast >= targetContrast ) {
-				return this;
-			}
-
-			var incr = ( 0 === maxContrastColor.toInt() ) ? -1 : 1;
-			while ( contrast < targetContrast ) {
-				this.l( incr, true ); // 2nd arg turns this into an incrementer
-				contrast = this.getDistanceLuminosityFrom( bgColor );
-				// infininite loop prevention: you never know.
-				if ( this._color === 0 || this._color === 16777215 ) {
-					break;
-				}
-			}
-
-			return this;
-
-		},
-
-		a: function( val ) {
-			if ( val === undef )
-				return this._alpha;
-
-			var a = parseFloat( val );
-
-			if ( isNaN( a ) )
-				return this._error();
-
-			this._alpha = a;
-			return this;
-		},
-
-		// TRANSFORMS
-
-		darken: function( amount ) {
-			amount = amount || 5;
-			return this.l( - amount, true );
-		},
-
-		lighten: function( amount ) {
-			amount = amount || 5;
-			return this.l( amount, true );
-		},
-
-		saturate: function( amount ) {
-			amount = amount || 15;
-			return this.s( amount, true );
-		},
-
-		desaturate: function( amount ) {
-			amount = amount || 15;
-			return this.s( - amount, true );
-		},
-
-		toGrayscale: function() {
-			return this.setHSpace('hsl').s( 0 );
-		},
-
-		getComplement: function() {
-			return this.h( 180, true );
-		},
-
-		getSplitComplement: function( step ) {
-			step = step || 1;
-			var incr = 180 + ( step * 30 );
-			return this.h( incr, true );
-		},
-
-		getAnalog: function( step ) {
-			step = step || 1;
-			var incr = step * 30;
-			return this.h( incr, true );
-		},
-
-		getTetrad: function( step ) {
-			step = step || 1;
-			var incr = step * 60;
-			return this.h( incr, true );
-		},
-
-		getTriad: function( step ) {
-			step = step || 1;
-			var incr = step * 120;
-			return this.h( incr, true );
-		},
-
-		_partial: function( key ) {
-			var prop = shortProps[key];
-			return function( val, incr ) {
-				var color = this._spaceFunc('to', prop.space);
-
-				// GETTER
-				if ( val === undef )
-					return color[key];
-
-				// INCREMENT
-				if ( incr === true )
-					val = color[key] + val;
-
-				// MOD & RANGE
-				if ( prop.mod )
-					val = val % prop.mod;
-				if ( prop.range )
-					val = ( val < prop.range[0] ) ? prop.range[0] : ( val > prop.range[1] ) ? prop.range[1] : val;
-
-				// NEW VALUE
-				color[key] = val;
-
-				return this._spaceFunc('from', prop.space, color);
-			};
-		},
-
-		_spaceFunc: function( dir, s, val ) {
-			var space = s || this._hSpace,
-				funcName = dir + space.charAt(0).toUpperCase() + space.substr(1);
-			return this[funcName](val);
-		}
-	};
-
-	var shortProps = {
-		h: {
-			mod: 360
-		},
-		s: {
-			range: [0,100]
-		},
-		l: {
-			space: 'hsl',
-			range: [0,100]
-		},
-		v: {
-			space: 'hsv',
-			range: [0,100]
-		},
-		r: {
-			space: 'rgb',
-			range: [0,255]
-		},
-		g: {
-			space: 'rgb',
-			range: [0,255]
-		},
-		b: {
-			space: 'rgb',
-			range: [0,255]
-		}
-	};
-
-	for ( var key in shortProps ) {
-		if ( shortProps.hasOwnProperty( key ) )
-			Color.fn[key] = Color.fn._partial(key);
-	}
-
-	// play nicely with Node + browser
-	if ( typeof exports === 'object' )
-		module.exports = Color;
-	else
-		global.Color = Color;
-
-}(this));
diff --git a/wiki/lib/plugins/styling/lang/bg/lang.php b/wiki/lib/plugins/styling/lang/bg/lang.php
deleted file mode 100644
index 7d17caf..0000000
--- a/wiki/lib/plugins/styling/lang/bg/lang.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Kiril <neohidra@gmail.com>
- */
-$lang['menu']                  = 'Настройки на стила на шаблона';
-$lang['error']                 = 'За съжаление шаблона не поддържа тази функционалност.';
-$lang['btn_preview']           = 'Преглед на промените';
-$lang['btn_save']              = 'Запис на промените';
-$lang['btn_reset']             = 'Анулиране на промените';
-$lang['btn_revert']            = 'Връщане на стила към стандартните стойности';
-$lang['__text__']              = 'Цвят на основния текст';
-$lang['__background__']        = 'Цвят на основния фон';
-$lang['__text_alt__']          = 'Алтернативен цвят за текста';
-$lang['__background_alt__']    = 'Алтернативен цвят за фона';
-$lang['__text_neu__']          = 'Неутрален цвят за текста';
-$lang['__background_neu__']    = 'Неутрален цвят за фона';
-$lang['__border__']            = 'Цвят на рамката';
-$lang['__highlight__']         = 'Цвят за отличаване (основно на резултата от търсения)';
diff --git a/wiki/lib/plugins/styling/lang/cs/intro.txt b/wiki/lib/plugins/styling/lang/cs/intro.txt
deleted file mode 100644
index 00365a0..0000000
--- a/wiki/lib/plugins/styling/lang/cs/intro.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Tento nástroj umožňuje změnu určitých nastavení stylu právě používané šablony vzhledu.
-Všechny změny jsou uloženy v lokálním konfiguračním souboru a tím chráněny před smazáním při aktualizaci.
\ No newline at end of file
diff --git a/wiki/lib/plugins/styling/lang/cs/lang.php b/wiki/lib/plugins/styling/lang/cs/lang.php
deleted file mode 100644
index bbb2789..0000000
--- a/wiki/lib/plugins/styling/lang/cs/lang.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Jaroslav Lichtblau <jlichtblau@seznam.cz>
- * @author Martin Růžička <martinr@post.cz>
- */
-$lang['menu']                  = 'Nastavení stylů vzhledu';
-$lang['js']['loader']          = 'Náhled se načítá...<br />pokud tento text nezmizí, pravděpodobně jsou nastaveny nesprávné hodnoty';
-$lang['js']['popup']           = 'Otevřít ve vlastním okně';
-$lang['error']                 = 'Omlouváme se, tento ';
-$lang['btn_preview']           = 'Náhled změn';
-$lang['btn_save']              = 'Uložit změny';
-$lang['btn_reset']             = 'Zrušit aktuální změny';
-$lang['btn_revert']            = 'Vrátit styly zpět na výchozí hodnoty vzhledu';
-$lang['__text__']              = 'Barva hlavního textu';
-$lang['__background__']        = 'Barva hlavního pozadí';
-$lang['__text_alt__']          = 'Barva alternativního textu';
-$lang['__background_alt__']    = 'Barva alternativního pozadí';
-$lang['__text_neu__']          = 'Barva neutrálního textu';
-$lang['__background_neu__']    = 'Barva neutrálního pozadí';
-$lang['__border__']            = 'Barva rámování';
-$lang['__highlight__']         = 'Zvýrazněná barva (hlavně pro výsledky vyhledávání)';
diff --git a/wiki/lib/plugins/styling/lang/cy/intro.txt b/wiki/lib/plugins/styling/lang/cy/intro.txt
deleted file mode 100644
index 7c82596..0000000
--- a/wiki/lib/plugins/styling/lang/cy/intro.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Mae'r teclyn hwn yn eich galluogi chi newid gosodiadau arddull penodol y templed rydych chi'n defnyddio'n bresennol.
-Caiff pob newid ei storio mewn ffeil ffurfwedd leol sy'n uwchradd-ddiogel.
\ No newline at end of file
diff --git a/wiki/lib/plugins/styling/lang/cy/lang.php b/wiki/lib/plugins/styling/lang/cy/lang.php
deleted file mode 100644
index 4d22a59..0000000
--- a/wiki/lib/plugins/styling/lang/cy/lang.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-/**
- * Welsh language file for styling plugin
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- * @author Alan Davies <ben.brynsadler@gmail.com>
- */
-
-// menu entry for admin plugins
-$lang['menu'] = 'Gosodiadau Arddull Templed';
-
-$lang['js']['loader'] = 'Rhagolwg yn llwytho...<br />os \'dyw hwn ddim yn diflannu, efallai bod eich gwerthoedd yn annilys';
-$lang['js']['popup'] = 'Agor fel ffurflen naid';
-
-// custom language strings for the plugin
-$lang['error'] = 'Sori, \'dyw\'r templed hwn ddim yn cynnal y swyddogaethedd hwn.';
-
-$lang['btn_preview'] = 'Rhagolwg newidiadau';
-$lang['btn_save']    = 'Cadw newidiadau';
-$lang['btn_reset']   = 'Ailosod newidiadau cyfredol';
-$lang['btn_revert']  = 'Troi arddulliau\'n ôl i ddiofyn y templed';
-
-// default guaranteed placeholders
-$lang['__text__']           = 'Lliw\'r prif destun';
-$lang['__background__']     = 'Lliw\'r prif gefndir';
-$lang['__text_alt__']       = 'Lliw testun amgen';
-$lang['__background_alt__'] = 'Lliw cefndir amgen';
-$lang['__text_neu__']       = 'lliw testun niwtral';
-$lang['__background_neu__'] = 'Lliw cefndir niwtral';
-$lang['__border__']         = 'Lliw border';
-$lang['__highlight__']      = 'Lliw uwcholeuad (am ganlyniadau chwiliad yn bennaf)';
-
-
-
-
-//Setup VIM: ex: et ts=4 :
diff --git a/wiki/lib/plugins/styling/lang/de-informal/intro.txt b/wiki/lib/plugins/styling/lang/de-informal/intro.txt
deleted file mode 100644
index aa95773..0000000
--- a/wiki/lib/plugins/styling/lang/de-informal/intro.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Dieses Plugin ermöglicht es, bestimmte Designeinstellungen des ausgewählten Templates zu ändern.
-Alle Änderungen werden in einer lokalen Konfigurationsdatei gespeichert und sind upgrade-sicher.
\ No newline at end of file
diff --git a/wiki/lib/plugins/styling/lang/de-informal/lang.php b/wiki/lib/plugins/styling/lang/de-informal/lang.php
deleted file mode 100644
index 60ae96b..0000000
--- a/wiki/lib/plugins/styling/lang/de-informal/lang.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Felix Müller-Donath <j.felix@mueller-donath.de>
- */
-$lang['menu']                  = 'Einstellungen fürs Template-Design';
-$lang['js']['loader']          = 'Vorschau lädt...<br />Falls diese Nachricht nicht verschwindet, könnten deine Werte fehlerhaft sein';
-$lang['js']['popup']           = 'Öffne als Popup';
-$lang['error']                 = 'Dieses Template unterstützt diese Funktion nicht.';
-$lang['btn_preview']           = 'Vorschau der Änderungen anzeigen';
-$lang['btn_save']              = 'Änderungen speichern';
-$lang['btn_reset']             = 'Aktuelle Änderungen rückgängig machen';
-$lang['btn_revert']            = 'Design auf die Voreinstellung des Templates zurücksetzen';
-$lang['__text__']              = 'Main text color';
-$lang['__background__']        = 'Haupthintergrundfarbe';
-$lang['__text_alt__']          = 'Alternative Textfarbe';
-$lang['__background_alt__']    = 'Alternative Hintergrundfarbe';
-$lang['__text_neu__']          = 'Neutrale Textfarbe';
-$lang['__background_neu__']    = 'Neutrale Hintergrundfarbe';
-$lang['__border__']            = 'Rahmenfarbe';
-$lang['__highlight__']         = 'Hervorhebungsfarbe (v.a. für Suchergebnisse)';
diff --git a/wiki/lib/plugins/styling/lang/de/intro.txt b/wiki/lib/plugins/styling/lang/de/intro.txt
deleted file mode 100644
index aa95773..0000000
--- a/wiki/lib/plugins/styling/lang/de/intro.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Dieses Plugin ermöglicht es, bestimmte Designeinstellungen des ausgewählten Templates zu ändern.
-Alle Änderungen werden in einer lokalen Konfigurationsdatei gespeichert und sind upgrade-sicher.
\ No newline at end of file
diff --git a/wiki/lib/plugins/styling/lang/de/lang.php b/wiki/lib/plugins/styling/lang/de/lang.php
deleted file mode 100644
index 54adc56..0000000
--- a/wiki/lib/plugins/styling/lang/de/lang.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Anika Henke <anika@selfthinker.org>
- * @author Hella Breitkopf <hella.breitkopf@gmail.com>
- */
-$lang['menu']                  = 'Einstellungen fürs Template-Design';
-$lang['js']['loader']          = 'Vorschau lädt...<br />Falls diese Nachricht nicht verschwindet, könnten Ihre Werte fehlerhaft sein';
-$lang['js']['popup']           = 'Öffne als Popup';
-$lang['error']                 = 'Dieses Template unterstützt diese Funktion nicht.';
-$lang['btn_preview']           = 'Vorschau der Änderungen anzeigen';
-$lang['btn_save']              = 'Änderungen speichern';
-$lang['btn_reset']             = 'Jetzige Änderungen rückgängig machen';
-$lang['btn_revert']            = 'Design auf die Voreinstellung des Templates zurücksetzen';
-$lang['__text__']              = 'Haupttextfarbe';
-$lang['__background__']        = 'Haupthintergrundfarbe';
-$lang['__text_alt__']          = 'Alternative Textfarbe';
-$lang['__background_alt__']    = 'Alternative Hintergrundfarbe';
-$lang['__text_neu__']          = 'Neutrale Textfarbe';
-$lang['__background_neu__']    = 'Neutrale Hintergrundfarbe';
-$lang['__border__']            = 'Rahmenfarbe';
-$lang['__highlight__']         = 'Hervorhebungsfarbe (hauptsächlich für Suchergebnisse)';
diff --git a/wiki/lib/plugins/styling/lang/en/intro.txt b/wiki/lib/plugins/styling/lang/en/intro.txt
deleted file mode 100644
index 4ea5517..0000000
--- a/wiki/lib/plugins/styling/lang/en/intro.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-This tool allows you to change certain style settings of your currently selected template.
-All changes are stored in a local configuration file and are upgrade safe.
\ No newline at end of file
diff --git a/wiki/lib/plugins/styling/lang/en/lang.php b/wiki/lib/plugins/styling/lang/en/lang.php
deleted file mode 100644
index e0011eb..0000000
--- a/wiki/lib/plugins/styling/lang/en/lang.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-/**
- * English language file for styling plugin
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-
-// menu entry for admin plugins
-$lang['menu'] = 'Template Style Settings';
-
-$lang['js']['loader'] = 'Preview is loading...<br />if this does not goes away, your values may be faulty';
-$lang['js']['popup'] = 'Open as a popup';
-
-// custom language strings for the plugin
-$lang['error'] = 'Sorry, this template does not support this functionality.';
-
-$lang['btn_preview'] = 'Preview changes';
-$lang['btn_save']    = 'Save changes';
-$lang['btn_reset']   = 'Reset current changes';
-$lang['btn_revert']  = 'Revert styles back to template\'s default';
-
-// default guaranteed placeholders
-$lang['__text__']           = 'Main text color';
-$lang['__background__']     = 'Main background color';
-$lang['__text_alt__']       = 'Alternative text color';
-$lang['__background_alt__'] = 'Alternative background color';
-$lang['__text_neu__']       = 'Neutral text color';
-$lang['__background_neu__'] = 'Neutral background color';
-$lang['__border__']         = 'Border color';
-$lang['__highlight__']      = 'Highlight color (for search results mainly)';
-
-
-
-
-//Setup VIM: ex: et ts=4 :
diff --git a/wiki/lib/plugins/styling/lang/eo/lang.php b/wiki/lib/plugins/styling/lang/eo/lang.php
deleted file mode 100644
index d8127e7..0000000
--- a/wiki/lib/plugins/styling/lang/eo/lang.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Kristjan SCHMIDT <kristjan.schmidt@googlemail.com>
- */
-$lang['btn_preview']           = 'Antaŭaj ŝanĝoj';
-$lang['btn_save']              = 'Konservi ŝanĝojn';
diff --git a/wiki/lib/plugins/styling/lang/es/intro.txt b/wiki/lib/plugins/styling/lang/es/intro.txt
deleted file mode 100644
index 8a55600..0000000
--- a/wiki/lib/plugins/styling/lang/es/intro.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Esta herramienta le permite cambiar algunos ajustes de estilo de la plantilla seleccionada.
-Todos los cambios se guardan en un archivo de configuración local y son una actualización segura.
\ No newline at end of file
diff --git a/wiki/lib/plugins/styling/lang/es/lang.php b/wiki/lib/plugins/styling/lang/es/lang.php
deleted file mode 100644
index 5c87c92..0000000
--- a/wiki/lib/plugins/styling/lang/es/lang.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Domingo Redal <docxml@gmail.com>
- */
-$lang['menu']                  = 'Ajustes de plantilla';
-$lang['js']['loader']          = 'La vista previa se está cargando ... <br /> si esto no se ve, sus valores pueden ser defectuosos';
-$lang['js']['popup']           = 'Abrir como una ventana emergente';
-$lang['error']                 = 'Lo sentimos, esta plantilla no admite esta funcionalidad.';
-$lang['btn_preview']           = 'Vista previa de los cambios';
-$lang['btn_save']              = 'Guardar cambios';
-$lang['btn_reset']             = 'Reiniciar los cambios actuales';
-$lang['btn_revert']            = 'Revertir estilos volviendo a los valores por defecto de la plantilla';
-$lang['__text__']              = 'Color del texto principal';
-$lang['__background__']        = 'Color de fondo del texto principal';
-$lang['__text_alt__']          = 'Color del texto alternativo';
-$lang['__background_alt__']    = 'Color de fondo del texto alternativo';
-$lang['__text_neu__']          = 'Color del texto neutro';
-$lang['__background_neu__']    = 'Color de fondo del texto neutro';
-$lang['__border__']            = 'Color del borde';
-$lang['__highlight__']         = 'Color resaltado (para los resultados de búsqueda, principalmente)';
diff --git a/wiki/lib/plugins/styling/lang/fa/intro.txt b/wiki/lib/plugins/styling/lang/fa/intro.txt
deleted file mode 100644
index 428a251..0000000
--- a/wiki/lib/plugins/styling/lang/fa/intro.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-این ابزار این امکان را فراهم می‌سازد که برخی تنظیمات مشخص از قالبی که انتخاب کردید را تغییر دهید.
-تمام تغییرات در فایل داخلی تنظیمات ذخیره می‌شود و به‌روزرسانی هم ایمن است.
\ No newline at end of file
diff --git a/wiki/lib/plugins/styling/lang/fa/lang.php b/wiki/lib/plugins/styling/lang/fa/lang.php
deleted file mode 100644
index 95a65f4..0000000
--- a/wiki/lib/plugins/styling/lang/fa/lang.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Masoud Sadrnezhaad <masoud@sadrnezhaad.ir>
- * @author Sam01 <m.sajad079@gmail.com>
- */
-$lang['menu']                  = 'تنظیمات ظاهری تمپلیت';
-$lang['js']['loader']          = 'پیش‌نمایش در حال باز شدن است... <br />اگر این پیش نرفت یعنی مقادیرتان اشکال دارد';
-$lang['js']['popup']           = 'باز کردن به صورت پاپ‌آپ';
-$lang['error']                 = 'ببخشید، این قالب از این قابلیت پشتیبانی نمی‌کند';
-$lang['btn_preview']           = 'نمایش تغییرات';
-$lang['btn_save']              = 'ذخیره تغییرات';
-$lang['btn_reset']             = 'بازگردانی تغییر فعلی';
-$lang['btn_revert']            = 'بازگردانی ظاهر به پیشفرض قالب';
-$lang['__text__']              = 'رنگ اصلی متن';
-$lang['__background__']        = 'رنگ اصلی زمینه';
-$lang['__text_alt__']          = 'رنگ ثانویه متن';
-$lang['__background_alt__']    = 'رنگ ثانویه زمینه';
-$lang['__text_neu__']          = 'رنگ خنثی متن';
-$lang['__background_neu__']    = 'رنگ خنثی زمینه';
-$lang['__border__']            = 'رنگ حاشیه';
-$lang['__highlight__']         = 'رنگ برجسته‌سازی (برای نتیجه جستجو)';
diff --git a/wiki/lib/plugins/styling/lang/fr/intro.txt b/wiki/lib/plugins/styling/lang/fr/intro.txt
deleted file mode 100644
index 14a615c..0000000
--- a/wiki/lib/plugins/styling/lang/fr/intro.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Cet outil vous permet de changer les paramètres de certains style de votre thème actuel.
-Tous les changement sont enregistrés dans un fichier de configuration local qui sera inchangé en cas de mise à jour.
\ No newline at end of file
diff --git a/wiki/lib/plugins/styling/lang/fr/lang.php b/wiki/lib/plugins/styling/lang/fr/lang.php
deleted file mode 100644
index 05725bc..0000000
--- a/wiki/lib/plugins/styling/lang/fr/lang.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Carbain Frédéric <fcarbain@yahoo.fr>
- * @author Nicolas Friedli <nicolas@theologique.ch>
- * @author Schplurtz le Déboulonné <Schplurtz@laposte.net>
- */
-$lang['menu']                  = 'Paramètres de style du thème (template)';
-$lang['js']['loader']          = 'La prévisualisation est en chargement... <br />Si rien ne se passe, les données sont peut-être erronées';
-$lang['js']['popup']           = 'Ouvrir dans une nouvelle fenêtre';
-$lang['error']                 = 'Désolé, ce thème n\'utilise pas cette fonctionnalité.';
-$lang['btn_preview']           = 'Aperçu des changements';
-$lang['btn_save']              = 'sauvegarder les changements.';
-$lang['btn_reset']             = 'Remettre les changements courants à zéro';
-$lang['btn_revert']            = 'Remettre les styles du thème aux valeurs par défaut';
-$lang['__text__']              = 'Couleur de texte principale';
-$lang['__background__']        = 'Couleur de fond principale';
-$lang['__text_alt__']          = 'Couleur de texte alternative';
-$lang['__background_alt__']    = 'Couleur de fond alternative';
-$lang['__text_neu__']          = 'Couleur de texte neutre';
-$lang['__background_neu__']    = 'Couleur de fond neutre';
-$lang['__border__']            = 'Couleur des contours';
-$lang['__highlight__']         = 'Couleur de surbrillance (utilisée pincipalement pour les résultats de recherche)';
diff --git a/wiki/lib/plugins/styling/lang/hr/intro.txt b/wiki/lib/plugins/styling/lang/hr/intro.txt
deleted file mode 100644
index 5c947dd..0000000
--- a/wiki/lib/plugins/styling/lang/hr/intro.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Ovaj alat omogućava izmjenu nekih postavki stila vašeg tekućeg wiki predloška.
-Sve postavke su snimljene u lokalnu konfiguracijsku datoteku i neće biti prebrisane kod nadogradnje.
\ No newline at end of file
diff --git a/wiki/lib/plugins/styling/lang/hr/lang.php b/wiki/lib/plugins/styling/lang/hr/lang.php
deleted file mode 100644
index 4d7038a..0000000
--- a/wiki/lib/plugins/styling/lang/hr/lang.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Davor Turkalj <turki.bsc@gmail.com>
- */
-$lang['menu']                  = 'Postavke stila predloška';
-$lang['js']['loader']          = 'Pregled se učitava...<br />ako ovo ne nestane, vaše vrijednosti su možda neispravne';
-$lang['js']['popup']           = 'Otvori kao zasebni prozor';
-$lang['error']                 = 'Oprostite ali ovaj predložak ne podržava ovu funkcionalnost';
-$lang['btn_preview']           = 'Pregled izmjena';
-$lang['btn_save']              = 'Pohrani promjene';
-$lang['btn_reset']             = 'Resetiraj trenutne promjene';
-$lang['btn_revert']            = 'Vrati postavke nazad na inicijalne vrijednosti predloška';
-$lang['__text__']              = 'Primarna boja teksta';
-$lang['__background__']        = 'Primarna boja pozadine';
-$lang['__text_alt__']          = 'Alternativna boja teksta';
-$lang['__background_alt__']    = 'Alternativna boja pozadine';
-$lang['__text_neu__']          = 'Boja neutralnog teksta';
-$lang['__background_neu__']    = 'Boja neutralne pozadine';
-$lang['__border__']            = 'Boja ruba';
-$lang['__highlight__']         = 'Boja isticanja (uglavnom za rezultat pretrage)';
diff --git a/wiki/lib/plugins/styling/lang/hu/intro.txt b/wiki/lib/plugins/styling/lang/hu/intro.txt
deleted file mode 100644
index 42f451d..0000000
--- a/wiki/lib/plugins/styling/lang/hu/intro.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Ezzel az eszközzel módosíthatod az aktuális sablon kinézetének néhány elemét.
-A változtatások egy helyi konfigurációs fájlban kerülnek tárolásra, így a frissítések során megmaradnak.
\ No newline at end of file
diff --git a/wiki/lib/plugins/styling/lang/hu/lang.php b/wiki/lib/plugins/styling/lang/hu/lang.php
deleted file mode 100644
index c6ef5de..0000000
--- a/wiki/lib/plugins/styling/lang/hu/lang.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Marton Sebok <sebokmarton@gmail.com>
- */
-$lang['menu']                  = 'Sablon kinézetének beállításai';
-$lang['js']['loader']          = 'Az előnézet töltődik...<br />ha ez az üzenet nem tűnik el, a beállított értékek hibásak lehetnek';
-$lang['js']['popup']           = 'Megnyitás felugró ablakban';
-$lang['error']                 = 'Ez a sablon sajnos nem támogatja ezt a funkciót';
-$lang['btn_preview']           = 'Változtatások előnézete';
-$lang['btn_save']              = 'Változtatások mentése';
-$lang['btn_reset']             = 'Jelenlegi változtatások visszaállítása';
-$lang['btn_revert']            = 'A sablon alapértelmezett kinézetének visszaállítása';
-$lang['__text__']              = 'Fő szövegszín';
-$lang['__background__']        = 'Fő háttérszín';
-$lang['__text_alt__']          = 'Alternatív szövegszín';
-$lang['__background_alt__']    = 'Alternatív háttérszín';
-$lang['__text_neu__']          = 'Semleges szövegszín';
-$lang['__background_neu__']    = 'Semleges háttérszín';
-$lang['__border__']            = 'Keret színe';
-$lang['__highlight__']         = 'Kijelölés színe (leginkább a keresési eredményeknél)';
diff --git a/wiki/lib/plugins/styling/lang/it/intro.txt b/wiki/lib/plugins/styling/lang/it/intro.txt
deleted file mode 100644
index 6c798e4..0000000
--- a/wiki/lib/plugins/styling/lang/it/intro.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Questo strumento ti permette di cambiare certe configurazioni di stile del tema attualmente in uso.
-Tutte le modifiche sono salvate in un file di configurazione locale e sono aggiornate in modo sicuro.
\ No newline at end of file
diff --git a/wiki/lib/plugins/styling/lang/it/lang.php b/wiki/lib/plugins/styling/lang/it/lang.php
deleted file mode 100644
index 03b7aa7..0000000
--- a/wiki/lib/plugins/styling/lang/it/lang.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Torpedo <dgtorpedo@gmail.com>
- */
-$lang['menu']                  = 'Configurazioni di stile del tema';
-$lang['js']['loader']          = 'Anteprima in corso...<br />se questo non sparisce, potresti aver fornito dei valori sbagliati';
-$lang['js']['popup']           = 'Apri in un finestra a parte';
-$lang['error']                 = 'Spiacente, questo template non supporta questa funzionalità.';
-$lang['btn_preview']           = 'Cambiamenti precedenti';
-$lang['btn_save']              = 'Salva i cambiamenti';
-$lang['btn_reset']             = 'Azzera le modifiche correnti';
-$lang['btn_revert']            = 'Ripristina gli stili ai valori originari del tema';
-$lang['__text__']              = 'Colore principale del testo';
-$lang['__background__']        = 'Colore principale dello sfondo';
-$lang['__text_alt__']          = 'Colore alternativo per il testo';
-$lang['__background_alt__']    = 'Colore alternativo dello sfondo';
-$lang['__text_neu__']          = 'Colore testo neutrale';
-$lang['__background_neu__']    = 'Colore sfondo neutrale';
-$lang['__border__']            = 'Colore del bordo';
-$lang['__highlight__']         = 'Colore di evidenziazione (principalmente per i risultati di ricerca)';
diff --git a/wiki/lib/plugins/styling/lang/ja/intro.txt b/wiki/lib/plugins/styling/lang/ja/intro.txt
deleted file mode 100644
index 1feb4e0..0000000
--- a/wiki/lib/plugins/styling/lang/ja/intro.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-この画面上で、選択中のテンプレート固有のスタイル設定を変更できます。
-変更内容はすべてローカルの設定ファイル内に保存され、テンプレートを更新しても初期化されません。
\ No newline at end of file
diff --git a/wiki/lib/plugins/styling/lang/ja/lang.php b/wiki/lib/plugins/styling/lang/ja/lang.php
deleted file mode 100644
index 5c546a7..0000000
--- a/wiki/lib/plugins/styling/lang/ja/lang.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Hideaki SAWADA <chuno@live.jp>
- */
-$lang['menu']                  = 'テンプレートのスタイル設定';
-$lang['js']['loader']          = 'プレビューを読込み中です・・・<br/>この表示が消えない場合、変更した設定値に問題があるかもしれません。';
-$lang['js']['popup']           = 'ポップアップとして表示';
-$lang['error']                 = 'このテンプレートは、この機能に対応していません。';
-$lang['btn_preview']           = '変更内容のプレビュー';
-$lang['btn_save']              = '変更内容の保存';
-$lang['btn_reset']             = '変更内容の初期化';
-$lang['btn_revert']            = 'テンプレートのデフォルト値に戻す';
-$lang['__text__']              = 'メイン文字色';
-$lang['__background__']        = 'メイン背景色';
-$lang['__text_alt__']          = '代替文字色';
-$lang['__background_alt__']    = '代替背景色';
-$lang['__text_neu__']          = '無彩色の文字色';
-$lang['__background_neu__']    = '無彩色の背景色';
-$lang['__border__']            = '枠線の色';
-$lang['__highlight__']         = '強調色(主に検索結果用)';
diff --git a/wiki/lib/plugins/styling/lang/ko/intro.txt b/wiki/lib/plugins/styling/lang/ko/intro.txt
deleted file mode 100644
index c460801..0000000
--- a/wiki/lib/plugins/styling/lang/ko/intro.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-이 도구는 현재 선택한 템플릿의 특정 스타일 설정을 바꿀 수 있습니다.
-모든 바뀜은 로컬 환경 설정 파일에 저장되며 안전하게 업그레이드됩니다.
\ No newline at end of file
diff --git a/wiki/lib/plugins/styling/lang/ko/lang.php b/wiki/lib/plugins/styling/lang/ko/lang.php
deleted file mode 100644
index bcdf9dc..0000000
--- a/wiki/lib/plugins/styling/lang/ko/lang.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Myeongjin <aranet100@gmail.com>
- */
-$lang['menu']                  = '템플릿 스타일 설정';
-$lang['js']['loader']          = '미리 보기를 불러오는 중...<br />만약 이것이 사라지지 않는다면, 당신은 실망하겠죠';
-$lang['js']['popup']           = '팝업으로 열기';
-$lang['error']                 = '죄송하지만 이 템플릿은 이 기능으로 지원하지 않습니다.';
-$lang['btn_preview']           = '바뀜 미리 보기';
-$lang['btn_save']              = '바뀜 저장';
-$lang['btn_reset']             = '현재 바뀜 재설정';
-$lang['btn_revert']            = '틀의 기본값으로 스타일을 되돌리기';
-$lang['__text__']              = '주요 텍스트 색';
-$lang['__background__']        = '주요 배경 색';
-$lang['__text_alt__']          = '대체 텍스트 색';
-$lang['__background_alt__']    = '대체 배경 색';
-$lang['__text_neu__']          = '중립 텍스트 색';
-$lang['__background_neu__']    = '중립 배경 색';
-$lang['__border__']            = '윤곽선 색';
-$lang['__highlight__']         = '(주로 검색 결과를 위한) 강조 색';
diff --git a/wiki/lib/plugins/styling/lang/nl/intro.txt b/wiki/lib/plugins/styling/lang/nl/intro.txt
deleted file mode 100644
index 7275938..0000000
--- a/wiki/lib/plugins/styling/lang/nl/intro.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Deze tool laat u een aantal stijlinstellingen van uw huidig geselecteerde template aanpassen.
-Alle aanpassingen worden in een lokaal configuratiebestand bewaard en zijn upgrade veilig.
diff --git a/wiki/lib/plugins/styling/lang/nl/lang.php b/wiki/lib/plugins/styling/lang/nl/lang.php
deleted file mode 100644
index 4775fa8..0000000
--- a/wiki/lib/plugins/styling/lang/nl/lang.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Mark C. Prins <mprins@users.sf.net>
- * @author hugo smet <hugo.smet@scarlet.be>
- */
-$lang['menu']                  = 'Template stijl-instellingen';
-$lang['js']['loader']          = 'Voorbeeldweergave is aan het laden...<br />als dit niet verdwijnt zijn uw instellingen mogelijk foutief.';
-$lang['js']['popup']           = 'Open als popup';
-$lang['error']                 = 'Sorry, deze template ondersteunt deze functionaliteit niet.';
-$lang['btn_preview']           = 'Bekijk aanpassingen';
-$lang['btn_save']              = 'Sla aanpassingen op';
-$lang['btn_reset']             = 'Huidige aanpassingen verwerpen';
-$lang['btn_revert']            = 'Stijlen terugzetten naar de standaard waardes van de template';
-$lang['__text__']              = 'Hoofd tekstkleur';
-$lang['__background__']        = 'Hoofd achtergrondkleur';
-$lang['__text_alt__']          = 'Alternatieve tekstkleur';
-$lang['__background_alt__']    = 'Alternatieve achtergrondkleur';
-$lang['__text_neu__']          = 'Neutrale tekstkleur';
-$lang['__background_neu__']    = 'Neutrale achtergrondkleur';
-$lang['__border__']            = 'Kader kleur';
-$lang['__highlight__']         = 'Markeringskleur (hoofdzakelijk voor zoekresultaten)';
diff --git a/wiki/lib/plugins/styling/lang/no/intro.txt b/wiki/lib/plugins/styling/lang/no/intro.txt
deleted file mode 100644
index 8222549..0000000
--- a/wiki/lib/plugins/styling/lang/no/intro.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Dette verktøyet lar deg endre visse instillinger for malen som nå er i bruk.
-Alle endringer lagres i en lokal konfigurasjonsfil og vil ikke bli overskrevet ved en oppgradering.
\ No newline at end of file
diff --git a/wiki/lib/plugins/styling/lang/no/lang.php b/wiki/lib/plugins/styling/lang/no/lang.php
deleted file mode 100644
index f9a478b..0000000
--- a/wiki/lib/plugins/styling/lang/no/lang.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Arne Hanssen <arne.hanssen@getmail.no>
- * @author Arne Hanssen <arnehans@getmail.no>
- */
-$lang['menu']                  = 'Innstillinger for malstil';
-$lang['js']['loader']          = 'Forhåndsvisning laster...<br />Dersom denne ikke forsvinner, kan det hende at dine verdier er feil';
-$lang['js']['popup']           = 'Åpne som nytt vindu';
-$lang['error']                 = 'Beklager men denne malen støtter ikke denne funksjonaliteten.';
-$lang['btn_preview']           = 'Forhåndsvis endringer';
-$lang['btn_save']              = 'Lagre endringer';
-$lang['btn_reset']             = 'Sett tilbake til nåværende endringer';
-$lang['btn_revert']            = 'Rull tilbake stilen til standard for malen';
-$lang['__text__']              = 'Hovedfarge for tekst';
-$lang['__background__']        = 'Hovedfarge for bagrunn';
-$lang['__text_alt__']          = 'Alternativ tekstfarge';
-$lang['__background_alt__']    = 'Alternativ bakgrunnsfarge';
-$lang['__text_neu__']          = 'Nøytral tekstfarge';
-$lang['__background_neu__']    = 'Nøytral bakgrunnsfarge';
-$lang['__border__']            = 'Kantfarge';
-$lang['__highlight__']         = 'Farge for uthevet tekst (i hovedsak for søk)';
diff --git a/wiki/lib/plugins/styling/lang/pl/intro.txt b/wiki/lib/plugins/styling/lang/pl/intro.txt
deleted file mode 100644
index 29206a8..0000000
--- a/wiki/lib/plugins/styling/lang/pl/intro.txt
+++ /dev/null
@@ -1 +0,0 @@
-To narzędzie umożliwia zmianę niektórych ustawień stylów aktualnie wybranego szablonu. Wszystkie zmiany są przechowywane w lokalnym pliku konfiguracyjnym i są bezpieczne dla aktualizacji.
\ No newline at end of file
diff --git a/wiki/lib/plugins/styling/lang/pl/lang.php b/wiki/lib/plugins/styling/lang/pl/lang.php
deleted file mode 100644
index e4c84ba..0000000
--- a/wiki/lib/plugins/styling/lang/pl/lang.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Wojciech Lichota <wojciech@lichota.pl>
- * @author Max <maxrb146@gmail.com>
- */
-$lang['menu']                  = 'Ustawienia Szablonu';
-$lang['js']['loader']          = 'Podgląd ładuje się ...<br />jeśli ten komunikat nie zniknie, twoje wartości mogą być błędne';
-$lang['js']['popup']           = 'Otwórz w nowym oknie';
-$lang['error']                 = 'Przepraszamy, ten szablon nie wspiera tej funkcjonalności';
-$lang['btn_preview']           = 'Pokaż zmiany ';
-$lang['btn_save']              = 'Zapisz zmiany';
-$lang['btn_reset']             = 'Cofnij zmiany ';
-$lang['btn_revert']            = 'Przywróć style do wartości domyślnych szablonu';
-$lang['__text__']              = 'Kolor tekstu ';
-$lang['__background__']        = 'Kolor tła ';
-$lang['__text_alt__']          = 'Inny kolor tekstu';
-$lang['__background_alt__']    = 'Inny kolor tła';
-$lang['__text_neu__']          = 'Kolor neutralnego tekstu';
-$lang['__background_neu__']    = 'Kolor neutralnego tła';
-$lang['__border__']            = 'kolor obramowania ';
-$lang['__highlight__']         = 'Kolor podświetlenia (głównie dla wyników wyszukiwania)';
diff --git a/wiki/lib/plugins/styling/lang/pt-br/intro.txt b/wiki/lib/plugins/styling/lang/pt-br/intro.txt
deleted file mode 100644
index 3d0f47f..0000000
--- a/wiki/lib/plugins/styling/lang/pt-br/intro.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Essa ferramente permite a alteração de certas configurações do estilo do seu modelo atual.
-Todas as modificações são armazenadas em um arquivo de configuração local e estão protegidas contra atualizações.
\ No newline at end of file
diff --git a/wiki/lib/plugins/styling/lang/pt-br/lang.php b/wiki/lib/plugins/styling/lang/pt-br/lang.php
deleted file mode 100644
index 4ebcbe5..0000000
--- a/wiki/lib/plugins/styling/lang/pt-br/lang.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Frederico Gonçalves Guimarães <frederico@teia.bio.br>
- */
-$lang['menu']                  = 'Configurações de estilo do modelo';
-$lang['js']['loader']          = 'A visualização está carregando...<br />Caso essa mensagem não desapareça, pode ter algum problema com os seus valores.';
-$lang['js']['popup']           = 'Abrir como um popup';
-$lang['error']                 = 'Desculpe, mas esse modelo não suporta essa funcionalidade.';
-$lang['btn_preview']           = 'Ver alterações';
-$lang['btn_save']              = 'Salvar alterações';
-$lang['btn_reset']             = 'Eliminar as alterações atuais';
-$lang['btn_revert']            = 'Reverter o estilo para os padrões do modelo';
-$lang['__text__']              = 'Cor principal do texto';
-$lang['__background__']        = 'Cor principal do fundo';
-$lang['__text_alt__']          = 'Cor alternativa do texto';
-$lang['__background_alt__']    = 'Cor alternativa do fundo';
-$lang['__text_neu__']          = 'Cor neutra do texto';
-$lang['__background_neu__']    = 'Cor neutra do fundo';
-$lang['__border__']            = 'Cor da borda';
-$lang['__highlight__']         = 'Cor do destaque (primariamente em resultados da pesquisa)';
diff --git a/wiki/lib/plugins/styling/lang/pt/lang.php b/wiki/lib/plugins/styling/lang/pt/lang.php
deleted file mode 100644
index 1c64c04..0000000
--- a/wiki/lib/plugins/styling/lang/pt/lang.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Alfredo Silva <alfredo.silva@sky.com>
- * @author Guilherme Sá <guilherme.sa@hotmail.com>
- */
-$lang['menu']                  = 'Configurações de Estilo do Modelo';
-$lang['js']['popup']           = 'Abrir como uma janela extra';
-$lang['error']                 = 'Desculpe, este modelo não suporta esta funcionalidade.';
-$lang['btn_preview']           = 'Pré-visualizar alterações';
-$lang['btn_save']              = 'Guardar alterações';
-$lang['btn_reset']             = 'Reiniciar alterações atuais';
-$lang['__text__']              = 'Cor do texto principal';
-$lang['__background__']        = 'Cor principal do fundo';
-$lang['__text_alt__']          = 'Cor alternativa de texto';
-$lang['__background_alt__']    = 'Cor alternativa de fundo';
-$lang['__text_neu__']          = 'Cor neutra de texto';
diff --git a/wiki/lib/plugins/styling/lang/ru/intro.txt b/wiki/lib/plugins/styling/lang/ru/intro.txt
deleted file mode 100644
index 3a01411..0000000
--- a/wiki/lib/plugins/styling/lang/ru/intro.txt
+++ /dev/null
@@ -1 +0,0 @@
-Этот инструмент позволяет изменять стилевые настройки выбранного шаблона. Все изменения хранятся в файле конфигурации и защищены от сброса при обновлении.
diff --git a/wiki/lib/plugins/styling/lang/ru/lang.php b/wiki/lib/plugins/styling/lang/ru/lang.php
deleted file mode 100644
index 3c8e60b..0000000
--- a/wiki/lib/plugins/styling/lang/ru/lang.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author RainbowSpike <1@2.ru>
- */
-$lang['menu']                  = 'Настройки стилей шаблона';
-$lang['js']['loader']          = 'Загружается предпросмотр...<br />Если здесь случился сбой, ваши настройки могут быть сброшены';
-$lang['js']['popup']           = 'Открыть во всплывающем окне';
-$lang['error']                 = 'Этот шаблон не поддерживает такой функционал.';
-$lang['btn_preview']           = 'Просмотреть изменения';
-$lang['btn_save']              = 'Сохранить изменения';
-$lang['btn_reset']             = 'Сбросить сделанные изменения';
-$lang['btn_revert']            = 'Откатить стили к исходным для шаблона';
-$lang['__text__']              = 'Цвет текста';
-$lang['__background__']        = 'Цвет фона';
-$lang['__text_alt__']          = 'Второй цвет текста';
-$lang['__background_alt__']    = 'Второй цвет фона';
-$lang['__text_neu__']          = 'Нейтральный цвет текста';
-$lang['__background_neu__']    = 'Нейтральный цвет фона';
-$lang['__border__']            = 'Цвет границ';
-$lang['__highlight__']         = 'Цвет подсветки (в основном для результатов поиска)';
diff --git a/wiki/lib/plugins/styling/lang/sk/lang.php b/wiki/lib/plugins/styling/lang/sk/lang.php
deleted file mode 100644
index 0058358..0000000
--- a/wiki/lib/plugins/styling/lang/sk/lang.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Martin Michalek <michalek.dev@gmail.com>
- */
-$lang['btn_preview']           = 'Náhľad zmien';
-$lang['btn_save']              = 'Uloženie zmien';
-$lang['btn_reset']             = 'Zruš prevedené zmeny';
-$lang['__text__']              = 'Primárna farba textu';
-$lang['__background__']        = 'Primárna farba pozadia';
-$lang['__text_alt__']          = 'Alternatívna farba textu';
-$lang['__background_alt__']    = 'Alternatívna farba pozadia';
-$lang['__text_neu__']          = 'Neutrálna farba textu';
-$lang['__background_neu__']    = 'Neutrálna farba pozadia';
-$lang['__border__']            = 'Farba okraja';
-$lang['__highlight__']         = 'Farba zvýraznenia (zvyčajne výsledkov vyhľadávania)';
diff --git a/wiki/lib/plugins/styling/lang/sv/lang.php b/wiki/lib/plugins/styling/lang/sv/lang.php
deleted file mode 100644
index 00a8518..0000000
--- a/wiki/lib/plugins/styling/lang/sv/lang.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author Tor Härnqvist <tor@harnqvist.se>
- */
-$lang['btn_preview']           = 'Förhandsvisa ändringar';
-$lang['btn_save']              = 'Spara ändringar';
-$lang['btn_reset']             = 'Nollställ aktuella ändringar';
-$lang['__text__']              = 'Huvudsaklig textfärg';
-$lang['__background__']        = 'Huvudsaklig bakgrundsfärg';
-$lang['__text_alt__']          = 'Alternativ textfärg';
-$lang['__background_alt__']    = 'Alternativ bakgrundsfärg';
-$lang['__text_neu__']          = 'Neutral textfärg';
-$lang['__background_neu__']    = 'Neutral bakgrundsfärg';
-$lang['__border__']            = 'Ramfärg';
diff --git a/wiki/lib/plugins/styling/lang/zh-tw/lang.php b/wiki/lib/plugins/styling/lang/zh-tw/lang.php
deleted file mode 100644
index ce4a9a9..0000000
--- a/wiki/lib/plugins/styling/lang/zh-tw/lang.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- * 
- * @author Liou, Jhe-Yu <lioujheyu@gmail.com>
- */
-$lang['menu']                  = '模板風格設定';
-$lang['error']                 = '抱歉,該模板不支持這個功能';
-$lang['btn_preview']           = '預覽';
-$lang['btn_save']              = '儲存';
-$lang['btn_reset']             = '重設';
-$lang['btn_revert']            = '將風格復原至模板預設值';
-$lang['__text__']              = '主要文字顏色';
-$lang['__background__']        = '主要背景顏色';
diff --git a/wiki/lib/plugins/styling/lang/zh/intro.txt b/wiki/lib/plugins/styling/lang/zh/intro.txt
deleted file mode 100644
index 7091712..0000000
--- a/wiki/lib/plugins/styling/lang/zh/intro.txt
+++ /dev/null
@@ -1 +0,0 @@
-这个工具可以让您对当前选中的模板的某些样式设置进行改变。所有改动会保存在一个本地配置文件中,不会被升级所影响。
\ No newline at end of file
diff --git a/wiki/lib/plugins/styling/lang/zh/lang.php b/wiki/lib/plugins/styling/lang/zh/lang.php
deleted file mode 100644
index 386312a..0000000
--- a/wiki/lib/plugins/styling/lang/zh/lang.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-/**
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
- *
- * @author lainme <lainme993@gmail.com>
- */
-$lang['menu']                  = '模板样式设置';
-$lang['js']['loader']          = '正在载入预览...<br />如果本句一直没有消失,您的设置可能有错';
-$lang['js']['popup']           = '作为弹出窗口打开';
-$lang['error']                 = '抱歉,这个模板不支持这项功能。';
-$lang['btn_preview']           = '预览改动';
-$lang['btn_save']              = '保存改动';
-$lang['btn_reset']             = '重置当前改动';
-$lang['btn_revert']            = '回退样式到模板的默认值';
-$lang['__text__']              = '主要的字体颜色';
-$lang['__background__']        = '主要的背景颜色';
-$lang['__text_alt__']          = '备选字体的颜色';
-$lang['__background_alt__']    = '备选背景的颜色';
-$lang['__text_neu__']          = '中性字体的颜色';
-$lang['__background_neu__']    = '中性背景的颜色';
-$lang['__border__']            = '边框颜色';
-$lang['__highlight__']         = '高亮颜色 (主要用于搜索结果)';
diff --git a/wiki/lib/plugins/styling/plugin.info.txt b/wiki/lib/plugins/styling/plugin.info.txt
deleted file mode 100644
index 9f002e2..0000000
--- a/wiki/lib/plugins/styling/plugin.info.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-base   styling
-author Andreas Gohr
-email  andi@splitbrain.org
-date   2015-07-26
-name   styling plugin
-desc   Allows to edit style.ini replacements
-url    https://www.dokuwiki.org/plugin:styling
diff --git a/wiki/lib/plugins/styling/popup.php b/wiki/lib/plugins/styling/popup.php
deleted file mode 100644
index 964b19e..0000000
--- a/wiki/lib/plugins/styling/popup.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-if(!defined('DOKU_INC')) define('DOKU_INC', dirname(__FILE__) . '/../../../');
-require_once(DOKU_INC . 'inc/init.php');
-//close session
-session_write_close();
-header('Content-Type: text/html; charset=utf-8');
-header('X-UA-Compatible: IE=edge,chrome=1');
-
-/** @var admin_plugin_styling $plugin */
-$plugin = plugin_load('admin', 'styling');
-if(!auth_isadmin()) die('only admins allowed');
-$plugin->ispopup = true;
-
-// handle posts
-$plugin->handle();
-
-// output plugin in a very minimal template:
-?><!DOCTYPE html>
-<html lang="<?php echo $conf['lang'] ?>" dir="<?php echo $lang['direction'] ?>">
-<head>
-    <meta charset="utf-8" />
-    <title><?php echo $plugin->getLang('menu') ?></title>
-    <?php tpl_metaheaders(false) ?>
-    <meta name="viewport" content="width=device-width,initial-scale=1" />
-    <?php echo tpl_favicon(array('favicon')) ?>
-</head>
-<body class="dokuwiki">
-    <?php $plugin->html() ?>
-</body>
-</html>
diff --git a/wiki/lib/plugins/styling/script.js b/wiki/lib/plugins/styling/script.js
deleted file mode 100644
index 074c8dc..0000000
--- a/wiki/lib/plugins/styling/script.js
+++ /dev/null
@@ -1,97 +0,0 @@
-/* DOKUWIKI:include_once iris.js */
-
-jQuery(function () {
-
-    /**
-     * Function to reload the preview styles in the main window
-     *
-     * @param {Window} target the main window
-     */
-    function applyPreview(target) {
-        // remove style
-        var $style = target.jQuery('link[rel=stylesheet][href*="lib/exe/css.php"]');
-        $style.attr('href', '');
-
-        // append the loader screen
-        var $loader = target.jQuery('#plugin__styling_loader');
-        if (!$loader.length) {
-            $loader = target.jQuery('<div id="plugin__styling_loader">' + LANG.plugins.styling.loader + '</div>');
-            $loader.css({
-                'position':         'absolute',
-                'width':            '100%',
-                'height':           '100%',
-                'top':              0,
-                'left':             0,
-                'z-index':          5000,
-                'background-color': '#fff',
-                'opacity':          '0.7',
-                'color':            '#000',
-                'font-size':        '2.5em',
-                'text-align':       'center',
-                'line-height':      1.5,
-                'padding-top':      '2em'
-            });
-            target.jQuery('body').append($loader);
-        }
-
-        // load preview in main window (timeout works around chrome updating CSS weirdness)
-        setTimeout(function () {
-            var now = new Date().getTime();
-            $style.attr('href', DOKU_BASE + 'lib/exe/css.php?preview=1&tseed=' + now);
-        }, 500);
-    }
-
-    var doreload = 1;
-    var $styling_plugin = jQuery('#plugin__styling');
-
-    // if we are not on the plugin page (either main or popup)
-    if (!$styling_plugin.length) {
-        // handle the preview cookie
-        if(DokuCookie.getValue('styling_plugin') == 1) {
-            applyPreview(window);
-        }
-        return; // nothing more to do here
-    }
-
-    /* ---- from here on we're in the popup or admin page ---- */
-
-    // add the color picker
-    $styling_plugin.find('.color').iris({});
-
-    // add button on main page
-    if (!$styling_plugin.hasClass('ispopup')) {
-        var $form = $styling_plugin.find('form.styling').first();
-        var $btn = jQuery('<button>' + LANG.plugins.styling.popup + '</button>');
-        $form.prepend($btn);
-
-        $btn.click(function (e) {
-            var windowFeatures = "menubar=no,location=no,resizable=yes,scrollbars=yes,status=false,width=500,height=500";
-            window.open(DOKU_BASE + 'lib/plugins/styling/popup.php', 'styling_popup', windowFeatures);
-            e.preventDefault();
-            e.stopPropagation();
-        }).wrap('<p></p>');
-        return; // we exit here if this is not the popup
-    }
-
-    /* ---- from here on we're in the popup only ---- */
-
-    // reload the main page on close
-    window.onunload = function(e) {
-        if(doreload) {
-            window.opener.DokuCookie.setValue('styling_plugin', 0);
-            window.opener.document.location.reload();
-        }
-        return null;
-    };
-
-    // don't reload on our own buttons
-    jQuery(':button').click(function(e){
-        doreload = false;
-    });
-
-    // on first load apply preview
-    applyPreview(window.opener);
-
-    // enable the preview cookie
-    window.opener.DokuCookie.setValue('styling_plugin', 1);
-});
diff --git a/wiki/lib/plugins/styling/style.less b/wiki/lib/plugins/styling/style.less
deleted file mode 100644
index be0e16a..0000000
--- a/wiki/lib/plugins/styling/style.less
+++ /dev/null
@@ -1,13 +0,0 @@
-#plugin__styling {
-    button.primary {
-        font-weight: bold;
-    }
-
-    [dir=rtl] & table input {
-        text-align: right;
-    }
-}
-
-#plugin__styling_loader {
-    display: none;
-}