DokuWiki

It's better when it's simple

User Tools

Site Tools


plugin:styler

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
plugin:styler [2021-02-27 13:38] – Add links to repo & issues AnaelMobiliaplugin:styler [2022-09-26 02:10] – Remove code provided for 2007-07-23 release (+15 years ago) 2a01:cb15:82a0:3700:7cd6:8614:1a6e:a7da
Line 7: Line 7:
 type       : syntax type       : syntax
 lastupdate : 2021-02-27 lastupdate : 2021-02-27
-compatible : 2020-07-29 "Hogfather", 2018-04-22 "Greebo", 2017-02-19 "Frusterick Manners", 2016-06-26 "Elenor Of Tsort"+compatible : 2022-07-31 "Igor", 2020-07-29 "Hogfather", 2018-04-22 "Greebo", 2017-02-19 "Frusterick Manners", 2016-06-26 "Elenor Of Tsort"
 depends    :  depends    : 
 conflicts  conflicts 
Line 36: Line 36:
   * ''box'' - To draw a framework around of the block;   * ''box'' - To draw a framework around of the block;
   * ''background'' - To fill in a background with solid color.   * ''background'' - To fill in a background with solid color.
- 
- 
- 
-===== Contribution: StylerPlus ===== 
-:!: This code is for 2007-07-23 release ONLY. It need to be adapted to be used with 2021-02-27 release. 
- 
-A contribution for this great plugin. This extends the attributes to allow to select background and border colors in a block, width size, and nested blocks. 
- --- //[[victorcastelan@gmail.com|victor castelan]] 2008/10/17 08:01// 
- 
-The extend attributes are: 
- 
-==== Background Light Colors ==== 
- 
-To fill in with a specific background **light** color 
- 
-  * ''background'' - light gray 
-  * ''background-lwhite'' - white 
-  * ''background-lyellow'' - yellow 
-  * ''background-lorange'' - orange 
-  * ''background-lgreen'' - green 
-  * ''background-lblue'' - blue 
-  * ''background-lbrown'' - brown 
-  * ''background-lpink'' - pink 
-  * ''background-lred'' - red 
- 
-**example:** 
- 
-<code><style background-lgreen>some text</style></code> 
- 
-==== Background Dark colors ==== 
- 
-To fill in with a specific background **dark** color and text in white 
- 
-  * ''background-d'' - dark gray 
-  * ''background-dblack'' - black 
-  * ''background-dyellow'' - yellow 
-  * ''background-dorange'' - orange 
-  * ''background-dgreen'' - green 
-  * ''background-dblue'' - blue 
-  * ''background-dbrown'' - brown 
-  * ''background-dpink'' - pink 
-  * ''background-dred'' - red 
- 
-**example:** 
- 
-<code><style background-dorange>some text</style></code> 
- 
-==== Borders colors ==== 
- 
-To draw a border around of the block with a dark color; 
- 
-  * ''box'' - gray 
-  * ''box-dblack'' - black 
-  * ''box-dyellow'' - yellow 
-  * ''box-dorange'' - orange 
-  * ''box-dgreen'' - green 
-  * ''box-dblue'' - blue 
-  * ''box-dbrown'' - brown 
-  * ''box-dpink'' - pink 
-  * ''box-dred'' - red 
- 
-**example:** This fill the block with light orange and apply a dark orange border color 
- 
-<code><style background-lgreen box-dgreen>some text</style></code> 
- 
-==== Sizes ==== 
- 
-You can specify a width to your block. 
- 
-  * ''s25'' - 25% block width 
-  * ''s50'' - 50% block width 
-  * ''s75'' - 75% block width 
- 
-**example 1:** Draw two blocks in the same row (floating-left) 
- 
-<code> 
-<style background-lorange box-dorange float-left s50>some text</style> 
-<style background-lorange box-dorange float-left s50>some text</style> 
-</code> 
- 
-**example 2:** Draw three blocks in the same row (floating-left) 
- 
-<code> 
-<style background-lorange box-dorange float-left s50>some text</style> 
-<style background-lorange box-dorange float-left s25>some text</style> 
-<style background-lorange box-dorange float-left s25>some text</style> 
-</code> 
- 
-==== Clear attributes ==== 
- 
-To apply clear attribute when floating blocks 
- 
-  * ''clear-left'' 
-  * ''clear-right'' 
-  * ''clear-both'' 
- 
-==== Nested blocks ==== 
- 
-**example:** Draw a block inside other block 
- 
-<code> 
-<style background-lorange box-dorange float-left s50> 
-<style background-dgreen center>**Maybe a title in bold**</style> 
-Here your text 
-</style> 
-</code> 
- 
-===== About this ===== 
- 
-Just replace the files in the styler plugin.  
- 
-If you have installed styler, don't forget to reset the DokuWiki cache. To do this, add **?purge=true** at the end of the URL. 
- 
-===== styler.php ===== 
- 
-<code php styler.php> 
-<?php 
- 
-/** 
- * Plugin Style: More styles for DokuWiki 
- * Format: see README 
- * 
- * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html) 
- * @author     Ivan A-R <ivan@iar.spb.ru> 
- * @page       http://iar.spb.ru/projects/doku/styler 
- * @version 0.2 
- */ 
- 
-if(!defined('DOKU_INC')) define('DOKU_INC',realpath(dirname(__FILE__).'/../../').'/'); 
-if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/'); 
-require_once(DOKU_PLUGIN.'syntax.php'); 
- 
-/** 
- * All DokuWiki plugins to extend the parser/rendering mechanism 
- * need to inherit from this class 
- */ 
-class syntax_plugin_styler_styler extends DokuWiki_Syntax_Plugin { 
- 
-  /** 
-   * return some info 
-   */ 
-  function getInfo(){ 
-    return array( 
-      'author' => 'Ivan A-R', 
-      'email'  => 'ivan@iar.spb.ru', 
-      'date'   => '2007-07-23', 
-      'name'   => 'Styler plugin', 
-      'desc'   => 'More formatings: quote, epigraph, style [left, right, center, justify, float-left, float-right, box, background]', 
-      'url'    => 'http://iar.spb.ru/en/projects/doku/styler', 
-      'version' => '0.2', 
-    ); 
-  } 
- 
-  function getType(){ return 'container';} 
-  function getAllowedTypes() { return array('container','substition','protected','disabled','formatting','paragraphs'); } 
-  //function getAllowedTypes() { return array('formatting', 'substition', 'container', 'disabled'); } 
-  function getPType(){ return 'stack';} 
- 
-  function getSort(){ return 205; } 
-   
-  // override default accepts() method to allow nesting  
-  // - ie, to get the plugin accepts its own entry syntax (vmc) 
-  function accepts($mode) { 
-    if ($mode == substr(get_class($this), 7)) return true; 
-      return parent::accepts($mode); 
-    } 
- 
-  function connectTo($mode) { 
-    /*$this->Lexer->addEntryPattern('<style.*?>(?=.*?</style>)', $mode, 'plugin_styler_styler'); 
-    $this->Lexer->addEntryPattern('<quote.*?>(?=.*?</quote>)', $mode, 'plugin_styler_styler'); 
-    $this->Lexer->addEntryPattern('<epigraph.*?>(?=.*?</epigraph>)', $mode, 'plugin_styler_styler');*/ 
-    $this->Lexer->addEntryPattern('<style.*?>(?=.*?\</style>)', $mode, 'plugin_styler_styler'); 
-    $this->Lexer->addEntryPattern('<quote.*?>(?=.*?\</quote>)', $mode, 'plugin_styler_styler'); 
-    $this->Lexer->addEntryPattern('<epigraph.*?>(?=.*?\</epigraph>)', $mode, 'plugin_styler_styler'); 
-  } 
- 
-  function postConnect() { 
-    $this->Lexer->addExitPattern('</style>', 'plugin_styler_styler'); 
-    $this->Lexer->addExitPattern('</quote>', 'plugin_styler_styler'); 
-    $this->Lexer->addExitPattern('</epigraph>', 'plugin_styler_styler'); 
-  } 
- 
-  /** 
-   * Handle the match 
-   */ 
-  function handle($match, $state, $pos, &$handler){ 
-    global $conf; 
-    switch ($state) { 
-      case DOKU_LEXER_ENTER : 
-        $match = str_replace(array('<', '>'), array('', ''), $match); 
-        $attrib = preg_split('/\s+/', strtolower($match)); 
-        if ($attrib[0]) 
-        { 
-          return array(array_shift($attrib), $state, $attrib); 
-        } 
-        else 
-        { 
-          return array($match, $state, array()); 
-        } 
-      case DOKU_LEXER_UNMATCHED : return array($match, $state, array()); 
-      case DOKU_LEXER_EXIT :      return array('',     $state, array()); 
-    } 
-    return array(); 
-  } 
- 
-  /** 
-   * Create output 
-   */ 
-  function render($mode, &$renderer, $data) { 
-    global $st; 
-    global $et; 
-    global $conf; 
-    global $prt; 
-    if($mode == 'xhtml'){ 
-      switch ($data[1]) { 
-      case DOKU_LEXER_ENTER : 
-        $class = ''; 
-        foreach(array('left', 'right', 'center', 'justify', 'box', 'float-left', 'float-right', 'background', 'background-lwhite', 'background-lyellow', 'background-lorange', 'background-lgreen', 'background-lblue', 'background-lbrown', 'background-lpink', 'background-lred', 'background-dblack', 'background-dyellow', 'background-dorange', 'background-dgreen', 'background-dblue', 'background-dbrown', 'background-dpink', 'background-dred', 'background-d', 'box-dblack', 'box-dyellow', 'box-dorange', 'box-dgreen', 'box-dblue', 'box-dbrown', 'box-dpink', 'box-dred', 's25', 's50', 's75', 'clear-left', 'clear-right', 'clear-both') as $v) 
-        { 
-          if (in_array($v, $data[2])) 
-          { 
-            $class .= ' styler-'.$v; 
-          } 
-        } 
-        $renderer->doc .= "</p>\n"; // It is hack 
-        if ($data[0] == 'quote') 
-        { 
-          $renderer->doc .= '<div class="styler-quote'.$class.'">'; 
-        } 
-        elseif ($data[0] == 'epigraph') 
-        { 
-          $renderer->doc .= '<div class="epigraph'.$class.'">'; 
-        } 
-        else 
-        { 
-          $renderer->doc .= '<div class="styler'.$class.'">'; 
-        } 
-        break; 
-      case DOKU_LEXER_UNMATCHED : 
-        $renderer->doc .= $data[0]; 
-        break; 
-      case DOKU_LEXER_EXIT : 
-        $renderer->doc .= "</div>\n<p>"; // "</p>" and "\n</p>" is hack 
-        break; 
-      } 
-      return true; 
-    } 
-    return false; 
-  } 
-} 
- 
-//Setup VIM: ex: et ts=4 enc=utf-8 : 
-</code> 
- 
-> It still work, but to me the lines with 
-<code> 
-$renderer->doc .= "</p>\n"; // It is hack 
-</code> 
-> and 
-<code> 
-$renderer->doc .= "</div>\n<p>"; // "</p>" and "\n</p>" is hack 
-</code> 
-> generates invalid markup. Maybe it should be better a simple <br/> but I didn't understand the //hack//  --- [[user>gbonanome|gbonanome]] //2012/12/19 17:36// 
->> That hack was used before the [[devel:syntax_plugins#ptype|PType]] 'stack' existed. The closing and opening paragraphs should just be removed and it should be fine. --- [[user>ach|Anika Henke]] //2012/12/22 17:31// 
- 
-===== style.css ===== 
- 
-<code css style.css> 
-div.dokuwiki div.preview {margin:0 !important;} 
- 
-/* Styler */ 
-div.styler-box {border: 1px solid #cccccc; padding: 1em;}/*gray*/ 
-div.styler-box-dblack {border: 1px solid #000000; padding: 1em;} 
-div.styler-box-dyellow {border: 1px solid #ffcc33; padding: 1em;} 
-div.styler-box-dorange {border: 1px solid #ff9933; padding: 1em;} 
-div.styler-box-dgreen {border: 1px solid #33cc33; padding: 1em;} 
-div.styler-box-dblue {border: 1px solid #3366cc; padding: 1em;} 
-div.styler-box-dbrown {border: 1px solid #99cc33; padding: 1em;} 
-div.styler-box-dpink {border: 1px solid #ff66cc; padding: 1em;} 
-div.styler-box-dred {border: 1px solid #ff66cc; padding: 1em;} 
- 
-/* sizes */ 
-div.styler-s25 {width:20%} 
-div.styler-s50 {width:45%} 
-div.styler-s75 {width:70%} 
- 
-/**/ 
-/*vmc light colors*/ 
-div.styler-background { background-color: #f6f6f6 }/*gray*/ 
-div.styler-background-lwhite { background-color: #ffffff } 
-div.styler-background-lyellow { background-color: #ffffd6 } 
-div.styler-background-lorange { background-color: #ffebd6 } 
-div.styler-background-lgreen { background-color: #e0ffd6 } 
-div.styler-background-lblue { background-color: #d6e0f5 } 
-div.styler-background-lbrown { background-color: #ebe0d6 } 
-div.styler-background-lpink { background-color: #ffe0f5 } 
-div.styler-background-lred { background-color: #ffcccc } 
- 
-/*vmc dark colors*/ 
-div.styler-background-d { background-color: #333333; color:#ffffff; }/*gray*/ 
-div.styler-background-dblack { background-color: #000000; color:#ffffff; } 
-div.styler-background-dyellow { background-color: #ffcc33; color:#ffffff; } 
-div.styler-background-dorange { background-color: #ff9933; color:#ffffff; } 
-div.styler-background-dgreen { background-color: #33cc33; color:#ffffff; } 
-div.styler-background-dblue { background-color: #3366cc; color:#ffffff; } 
-div.styler-background-dbrown { background-color: #996633; color:#ffffff; } 
-div.styler-background-dpink { background-color: #ff66cc; color:#ffffff; } 
-div.styler-background-dred { background-color: #ff66cc; color:#ff0000; } 
- 
-/*div.styler-float-left { float: left; margin: 0 1em 0.5em 1em; } 
-div.styler-float-right { float: right; margin: 0 1em 0.5em 1em; }*/ 
-div.styler-float-left { float: left; margin: 0 1em 0.5em 0; } 
-div.styler-float-right { float: right; margin: 0 0 0.5em 1em; } 
- 
-/*clear*/ 
-div.styler-clear-left { clear: left; } 
-div.styler-clear-right { clear: right; } 
-div.styler-clear-both { clear: both; } 
- 
-div.styler-left { text-align: left; } 
-div.styler-right { text-align: right; } 
-div.styler-center { text-align: center; } 
-div.styler-justify { text-align: justify; } 
- 
-/* epigraph */ 
-div.epigraph { 
- margin-left: 60%; 
- margin-top: 1em; 
- margin-bottom: 1em; 
- padding-left: 1em; 
- font-family: Times New Roman, Georgia, Garamond, Times, serif; 
- font-style: italic; 
-} 
- 
-/* quote */ 
-div.styler-quote { 
- /*margin-left: 3em; */ 
- margin: 1em 0px 1em 3em; 
- border: 1px dotted #CCCCCC; 
- background: #ffffff url(images/blockquote.gif) no-repeat 0.3em 0.3em; 
- padding: 1em; 
-  
-} 
-</code> 
plugin/styler.txt · Last modified: 2023-10-31 01:06 by Klap-in

Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki