DokuWiki

It's better when it's simple

User Tools

Site Tools


plugin:rack

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
plugin:rack [2011-01-19 13:59] – [Submit changes] schplurtzplugin:rack [2023-10-30 23:20] (current) Klap-in
Line 1: Line 1:
-====== rack plugin ======+====== rack Plugin ======
  
 ---- plugin ---- ---- plugin ----
-description: Displays an elevation of a datacenter rack.+description: Displays an elevation of a datacenter rack
 author     : Tyler Bletsch author     : Tyler Bletsch
 email      : Tyler.Bletsch@netapp.com email      : Tyler.Bletsch@netapp.com
 type       : syntax type       : syntax
-lastupdate : 2010-01-18 +lastupdate : 2012-08-16 
-compatible : 2009-02-14+compatible : 2009-02-14, !Hogfather, !Igor, !Jack Jackrum
 depends    :  depends    : 
 conflicts  conflicts 
-similar    :  +similar    : advrack 
-tags       : media, images, diagram+tags       : media, images, diagram, cage, rack, server
  
-downloadurl: http://dsss.be/f/dat/rack-20100301.0.zip+downloadurl: http://dsss.be/f/dat/rack-20120816.1.zip
 ---- ----
  
 ===== Download and Installation ===== ===== Download and Installation =====
  
-Download and install the plugin using the [[plugin:plugin|Plugin Manager]] using the following URL. Refer to [[:Plugins]] on how to install plugins manually.+Search and install the plugin using the [[plugin:extension|Extension Manager]]. Refer to [[:Plugins]] on how to install plugins manually.
  
