From: <de...@de...> - 2012-10-06 09:10:14
|
Author: HideyoImazu Date: 2012-10-06 04:10:08 -0500 (Sat, 06 Oct 2012) New Revision: 23534 Trac url: http://develop.twiki.org/trac/changeset/23534 Modified: twiki/trunk/core/data/TWiki/VarWEBLIST.txt twiki/trunk/core/lib/TWiki.pm Log: Item6963: WEBLIST{...} format parameter further refinement Modified: twiki/trunk/core/data/TWiki/VarWEBLIST.txt =================================================================== --- twiki/trunk/core/data/TWiki/VarWEBLIST.txt 2012-10-06 08:37:58 UTC (rev 23533) +++ twiki/trunk/core/data/TWiki/VarWEBLIST.txt 2012-10-06 09:10:08 UTC (rev 23534) @@ -6,7 +6,18 @@ * Syntax: =%<nop>WEBLIST{"format" ...}%= * Supported parameters: | *Parameter:* | *Description:* | *Default:* | - | ="format"= | Format of one line, may include =$name= (the name of the web), $qname (the name of the web in double quotes), =$indentedname= (the name of the web with parent web names replaced by indents, for use in indented lists), and =$marker= (which expands to =marker= for the item matching =selection= only) In addition, [[FormatTokens][the standard special tokens]] are handled accordingly. | ="$name"=. | + | ="format"= | Format of one line, may include following items. In addtion, [[FormatTokens][the standard special tokens]] are handled accordingly.\ + <table class="twikiTable">\ + <tr><td> *Item* </td><td> *Description* </td></tr>\ + <tr><td> =$name= </td><td> the name of the web </td></tr>\ + <tr><td> =$qname= </td><td> the name of the web in double quotes </td></tr>\ + <tr><td> =$indentedname= </td><td> the name of the web with parent web names replaced by indents, for use in indented lists </td></tr>\ + <tr><td> =$listindent= </td><td> expands to multiple-of-3 spaces for bullet (*) and numberd (1., a., etc.) lists. It's relative to the depth of the web specified by the =subwebs= parameter. See an example below. </td></tr>\ + <tr><td> =$marker= </td><td> expands to =marker= for the item matching =selection= only </td></tr>\ + <tr><td> =$web= </td><td> expands to the value specified by the =web= parameter </td></tr>\ + </table>\ + If you need to have a letter immediately after an item listed above, use =$nop()=, one of [[FormatTokens]]. e.g. =$name$nop()a= \ + | ="$name"= | | =format="format"= | (Alternative to above) | ="$name"= | | =separator=", "= | Line separator | ="$n"= (new line) | | =web=""= | if you specify =$web= in format, it will be replaced with this | =""= | @@ -16,6 +27,6 @@ | =subwebs="Sandbox"= | Show webs that are a sub-web of this one (recursivly) | =""= | | =limit="30"= | Limit number of webs to show | =""= (all) | | =overlimit="..."= | Message shown if over limit, such as: =overlimit=" * [<nop>[%<nop>SYSTEMWEB%.SiteMap][More...]]"= | =""= | - * Example: =%<nop>WEBLIST{" * [<nop>[$name.%HOMETOPIC%]]"}%= - creates a bullet list of all webs. + * Example: =%<nop>WEBLIST{"$listindent * [<nop>[$name.%HOMETOPIC%]]"}%= - creates a indented bullet list of all webs. * Example: =<form><select name="web"> %<nop>WEBLIST{"<option $marker value=$qname>$name</option>" webs="Trash, public" selection="%<nop>WEB%" separator=" "}% </select></form>= - creates a dropdown of all public webs + Trash web, with the current web highlighted. * Related: [[%IF{"'%INCLUDINGTOPIC%'='TWikiVariables'" then="#"}%VarTOPICLIST][TOPICLIST]], [[%IF{"'%INCLUDINGTOPIC%'='TWikiVariables'" then="#"}%VarSEARCH][SEARCH]], MetadataRepository, ReadOnlyAndMirrorWebs, UsingMultipleDisks Modified: twiki/trunk/core/lib/TWiki.pm =================================================================== --- twiki/trunk/core/lib/TWiki.pm 2012-10-06 08:37:58 UTC (rev 23533) +++ twiki/trunk/core/lib/TWiki.pm 2012-10-06 09:10:08 UTC (rev 23534) @@ -4287,13 +4287,18 @@ my $line = $format; $line =~ s/\$web\b/$web/g; $line =~ s/\$name\b/$item/g; - $line =~ s/\$qname/"$item"/g; + $line =~ s/\$qname\b/"$item"/g; my $indenteditem = $item; $indenteditem =~ s#/$##g; $indenteditem =~ s#\w+/#$indent#g; - $line =~ s/\$indentedname/$indenteditem/g; + $line =~ s/\$indentedname\b/$indenteditem/g; + my $listindent = ' ' x + (($item =~ tr:/::) - + ($showWeb eq '' ? 0 : ($showWeb =~ tr:/::) + 1)); + # $s =~ tr:/:: doesn't modify $s + $line =~ s/\$listindent\b/$listindent/g; my $mark = ( $selection =~ / \Q$item\E / ) ? $marker : ''; - $line =~ s/\$marker/$mark/g; + $line =~ s/\$marker\b/$mark/g; $line = expandStandardEscapes($line); push( @items, $line ); } |