-  * [[http://dsss.be/f/dat/rack-20100301.0.zip|Rack 20100301.0]]+  * [[http://dsss.be/f/dat/rack-20120816.1.zip|Rack 20120816.1]]
   * Old versions:   * Old versions:
 +    * [[http://dsss.be/f/dat/rack-20120816.0.zip|Rack 20120816.0]]
 +    * [[http://dsss.be/f/dat/rack-20100301.0.zip|Rack 20100301.0]]
     * [[http://dsss.be/f/dat/rack-20100118.0.zip|Rack 20100118.0]]     * [[http://dsss.be/f/dat/rack-20100118.0.zip|Rack 20100118.0]]
     * [[http://dsss.be/f/dat/rack-20100115.0.zip|Rack 20100115.0]]     * [[http://dsss.be/f/dat/rack-20100115.0.zip|Rack 20100115.0]]
Line 29: Line 31:
  
 ===== Update notes ===== ===== Update notes =====
 +**20120816.1**: Make "show CSV" toggleable and a few tiny tweaks.
 +
 +**20120816.0**: (1) Added "show CSV" option at the bottom for easy exporting to a spreadsheet.  (2) Committed the link improvements suggested by [[user>schplurtz]] below.
 +
 **20100301.0**: Add Josef Fortier's improved link HTML.  Also styled the links a bit. **20100301.0**: Add Josef Fortier's improved link HTML.  Also styled the links a bit.
  
Line 42: Line 48:
  
 ===== Submit changes ===== ===== Submit changes =====
 +
 If you add something useful to the plugin, [[Tyler.Bletsch@netapp.com|email me]] and post a patch or [[http://pastebin.com/|pastebin]] or something below and I'll see about folding it into the plugin. If you add something useful to the plugin, [[Tyler.Bletsch@netapp.com|email me]] and post a patch or [[http://pastebin.com/|pastebin]] or something below and I'll see about folding it into the plugin.
  
-//Put your comments/fixes here//+Currently not working with the latest stable plugin API :-(
  
-==== Proposed change ====+==== Proposed changes ==== 
 + 
 +(None) 
 + 
 + 
 +==== Changes accepted ====
  
 === Internal link and link recognized even if no name field is present === === Internal link and link recognized even if no name field is present ===
Line 56: Line 68:
 12 1 Cableguide link:http://www.example.com/ 12 1 Cableguide link:http://www.example.com/
 </rack> </rack>
-</code>\\ This can be resolved using a negative lookahead in the regexp part that matches the name field. The regexp is "either it is empty or it not starting with ''#'' or ''link:''". ie ''%%((?:"[^"]*")|(?!(?:(?:\#)|(?:link:)))\S*)?%%'' instead of ''%%((?:\"[^\"]*\")|[^#]\S*)?%%'' 
-  - Second, the ''link:somelink'' can only be an external link. With the following patch, it is now possible to use such links as ''%%link:[[page]]%%'', ''%%link:[[page|]]%%'' or ''%%link:[[ns:page|link title]]%%'' to point to internal pages. 
- 
- 
-<code diff syntax.php.patch> 
---- syntax.php.orig     2011-01-18 15:05:00.109173222 +0100 
-+++ syntax.php  2011-01-19 12:32:49.058595826 +0100 
-@@ -157,19 +157,25 @@ 
-                foreach (explode("\n",$content) as $line) { 
-                        $item = array(); 
-                        if (preg_match("/^\s*#/",$line) || !trim($line)) { continue; } # skip comments & blanks 
--                       #                     Ustart    Usize     Model                    Name?                         Color?       Link?               Comment 
--                       if (preg_match("/^\s* (\d+) \s+ (\d+) \s+ ((?:\"[^\"]*\")|\S+) \s* ((?:\"[^\"]*\")|[^#]\S*)? \s* (\#\w+)? \s* ((?=link:)\S*)? \s* (.*?)? \s* \$/x",$line,$matches)) { 
-+                       #                      Ustart    Usize     Model                 Name?                                         Color?       Link?                                                   Comment 
-+                       if (preg_match('/^\s* (\d+) \s+ (\d+) \s+ ((?:"[^"]*")|\S+) \s* ((?:"[^"]*")|(?!(?:(?:\#)|(?:link:)))\S*)? \s* (\#\w+)? \s* ( link: (?: (?:\[\[[^]|]+(?:\|[^]]*)?]]) | \S* ) )? \s* (.*?)? \s* $/x',$line,$matches)) { 
-                                $item['u_bottom'] = $matches[1]; 
-                                $item['u_size'] = $matches[2]; 
-                                $item['model'] = preg_replace('/^"/','',preg_replace('/"$/','',$matches[3])); 
-                                $item['name'] = preg_replace('/^"/','',preg_replace('/"$/','',$matches[4])); 
-                                $item['color'] = $matches[5] ? $matches[5] : $this->autoselect_color($item); 
-+                               $item['linktitle'] = ''; 
-                                $item['link'] = substr($matches[6], 5); 
-+                               if( '[' == substr($item['link'], 0, 1)) { 
-+                                               if(preg_match( '/^\[\[[^|]+\|([^]]+)]]$/', $item['link'], $titlematch )) 
-+                                                       $item['linktitle']=' title="'.hsc($titlematch[1]). '"'; 
-+                                       $item['link']=wl(cleanID(preg_replace( '/^\[\[([^]|]+).*/', '$1', $item['link'] ))); 
-+                               } 
-                                $item['comment'] = $matches[7]; 
-                                $item['u_top'] = $item['u_bottom'] + ($opt['descending']?-1:1)*($item['u_size'] - 1); 
-                                $items[$item['u_top']] = $item; 
-                        } else { 
--                               $renderer->doc .= "Syntax error on the following line: <pre style='color:red'>$line</pre>\n"; 
-+                               $renderer->doc .= 'Syntax error on the following line: <pre style="color:red">'.hsc($line)."</pre>\n"; 
-                        } 
-                } 
-  
-@@ -187,7 +193,7 @@ 
-                                $renderer->doc .=  
-                                        "<tr><th>$u</th>". 
-                                        "<td class='item' rowspan='$item[u_size]' style='background-color: $item[color];' title=\"".htmlspecialchars($item['comment'])."\">". 
--                                       ($item['link'] ? "<a href=\"$item[link]\">" : ''). 
-+                                       ($item['link'] ? '<a href="'.$item['link'].'"'.$item['linktitle'].'>' : ''). 
-                                        "<div style='float: left; font-weight:bold;'>". 
-                                                "$item[model]" . 
-                                                ($item['comment'] ? ' *' : ''). 
 </code> </code>
 +  - Second, the ''link:somelink'' can only be an external link. With the //recently accepted// patch, it is now possible to use such links as ''%%link:[[page]]%%'', ''%%link:[[page|]]%%'' or ''%%link:[[ns:page|link title]]%%'' to point to internal pages.
 +
  --- [[user>schplurtz]] //2011/01/19 11:50//  --- [[user>schplurtz]] //2011/01/19 11:50//
-==== Changes accepted ====+ 
 + --- Edited //2011/01/19 11:50// by Tyler Bletsch to accept this patch
  
 === URL Add by Sylvain Bigonneau === === URL Add by Sylvain Bigonneau ===
Line 169: Line 139:
 </code> </code>
  
-{{http://dsss.be/i/img/rackwiki.png|Because dokuwiki.org doesn't have my plugin installed, this is just an image, not the real thing}}+{{http://dsss.be/i/img/rackwiki.png?recache|Because dokuwiki.org doesn't have my plugin installed, this is just an image, not the real thing}}
  
 If you want to add new auto-coloring options, edit ''syntax.php'' and add conditionals to the ''autoselect_color'' function. If you want to add new auto-coloring options, edit ''syntax.php'' and add conditionals to the ''autoselect_color'' function.
Line 178: Line 148:
 ===== Legalities ===== ===== Legalities =====
 The usual: Author assumes no responsibility for this software, use at your own risk.  Don't sue me. The usual: Author assumes no responsibility for this software, use at your own risk.  Don't sue me.
 +
 +
 +===== BUG! Broken upgrade =====
 +
 +If i click on "upgrade" button in plugin manager, this will get reinstalled, but stays listed as "upgradeable". DokuWiki still thinks that there is upgrade available even when it's the same old version.
 +
 +==== FIX: ====
 +
 +You can provide a plugin.info.txt under the plugin folder (./lib/plugins/rack/)
 +<code txt plugin.info.txt>
 +base   rack
 +author Tyler Bletsch
 +date   2012-08-16
 +name   rack
 +desc   Displays an elevation of a datacenter rack
 +url    https://www.dokuwiki.org/plugin:rack
 +</code>
 +
 +===== Managed to make it work under Release 2022-07-31a "Igor" =====
 +
 +Replace line 97 with this:
 +
 + 97     function handle($match, $state, $pos, Doku_Handler $handler){
 +
 +and replace line 145 with this:
 +
 +145     function render($mode, Doku_Renderer $renderer, $opt) {
 +
  
plugin/rack.1295441999.txt.gz · Last modified: 2011-01-19 13:59 by schplurtz

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