[docs] docs - bill modified 5 files

docs@interchange.redhat.com docs@interchange.redhat.com
Thu Oct 11 14:25:01 2001


User:      bill
Date:      2001-10-11 18:24:23 GMT
Modified:  .        TODO ictags.sdf
Added:     .        unfinished.tag.list
Added:     scripts/throwaway merge.pl tagformat
Log:
This update introduces the formatting changes to the ictags document.
I thought it would be best to consolidate the changes that standardize
the formatting of tag entries.  There should be no changes to real content
in this release; see the list below of tags that have been reformatted.

The new file, 'unfinished.tag.list' contains the list of tags whose
documentation still needs to be completed, updated and/or tested.

The scripts in ./scripts/throwaway are for converting output of either
'Tagref.pm' or my own abbreviated .sdf into the standard tag entry format.

Here is the list of tags whose entries I have reformatted in this update:

--------------------------
and
attr_list
bounce
cart
catch
cgi
checked
control
control_set
counter
currency
data
default
description
discount
dump
ecml
either
error
export
field
file
filter
flag
fly_list
fly_tax
handling
harness
html_table
if
import
include
index
item_list
label
log
loop
mail
nitems
options
or
price
row
salestax
scratch
search_region
selected
set
seti
setlocale
shipping
soap
subtotal
tag
time
timed_build
tmp
total_cost
tree
update
userdb
value_extended

--------------------------------

--Bill

Revision  Changes    Path
1.13      +3 -0      docs/TODO


rev 1.13, prev_rev 1.12
Index: TODO
===================================================================
RCS file: /anon_cvs/docs/TODO,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- TODO	2001/05/04 14:18:39	1.12
+++ TODO	2001/10/11 18:24:22	1.13
@@ -102,3 +102,6 @@
 A public Web directory for inline image graphic files is needed. Interchange does not serve the images, only the HTML tags calling them. A useful convention is to place all buttonbars, backgrounds, and icons in the /images directory, with the catalog items located in the /images/catalog directory. Regardless of the directory structure, an I<absolute path> must be used. Relative paths are unacceptable. Use the I<ImageDir> directive, which places that as the absolute path in front of all relative IMG and INPUT SRC, and BODY, TABLE, TR, TH, and TD BACKGROUND specifications.
 
 -----------------------------------------------------------------------------
+ictags.sdf
+  See unfinished.tag.list
+-----------------------------------------------------------------------------



1.63      +4753 -728 docs/ictags.sdf


rev 1.63, prev_rev 1.62
Index: ictags.sdf
===================================================================
RCS file: /anon_cvs/docs/ictags.sdf,v
retrieving revision 1.62
retrieving revision 1.63
diff -u -r1.62 -r1.63
--- ictags.sdf	2001/10/10 00:47:33	1.62
+++ ictags.sdf	2001/10/11 18:24:22	1.63
@@ -1,10 +1,10 @@
 !init OPT_LOOK="akopia"; OPT_STYLE="manual" 
-# $Id: ictags.sdf,v 1.62 2001/10/10 00:47:33 jon Exp $
+# $Id: ictags.sdf,v 1.63 2001/10/11 18:24:22 bill Exp $
 
 !define DOC_NAME "Interchange Tags Reference"
 !define DOC_TYPE ""
 !define DOC_CODE "ictags"
-!define DOC_VERSION substr('$Revision: 1.62 $', 11, -2)
+!define DOC_VERSION substr('$Revision: 1.63 $', 11, -2)
 !define DOC_STATUS "Draft"
 !define DOC_PROJECT "Interchange"
 !define DOC_URL "http://interchange.redhat.com/doc/ictags.html"
@@ -1788,6 +1788,75 @@
 
  
 
+# BEGIN ############### and Summary Tables ####################
+!block example;
+    [B<and> type term op compare]
+!endblock
+
+!block table; colvaligns="TTT"; format="262"
+Parameters|Description|Default
+{{CMD[jump="#and_type"]base}}|<<
+Alias for type
+>>|DEFAULT_VALUE
+{{CMD[jump="#and_compare"]comp}}|<<
+Alias for compare
+>>|DEFAULT_VALUE
+{{CMD[jump="#and_compare"]compare}}|<<
+>>|DEFAULT_VALUE
+{{CMD[jump="#and_op"]op}}|<<
+>>|DEFAULT_VALUE
+{{CMD[jump="#and_op"]operator}}|<<
+Alias for op
+>>|DEFAULT_VALUE
+{{CMD[jump="#and_term"]term}}|<<
+>>|DEFAULT_VALUE
+{{CMD[jump="#and_type"]type}}|<<
+>>|DEFAULT_VALUE
+!endblock
+
+!block table; colvaligns="TT"
+Attributes|Default
+{{CMD[jump="#attr_interpolate"]interpolate (reparse)}}|I<No>
+!endblock
+
+!block table; headings=1; colvaligns="TT"
+A|B
+Other_Charactreristics|
+Invalidates cache|I<no>
+Container tag|I<No>
+Has Subtags|I<No>
+Nests|I<Yes>
+!endblock
+
+
+B<Tag expansion example:>
+
+!block example
+   [and type term op compare]
+---
+   TAGRESULT
+!endblock
+
+
+B<ASP-like Perl call:>
+
+!block example; lang="Perl"
+   $Tag->and(  { compare => VALUE_compare
+                  op => VALUE_op
+                  term => VALUE_term
+                  type => VALUE_type
+}, $body  );
+!endblock
+
+or similarly with positional parameters,
+
+!block example; lang="Perl"
+    $Tag->and(type,term,op,compare, $attribute_hash_reference, $body);
+!endblock
+
+# END +++++++++++++++ and End Summary Tables ++++++++++++++++++++
+
+
 H3: Description
 
 The [and ...] tag is only used in conjunction with [if ...]. Example:
@@ -1805,6 +1874,26 @@
 
 
 
+
+# BEGIN ########### and Subsections ##############
+H4: {{CMD[id="and_compare"]compare}}
+
+
+
+H4: {{CMD[id="and_op"]op}}
+
+
+
+H4: {{CMD[id="and_term"]term}}
+
+
+
+H4: {{CMD[id="and_type"]type}}
+
+
+
+# END ++++++++++++ and Subsections +++++++++++++
+
 H2: area
 
 N:Alias:  B<href>
@@ -1990,7 +2079,7 @@
 Allows you to assign numeric values to preempt calculation of one or more of the
 following N<tags:>
 
-* E<lbracket>{{C[jump="#handling"]handling}}],
+E<lbracket>{{C[jump="#handling"]handling}}],
 E<lbracket>{{C[jump="#salestax"]salestax}}],
 E<lbracket>{{C[jump="#shipping"]shipping}}], and
 E<lbracket>{{C[jump="#subtotal"]subtotal}}]
@@ -2055,7 +2144,7 @@
 The C<assign> tag allows you to assign numeric override values to one
 or more of the following N<tags:>
 
-* E<lbracket>{{C[jump="#handling"]handling}}],
+E<lbracket>{{C[jump="#handling"]handling}}],
 E<lbracket>{{C[jump="#salestax"]salestax}}],
 E<lbracket>{{C[jump="#shipping"]shipping}}], and
 E<lbracket>{{C[jump="#subtotal"]subtotal}}]
@@ -2181,6 +2270,58 @@
 
  
 
+# BEGIN ############### attr_list Summary Tables ####################
+!block example;
+    [B<attr_list> hash]
+!endblock
+
+!block table; colvaligns="TTT"; format="262"
+Parameters|Description|Default
+{{CMD[jump="#attr_list_hash"]hash}}|<<
+>>|DEFAULT_VALUE
+!endblock
+
+!block table; colvaligns="TT"
+Attributes|Default
+{{CMD[jump="#attr_interpolate"]interpolate}}|I<No>
+{{CMD[jump="#attr_reparse"]reparse}}|I<Yes>
+!endblock
+
+!block table; headings=1; colvaligns="TT"
+A|B
+Other_Charactreristics|
+Invalidates cache|I<no>
+Container tag|I<Yes>
+Has Subtags|I<No>
+Nests|I<No>
+!endblock
+
+
+B<Tag expansion example:>
+
+!block example
+   [attr_list hash]
+---
+   TAGRESULT
+!endblock
+
+
+B<ASP-like Perl call:>
+
+!block example; lang="Perl"
+   $Tag->attr_list(  { hash => VALUE_hash
+}, $body  );
+!endblock
+
+or similarly with positional parameters,
+
+!block example; lang="Perl"
+    $Tag->attr_list(hash, $attribute_hash_reference, $body);
+!endblock
+
+# END +++++++++++++++ attr_list End Summary Tables ++++++++++++++++++++
+
+
 H3: Description
 
 Tags an attribute list with values from a hash. Designed for use in
@@ -2233,6 +2374,14 @@
 otherwise.
 
 
+
+# BEGIN ########### attr_list Subsections ##############
+H4: {{CMD[id="attr_list_hash"]hash}}
+
+
+
+# END ++++++++++++ attr_list Subsections +++++++++++++
+
 H2: banner
 
 Implements random or rotating banner ads. See also
@@ -2437,6 +2586,60 @@
 
  
 
+# BEGIN ############### bounce Summary Tables ####################
+!block example;
+    [B<bounce> href if]
+!endblock
+
+!block table; colvaligns="TTT"; format="262"
+Parameters|Description|Default
+{{CMD[jump="#bounce_href"]href}}|<<
+>>|DEFAULT_VALUE
+{{CMD[jump="#bounce_if"]if}}|<<
+>>|DEFAULT_VALUE
+!endblock
+
+!block table; colvaligns="TT"
+Attributes|Default
+{{CMD[jump="#attr_interpolate"]interpolate (reparse)}}|I<No>
+!endblock
+
+!block table; headings=1; colvaligns="TT"
+A|B
+Other_Charactreristics|
+Invalidates cache|I<no>
+Container tag|I<No>
+Has Subtags|I<No>
+Nests|I<Yes>
+!endblock
+
+
+B<Tag expansion example:>
+
+!block example
+   [bounce href if]
+---
+   TAGRESULT
+!endblock
+
+
+B<ASP-like Perl call:>
+
+!block example; lang="Perl"
+   $Tag->bounce(  { href => VALUE_href
+                     if => VALUE_if
+}, $body  );
+!endblock
+
+or similarly with positional parameters,
+
+!block example; lang="Perl"
+    $Tag->bounce(href,if, $attribute_hash_reference, $body);
+!endblock
+
+# END +++++++++++++++ bounce End Summary Tables ++++++++++++++++++++
+
+
 H3: Description
 
 The [bounce ...] tag is designed to send an HTTP redirect (302 status code)
@@ -2477,6 +2680,18 @@
 
 
 
+
+# BEGIN ########### bounce Subsections ##############
+H4: {{CMD[id="bounce_href"]href}}
+
+
+
+H4: {{CMD[id="bounce_if"]if}}
+
+
+
+# END ++++++++++++ bounce Subsections +++++++++++++
+
 H2: calc
 
 Calculates the value of the enclosed arithmetic expression.
@@ -2565,6 +2780,57 @@
 
  
 
+# BEGIN ############### cart Summary Tables ####################
+!block example;
+    [B<cart> name]
+!endblock
+
+!block table; colvaligns="TTT"; format="262"
+Parameters|Description|Default
+{{CMD[jump="#cart_name"]name}}|<<
+>>|DEFAULT_VALUE
+!endblock
+
+!block table; colvaligns="TT"
+Attributes|Default
+{{CMD[jump="#attr_interpolate"]interpolate (reparse)}}|I<No>
+!endblock
+
+!block table; headings=1; colvaligns="TT"
+A|B
+Other_Charactreristics|
+Invalidates cache|I<YES>
+Container tag|I<No>
+Has Subtags|I<No>
+Nests|I<Yes>
+!endblock
+
+
+B<Tag expansion example:>
+
+!block example
+   [cart name]
+---
+   TAGRESULT
+!endblock
+
+
+B<ASP-like Perl call:>
+
+!block example; lang="Perl"
+   $Tag->cart(  { name => VALUE_name
+}, $body  );
+!endblock
+
+or similarly with positional parameters,
+
+!block example; lang="Perl"
+    $Tag->cart(name, $attribute_hash_reference, $body);
+!endblock
+
+# END +++++++++++++++ cart End Summary Tables ++++++++++++++++++++
+
+
 H3: Description
 
 
@@ -2573,6 +2839,14 @@
 
 
 
+
+# BEGIN ########### cart Subsections ##############
+H4: {{CMD[id="cart_name"]name}}
+
+
+
+# END ++++++++++++ cart Subsections +++++++++++++
+
 H2: catch
 
 The page content contained within the E<lbracket>C<catch> I<label>]E<lbracket>C</catch>] block executes if the correspondingly labelled  {{C[jump="#try"]try}} block fails.
@@ -2677,6 +2951,51 @@
 {{CMD[jump="#try"]try}}
 
 
+# BEGIN ############### catch Summary Tables ####################
+!block example;
+    [B<catch> ]
+!endblock
+
+!block table; colvaligns="TT"
+Attributes|Default
+{{CMD[jump="#attr_interpolate"]interpolate (reparse)}}|I<No>
+!endblock
+
+!block table; headings=1; colvaligns="TT"
+A|B
+Other_Charactreristics|
+Invalidates cache|I<No>
+Container tag|I<No>
+Has Subtags|I<No>
+Nests|I<Yes>
+!endblock
+
+
+B<Tag expansion example:>
+
+!block example
+   [catch ]
+---
+   TAGRESULT
+!endblock
+
+
+B<ASP-like Perl call:>
+
+!block example; lang="Perl"
+   $Tag->catch(  { 
+}, $body  );
+!endblock
+
+or similarly with positional parameters,
+
+!block example; lang="Perl"
+    $Tag->catch(, $attribute_hash_reference, $body);
+!endblock
+
+# END +++++++++++++++ catch End Summary Tables ++++++++++++++++++++
+
+
 H3: Description
 
 The page content contained within the E<lbracket>C<catch> I<label>]E<lbracket>C</catch>] block executes if the correspondingly labelled  {{C[jump="#try"]try}} block fails. The catch block executes in place on the page if triggered (I<i.e.>, it does not return its result in place of the try block).
@@ -2704,6 +3023,7 @@
 This is the label specifying the corresponding E<lbracket>{{C[jump="#try"]try}} block. Defaults to 'default'.
 
 
+
 H2: cgi
 
 
@@ -2736,24 +3056,83 @@
 
  
 
-H3: Description
+# BEGIN ############### cgi Summary Tables ####################
+!block example;
+    [B<cgi> name]
+!endblock
 
-Displays the value of a CGI variable B<submitted to the current page>. This
-is similar to E<lbracket>{{C[jump="#value"]value}} ...], except it displays the transitory values that
-are submitted with every request.
+!block table; colvaligns="TTT"; format="262"
+Parameters|Description|Default
+{{CMD[jump="#cgi_name"]name}}|<<
+>>|DEFAULT_VALUE
+!endblock
 
-For instance, if you access the following URL:
+!block table; colvaligns="TT"
+Attributes|Default
+{{CMD[jump="#attr_interpolate"]interpolate (reparse)}}|I<No>
+!endblock
 
->        http://VENDURL/pagename?foo=bar
+!block table; headings=1; colvaligns="TT"
+A|B
+Other_Charactreristics|
+Invalidates cache|I<YES>
+Container tag|I<No>
+Has Subtags|I<No>
+Nests|I<Yes>
+!endblock
 
-C<bar> will be substituted for C<[cgi foo]>.
 
-This is the same as $CGI->{foo} in embedded Perl.
+B<Tag expansion example:>
 
+!block example
+   [cgi name]
+---
+   TAGRESULT
+!endblock
 
 
+B<ASP-like Perl call:>
+
+!block example; lang="Perl"
+   $Tag->cgi(  { name => VALUE_name
+}, $body  );
+!endblock
+
+or similarly with positional parameters,
+
+!block example; lang="Perl"
+    $Tag->cgi(name, $attribute_hash_reference, $body);
+!endblock
+
+# END +++++++++++++++ cgi End Summary Tables ++++++++++++++++++++
+
+
+H3: Description
+
+Displays the value of a CGI variable B<submitted to the current page>. This
+is similar to E<lbracket>{{C[jump="#value"]value}} ...], except it displays the transitory values that
+are submitted with every request.
+
+For instance, if you access the following URL:
+
+>        http://VENDURL/pagename?foo=bar
+
+C<bar> will be substituted for C<[cgi foo]>.
+
+This is the same as $CGI->{foo} in embedded Perl.
+
+
+
+
+
+
+# BEGIN ########### cgi Subsections ##############
+H4: {{CMD[id="cgi_name"]name}}
+
 
 
+# END ++++++++++++ cgi Subsections +++++++++++++
+
 H2: checked
 
 
@@ -2789,6 +3168,61 @@
 
  
 
+# BEGIN ############### checked Summary Tables ####################
+!block example;
+    [B<checked> name valueI<other_named_attributes>]
+!endblock
+
+!block table; colvaligns="TTT"; format="262"
+Parameters|Description|Default
+{{CMD[jump="#checked_name"]name}}|<<
+>>|DEFAULT_VALUE
+{{CMD[jump="#checked_value"]value}}|<<
+>>|DEFAULT_VALUE
+!endblock
+
+!block table; colvaligns="TT"
+Attributes|Default
+{{CMD[jump="#checked_ATT1"]ATT1}}|I<none>
+{{CMD[jump="#attr_interpolate"]interpolate (reparse)}}|I<No>
+!endblock
+
+!block table; headings=1; colvaligns="TT"
+A|B
+Other_Charactreristics|
+Invalidates cache|I<YES>
+Container tag|I<No>
+Has Subtags|I<No>
+Nests|I<Yes>
+!endblock
+
+
+B<Tag expansion example:>
+
+!block example
+   [checked name value]
+---
+   TAGRESULT
+!endblock
+
+
+B<ASP-like Perl call:>
+
+!block example; lang="Perl"
+   $Tag->checked(  { name => VALUE_name
+                      value => VALUE_value
+}, $body  );
+!endblock
+
+or similarly with positional parameters,
+
+!block example; lang="Perl"
+    $Tag->checked(name,value, $attribute_hash_reference, $body);
+!endblock
+
+# END +++++++++++++++ checked End Summary Tables ++++++++++++++++++++
+
+
 H3: Description
 
 
@@ -2821,60 +3255,115 @@
 
 
 
-H2: control
 
-Returns named scratchpad field or copies named scratch variable to scratchpad. Returns value specified by 'default' attribute if scratchpad variable is undefined or empty. Calling without a name moves to next scratchpad. Calling without a name and 'reset=1' returns to first scratchpad page.
+# BEGIN ########### checked Subsections ##############
+H4: {{CMD[id="checked_name"]name}}
 
 
-H3: Summary
 
-\Parameters: B<name default>
+H4: {{CMD[id="checked_value"]value}}
 
-* name
-** Name of scratchpad variable to set or return
 
-* default
-** Value to return if scratchpad variable missing or empty
 
-Attributes
-* reset (must not specify name; may specify default)
-** Resets scratchpad (i.e. $::Control array) by setting special scratch variable 'control_index' to 0. Control_index is an index into the $::Control == $Vend::Session->{control} array of hashrefs.
+# END ++++++++++++ checked Subsections +++++++++++++
 
-* set
-** Copies named scratch variable (i.e., from $::Scratch) to scratchpad with current control index.
+H2: control
 
+Returns named scratchpad field or copies named scratch variable to scratchpad. Returns value specified by 'default' attribute if scratchpad variable is undefined or empty. Calling without a name moves to next scratchpad. Calling without a name and 'reset=1' returns to first scratchpad page.
 
 
-B<The attribute hash reference is passed> to the subroutine after
-the parameters as the last argument.
-B<This may mean that there are parameters not shown here.>
+H3: Summary
 
-Must pass named parameter interpolate=1 to cause interpolation.
+!block example;
+    [B<control> name defaultI<other_named_attributes>]
+!endblock
 
-Invalidates cache: B<no>
+!block table; colvaligns="TTT"; format="262"
+Parameters|Description|Default
+{{CMD[jump="#control_default"]default}}|<<
+Value to return if scratchpad variable missing or empty
+>>|DEFAULT_VALUE
+{{CMD[jump="#control_name"]name}}|<<
+Name of scratchpad variable to set or return
+>>|DEFAULT_VALUE
+{{CMD[jump="#control_reset"]reset}}|<<
+Resets scratchpad (i.e. $::Control array) by setting special scratch variable 'control_index' to 0. Control_index is an index into the $::Control == $Vend::Session->{control} array of hashrefs.
+* (must not specify name; may specify default)
+>>|DEFAULT_VALUE
+{{CMD[jump="#control_set"]set}}|<<
+Copies named scratch variable (i.e., from $::Scratch) to scratchpad with current control index.
+>>|DEFAULT_VALUE
+!endblock
 
-Called Routine: 
+!block table; colvaligns="TT"
+Attributes|Default
+{{CMD[jump="#control_ATT1"]ATT1}}|I<none>
+{{CMD[jump="#attr_interpolate"]interpolate (reparse)}}|I<No>
+!endblock
+
+!block table; headings=1; colvaligns="TT"
+A|B
+Other_Charactreristics|
+Invalidates cache|I<no>
+Container tag|I<No>
+Has Subtags|I<No>
+Nests|I<Yes>
+!endblock
+
+
+B<Tag expansion example:>
 
+!block example
+   [control name default]
+---
+   TAGRESULT
+!endblock
+
+
 B<ASP-like Perl call:>
 
->    $Tag->control(
->        {
->         name => VALUE,
->         default => VALUE,
->        }
->    )
->
-> OR
->
->    $Tag->control($name, $default, $ATTRHASH);
+!block example; lang="Perl"
+   $Tag->control(  { default => VALUE_default
+                      name => VALUE_name
+}, $body  );
+!endblock
 
- 
+or similarly with positional parameters,
+
+!block example; lang="Perl"
+    $Tag->control(name,default, $attribute_hash_reference, $body);
+!endblock
 
 H3: Description
 
 Returns named scratchpad field or copies named scratch variable to scratchpad. Returns value specified by 'default' attribute if scratchpad variable is undefined or empty. Calling without a name moves to next scratchpad. Calling without a name and 'reset=1' returns to first scratchpad page.
 
 
+
+# BEGIN ############ control Subsections ##############
+H4: {{CMD[id="control_default"]default}}
+
+Value to return if scratchpad variable missing or empty
+
+
+H4: {{CMD[id="control_name"]name}}
+
+Name of scratchpad variable to set or return
+
+
+H4: {{CMD[id="control_reset"]reset}}
+
+Resets scratchpad (i.e. $::Control array) by setting special scratch variable 'control_index' to 0. Control_index is an index into the $::Control == $Vend::Session->{control} array of hashrefs.
+* (must not specify name; may specify default)
+
+
+H4: {{CMD[id="control_set"]set}}
+
+Copies named scratch variable (i.e., from $::Scratch) to scratchpad with current control index.
+
+
+# END +++++++++++++ control Subsections ++++++++++++
+
 H2: control_set
 
 Bulk-sets scratchpad variables on the scratchpad page specified by 'index'. Note that, unlike [control], this does not copy values from scratch.
@@ -2924,11 +3413,72 @@
 
  
 
+# BEGIN ############### control_set Summary Tables ####################
+!block example;
+    [B<control_set> indexI<other_named_attributes>]
+!endblock
+
+!block table; colvaligns="TTT"; format="262"
+Parameters|Description|Default
+{{CMD[jump="#control_set_index"]index}}|<<
+>>|DEFAULT_VALUE
+!endblock
+
+!block table; colvaligns="TT"
+Attributes|Default
+{{CMD[jump="#control_set_ATT1"]ATT1}}|I<none>
+{{CMD[jump="#attr_interpolate"]interpolate}}|I<No>
+{{CMD[jump="#attr_reparse"]reparse}}|I<Yes>
+!endblock
+
+!block table; headings=1; colvaligns="TT"
+A|B
+Other_Charactreristics|
+Invalidates cache|I<no>
+Container tag|I<Yes>
+Has Subtags|I<No>
+Nests|I<No>
+!endblock
+
+
+B<Tag expansion example:>
+
+!block example
+   [control_set index]
+---
+   TAGRESULT
+!endblock
+
+
+B<ASP-like Perl call:>
+
+!block example; lang="Perl"
+   $Tag->control_set(  { index => VALUE_index
+}, $body  );
+!endblock
+
+or similarly with positional parameters,
+
+!block example; lang="Perl"
+    $Tag->control_set(index, $attribute_hash_reference, $body);
+!endblock
+
+# END +++++++++++++++ control_set End Summary Tables ++++++++++++++++++++
+
+
 H3: Description
 
 Bulk-sets scratchpad variables on the scratchpad page specified by 'index'. Note that, unlike [control], this does not copy values from scratch.
 
 
+
+# BEGIN ########### control_set Subsections ##############
+H4: {{CMD[id="control_set_index"]index}}
+
+
+
+# END ++++++++++++ control_set Subsections +++++++++++++
+
 H2: counter
 
 
@@ -2958,6 +3508,60 @@
 
 >            name ==> file
 
+# BEGIN ############### counter Summary Tables ####################
+!block example;
+    [B<counter> file]
+!endblock
+
+!block table; colvaligns="TTT"; format="262"
+Parameters|Description|Default
+{{CMD[jump="#counter_file"]file}}|<<
+>>|DEFAULT_VALUE
+{{CMD[jump="#counter_file"]name}}|<<
+Alias for file
+>>|DEFAULT_VALUE
+!endblock
+
+!block table; colvaligns="TT"
+Attributes|Default
+{{CMD[jump="#attr_interpolate"]interpolate (reparse)}}|I<No>
+!endblock
+
+!block table; headings=1; colvaligns="TT"
+A|B
+Other_Charactreristics|
+Invalidates cache|I<YES>
+Container tag|I<No>
+Has Subtags|I<No>
+Nests|I<Yes>
+!endblock
+
+
+B<Tag expansion example:>
+
+!block example
+   [counter file]
+---
+   TAGRESULT
+!endblock
+
+
+B<ASP-like Perl call:>
+
+!block example; lang="Perl"
+   $Tag->counter(  { file => VALUE_file
+}, $body  );
+!endblock
+
+or similarly with positional parameters,
+
+!block example; lang="Perl"
+    $Tag->counter(file, $attribute_hash_reference, $body);
+!endblock
+
+# END +++++++++++++++ counter End Summary Tables ++++++++++++++++++++
+
+
 H3: Description
 
 Manipulates a persistent counter, by default incrementing it and returning the new value.
@@ -2986,6 +3590,14 @@
 
 
 
+
+# BEGIN ########### counter Subsections ##############
+H4: {{CMD[id="counter_file"]file}}
+
+
+
+# END ++++++++++++ counter Subsections +++++++++++++
+
 H2: currency
 
 
@@ -3023,22 +3635,77 @@
 
  
 
-H3: Description
+# BEGIN ############### currency Summary Tables ####################
+!block example;
+    [B<currency> convert noformat]
+!endblock
 
+!block table; colvaligns="TTT"; format="262"
+Parameters|Description|Default
+{{CMD[jump="#currency_convert"]convert}}|<<
+>>|DEFAULT_VALUE
+{{CMD[jump="#currency_noformat"]noformat}}|<<
+>>|DEFAULT_VALUE
+!endblock
 
-When passed a value of a single number, formats it according to the
-currency specification. For instance:
+!block table; colvaligns="TT"
+Attributes|Default
+{{CMD[jump="#attr_interpolate"]interpolate}}|I<No>
+{{CMD[jump="#attr_reparse"]reparse}}|I<Yes>
+!endblock
 
->    [currency]4[/currency]
+!block table; headings=1; colvaligns="TT"
+A|B
+Other_Charactreristics|
+Invalidates cache|I<no>
+Container tag|I<Yes>
+Has Subtags|I<No>
+Nests|I<No>
+!endblock
 
-will display:
 
->    4.00
+B<Tag expansion example:>
 
-or something else depending on the I<Locale> and PriceCommas settings. It
-can contain a [calc] region. If the optional "convert" parameter is set,
-it will convert the value according to PriceDivide> for the current
-locale. If Locale is set to C<fr_FR>, and F<PriceDivide> for C<fr_FR>
+!block example
+   [currency convert noformat]
+---
+   TAGRESULT
+!endblock
+
+
+B<ASP-like Perl call:>
+
+!block example; lang="Perl"
+   $Tag->currency(  { convert => VALUE_convert
+                       noformat => VALUE_noformat
+}, $body  );
+!endblock
+
+or similarly with positional parameters,
+
+!block example; lang="Perl"
+    $Tag->currency(convert,noformat, $attribute_hash_reference, $body);
+!endblock
+
+# END +++++++++++++++ currency End Summary Tables ++++++++++++++++++++
+
+
+H3: Description
+
+
+When passed a value of a single number, formats it according to the
+currency specification. For instance:
+
+>    [currency]4[/currency]
+
+will display:
+
+>    4.00
+
+or something else depending on the I<Locale> and PriceCommas settings. It
+can contain a [calc] region. If the optional "convert" parameter is set,
+it will convert the value according to PriceDivide> for the current
+locale. If Locale is set to C<fr_FR>, and F<PriceDivide> for C<fr_FR>
 is 0.167, the following sequence
 
 >    [currency convert=1] [calc] 500.00 + 1000.00 [/calc] [/currency]
@@ -3049,6 +3716,18 @@
 
 
 
+
+# BEGIN ########### currency Subsections ##############
+H4: {{CMD[id="currency_convert"]convert}}
+
+
+
+H4: {{CMD[id="currency_noformat"]noformat}}
+
+
+
+# END ++++++++++++ currency Subsections +++++++++++++
+
 H2: data
 
 
@@ -3096,6 +3775,85 @@
 
  
 
+# BEGIN ############### data Summary Tables ####################
+!block example;
+    [B<data> table field keyI<other_named_attributes>]
+!endblock
+
+!block table; colvaligns="TTT"; format="262"
+Parameters|Description|Default
+{{CMD[jump="#data_table"]base}}|<<
+Alias for table
+>>|DEFAULT_VALUE
+{{CMD[jump="#data_key"]code}}|<<
+Alias for key
+>>|DEFAULT_VALUE
+{{CMD[jump="#data_field"]col}}|<<
+Alias for field
+>>|DEFAULT_VALUE
+{{CMD[jump="#data_field"]column}}|<<
+Alias for field
+>>|DEFAULT_VALUE
+{{CMD[jump="#data_table"]database}}|<<
+Alias for table
+>>|DEFAULT_VALUE
+{{CMD[jump="#data_field"]field}}|<<
+>>|DEFAULT_VALUE
+{{CMD[jump="#data_key"]key}}|<<
+>>|DEFAULT_VALUE
+{{CMD[jump="#data_field"]name}}|<<
+Alias for field
+>>|DEFAULT_VALUE
+{{CMD[jump="#data_key"]row}}|<<
+Alias for key
+>>|DEFAULT_VALUE
+{{CMD[jump="#data_table"]table}}|<<
+>>|DEFAULT_VALUE
+!endblock
+
+!block table; colvaligns="TT"
+Attributes|Default
+{{CMD[jump="#data_ATT1"]ATT1}}|I<none>
+{{CMD[jump="#attr_interpolate"]interpolate (reparse)}}|I<No>
+!endblock
+
+!block table; headings=1; colvaligns="TT"
+A|B
+Other_Charactreristics|
+Invalidates cache|I<no>
+Container tag|I<No>
+Has Subtags|I<No>
+Nests|I<Yes>
+!endblock
+
+
+B<Tag expansion example:>
+
+!block example
+   [data table field key]
+---
+   TAGRESULT
+!endblock
+
+
+B<ASP-like Perl call:>
+
+!block example; lang="Perl"
+   $Tag->data(  { field => VALUE_field
+                   key => VALUE_key
+                   table => VALUE_table
+}, $body  );
+!endblock
+
+or similarly with positional parameters,
+
+!block example; lang="Perl"
+    $Tag->data(table,field,key, $attribute_hash_reference, $body);
+!endblock
+
+# END +++++++++++++++ data End Summary Tables ++++++++++++++++++++
+
+
 H3: Description
 
 
@@ -3152,6 +3910,22 @@
 
 
 
+
+# BEGIN ########### data Subsections ##############
+H4: {{CMD[id="data_field"]field}}
+
+
+
+H4: {{CMD[id="data_key"]key}}
+
+
+
+H4: {{CMD[id="data_table"]table}}
+
+
+
+# END ++++++++++++ data Subsections +++++++++++++
+
 H2: default
 
 
@@ -3187,6 +3961,61 @@
 
  
 
+# BEGIN ############### default Summary Tables ####################
+!block example;
+    [B<default> name defaultI<other_named_attributes>]
+!endblock
+
+!block table; colvaligns="TTT"; format="262"
+Parameters|Description|Default
+{{CMD[jump="#default_default"]default}}|<<
+>>|DEFAULT_VALUE
+{{CMD[jump="#default_name"]name}}|<<
+>>|DEFAULT_VALUE
+!endblock
+
+!block table; colvaligns="TT"
+Attributes|Default
+{{CMD[jump="#default_ATT1"]ATT1}}|I<none>
+{{CMD[jump="#attr_interpolate"]interpolate (reparse)}}|I<No>
+!endblock
+
+!block table; headings=1; colvaligns="TT"
+A|B
+Other_Charactreristics|
+Invalidates cache|I<YES>
+Container tag|I<No>
+Has Subtags|I<No>
+Nests|I<Yes>
+!endblock
+
+
+B<Tag expansion example:>
+
+!block example
+   [default name default]
+---
+   TAGRESULT
+!endblock
+
+
+B<ASP-like Perl call:>
+
+!block example; lang="Perl"
+   $Tag->default(  { default => VALUE_default
+                      name => VALUE_name
+}, $body  );
+!endblock
+
+or similarly with positional parameters,
+
+!block example; lang="Perl"
+    $Tag->default(name,default, $attribute_hash_reference, $body);
+!endblock
+
+# END +++++++++++++++ default End Summary Tables ++++++++++++++++++++
+
+
 H3: Description
 
 
@@ -3198,6 +4027,18 @@
 
 
 
+
+# BEGIN ########### default Subsections ##############
+H4: {{CMD[id="default_default"]default}}
+
+
+
+H4: {{CMD[id="default_name"]name}}
+
+
+
+# END ++++++++++++ default Subsections +++++++++++++
+
 H2: description
 
 
@@ -3231,6 +4072,60 @@
 
  
 
+# BEGIN ############### description Summary Tables ####################
+!block example;
+    [B<description> code base]
+!endblock
+
+!block table; colvaligns="TTT"; format="262"
+Parameters|Description|Default
+{{CMD[jump="#description_base"]base}}|<<
+>>|DEFAULT_VALUE
+{{CMD[jump="#description_code"]code}}|<<
+>>|DEFAULT_VALUE
+!endblock
+
+!block table; colvaligns="TT"
+Attributes|Default
+{{CMD[jump="#attr_interpolate"]interpolate (reparse)}}|I<No>
+!endblock
+
+!block table; headings=1; colvaligns="TT"
+A|B
+Other_Charactreristics|
+Invalidates cache|I<no>
+Container tag|I<No>
+Has Subtags|I<No>
+Nests|I<Yes>
+!endblock
+
+
+B<Tag expansion example:>
+
+!block example
+   [description code base]
+---
+   TAGRESULT
+!endblock
+
+
+B<ASP-like Perl call:>
+
+!block example; lang="Perl"
+   $Tag->description(  { base => VALUE_base
+                          code => VALUE_code
+}, $body  );
+!endblock
+
+or similarly with positional parameters,
+
+!block example; lang="Perl"
+    $Tag->description(code,base, $attribute_hash_reference, $body);
+!endblock
+
+# END +++++++++++++++ description End Summary Tables ++++++++++++++++++++
+
+
 H3: Description
 
 
@@ -3248,6 +4143,18 @@
 
 
 
+
+# BEGIN ########### description Subsections ##############
+H4: {{CMD[id="description_base"]base}}
+
+
+
+H4: {{CMD[id="description_code"]code}}
+
+
+
+# END ++++++++++++ description Subsections +++++++++++++
+
 H2: discount
 
 
@@ -3284,6 +4191,58 @@
 
  
 
+# BEGIN ############### discount Summary Tables ####################
+!block example;
+    [B<discount> code]
+!endblock
+
+!block table; colvaligns="TTT"; format="262"
+Parameters|Description|Default
+{{CMD[jump="#discount_code"]code}}|<<
+>>|DEFAULT_VALUE
+!endblock
+
+!block table; colvaligns="TT"
+Attributes|Default
+{{CMD[jump="#attr_interpolate"]interpolate}}|I<No>
+{{CMD[jump="#attr_reparse"]reparse}}|I<Yes>
+!endblock
+
+!block table; headings=1; colvaligns="TT"
+A|B
+Other_Charactreristics|
+Invalidates cache|I<YES>
+Container tag|I<Yes>
+Has Subtags|I<No>
+Nests|I<No>
+!endblock
+
+
+B<Tag expansion example:>
+
+!block example
+   [discount code]
+---
+   TAGRESULT
+!endblock
+
+
+B<ASP-like Perl call:>
+
+!block example; lang="Perl"
+   $Tag->discount(  { code => VALUE_code
+}, $body  );
+!endblock
+
+or similarly with positional parameters,
+
+!block example; lang="Perl"
+    $Tag->discount(code, $attribute_hash_reference, $body);
+!endblock
+
+# END +++++++++++++++ discount End Summary Tables ++++++++++++++++++++
+
+
 H3: Description
 
 
@@ -3358,6 +4317,14 @@
 
 
 
+
+# BEGIN ########### discount Subsections ##############
+H4: {{CMD[id="discount_code"]code}}
+
+
+
+# END ++++++++++++ discount Subsections +++++++++++++
+
 H2: dump
 
 Dumps client connection information, cart contents, query value, contents of environment, session, and CGI with Data::Dumper to the page. This is useful for debugging.
@@ -3387,69 +4354,117 @@
 
  
 
-H3: Description
+# BEGIN ############### dump Summary Tables ####################
+!block example;
+    [B<dump> ]
+!endblock
 
+!block table; colvaligns="TT"
+Attributes|Default
+{{CMD[jump="#attr_interpolate"]interpolate (reparse)}}|I<No>
+!endblock
 
-Dumps client connection information, cart contents, query value, contents of environment, session, and CGI with Data::Dumper to the page. This is useful for debugging.
+!block table; headings=1; colvaligns="TT"
+A|B
+Other_Charactreristics|
+Invalidates cache|I<no>
+Container tag|I<No>
+Has Subtags|I<No>
+Nests|I<Yes>
+!endblock
 
 
+B<Tag expansion example:>
 
+!block example
+   [dump ]
+---
+   TAGRESULT
+!endblock
 
-H2: ecml
 
-Uses ECML (Electronic Commerce Markup Language) module to map Interchange forms/userdb to ECML checkout
+B<ASP-like Perl call:>
 
-H3: Summary
+!block example; lang="Perl"
+   $Tag->dump(  { 
+}, $body  );
+!endblock
 
-\Parameters: B<name function>
+or similarly with positional parameters,
 
-* function (default = 'widget')
+!block example; lang="Perl"
+    $Tag->dump(, $attribute_hash_reference, $body);
+!endblock
 
-!block example
-Place form boxes on page:
+# END +++++++++++++++ dump End Summary Tables ++++++++++++++++++++
+
+
+H3: Description
+
+
+Dumps client connection information, cart contents, query value, contents of environment, session, and CGI with Data::Dumper to the page. This is useful for debugging.
+
+
+
 
-	 [ecml name]
-	 [ecml address]
 
-Magic database entry from country database:
+H2: ecml
 
-	[ecml country]
+Uses ECML (Electronic Commerce Markup Language) module to map Interchange forms/userdb to ECML checkout
 
-Map values back to Interchange variables for saving in UserDB:
+H3: Summary
 
-	<INPUT TYPE=hidden NAME=mv_click CHECKED VALUE="ECML_map">
-	[set ECML_map]
-	[ecml function=mapback]
-	[/set]
+!block example;
+    [B<ecml> name functionI<other_named_attributes>]
 !endblock
 
-Positional parameters in same order.
+!block table; colvaligns="TTT"; format="262"
+Parameters|Description|Default
+{{CMD[jump="#ecml_function"]function}}|<<
+ecml function (default = 'widget')
+>>|DEFAULT_VALUE
+{{CMD[jump="#ecml_name"]name}}|<<
+>>|DEFAULT_VALUE
+!endblock
 
+!block table; colvaligns="TT"
+Attributes|Default
+{{CMD[jump="#ecml_ATT1"]ATT1}}|I<none>
+{{CMD[jump="#attr_interpolate"]interpolate (reparse)}}|I<No>
+!endblock
 
-B<The attribute hash reference is passed> to the subroutine after
-the parameters as the last argument.
-B<This may mean that there are parameters not shown here.>
+!block table; headings=1; colvaligns="TT"
+A|B
+Other_Charactreristics|
+Invalidates cache|I<no>
+Container tag|I<No>
+Has Subtags|I<No>
+Nests|I<Yes>
+!endblock
 
-Must pass named parameter interpolate=1 to cause interpolation.
 
-Invalidates cache: B<no>
+B<Tag expansion example:>
 
-Called Routine: 
+!block example
+   [ecml name function]
+---
+   TAGRESULT
+!endblock
 
+
 B<ASP-like Perl call:>
 
->    $Tag->ecml(
->        {
->         name => VALUE,
->         function => VALUE,
->        }
->    )
->
-> OR
->
->    $Tag->ecml($name, $function, $ATTRHASH);
+!block example; lang="Perl"
+   $Tag->ecml(  { function => VALUE_function
+                   name => VALUE_name
+}, $body  );
+!endblock
 
- 
+or similarly with positional parameters,
+
+!block example; lang="Perl"
+    $Tag->ecml(name,function, $attribute_hash_reference, $body);
+!endblock
 
 H3: Description
 
@@ -3529,6 +4544,19 @@
 back. If you have C<fname> and C<lname>, then it will not.
 
 
+
+# BEGIN ############ ecml Subsections ##############
+H4: {{CMD[id="ecml_function"]function}}
+
+ecml function (default = 'widget')
+
+
+H4: {{CMD[id="ecml_name"]name}}
+
+
+
+# END +++++++++++++ ecml Subsections ++++++++++++
+
 H2: either
 
 The [either]this[or]that[/either] implements a check for the first
@@ -3575,6 +4603,52 @@
 
  
 
+# BEGIN ############### either Summary Tables ####################
+!block example;
+    [B<either> ]
+!endblock
+
+!block table; colvaligns="TT"
+Attributes|Default
+{{CMD[jump="#attr_interpolate"]interpolate}}|I<No>
+{{CMD[jump="#attr_reparse"]reparse}}|I<Yes>
+!endblock
+
+!block table; headings=1; colvaligns="TT"
+A|B
+Other_Charactreristics|
+Invalidates cache|I<no>
+Container tag|I<Yes>
+Has Subtags|I<No>
+Nests|I<No>
+!endblock
+
+
+B<Tag expansion example:>
+
+!block example
+   [either ]
+---
+   TAGRESULT
+!endblock
+
+
+B<ASP-like Perl call:>
+
+!block example; lang="Perl"
+   $Tag->either(  { 
+}, $body  );
+!endblock
+
+or similarly with positional parameters,
+
+!block example; lang="Perl"
+    $Tag->either(, $attribute_hash_reference, $body);
+!endblock
+
+# END +++++++++++++++ either End Summary Tables ++++++++++++++++++++
+
+
 H3: Description
 
 B<NO Description>
@@ -3582,6 +4656,7 @@
 
 
 
+
 H2: error
 
 
@@ -3616,6 +4691,58 @@
 
  
 
+# BEGIN ############### error Summary Tables ####################
+!block example;
+    [B<error> nameI<other_named_attributes>]
+!endblock
+
+!block table; colvaligns="TTT"; format="262"
+Parameters|Description|Default
+{{CMD[jump="#error_name"]name}}|<<
+>>|DEFAULT_VALUE
+!endblock
+
+!block table; colvaligns="TT"
+Attributes|Default
+{{CMD[jump="#error_ATT1"]ATT1}}|I<none>
+{{CMD[jump="#attr_interpolate"]interpolate (reparse)}}|I<No>
+!endblock
+
+!block table; headings=1; colvaligns="TT"
+A|B
+Other_Charactreristics|
+Invalidates cache|I<no>
+Container tag|I<No>
+Has Subtags|I<No>
+Nests|I<Yes>
+!endblock
+
+
+B<Tag expansion example:>
+
+!block example
+   [error name]
+---
+   TAGRESULT
+!endblock
+
+
+B<ASP-like Perl call:>
+
+!block example; lang="Perl"
+   $Tag->error(  { name => VALUE_name
+}, $body  );
+!endblock
+
+or similarly with positional parameters,
+
+!block example; lang="Perl"
+    $Tag->error(name, $attribute_hash_reference, $body);
+!endblock
+
+# END +++++++++++++++ error End Summary Tables ++++++++++++++++++++
+
+
 H3: Description
 
 
@@ -3721,6 +4848,14 @@
 
 
 
+
+# BEGIN ########### error Subsections ##############
+H4: {{CMD[id="error_name"]name}}
+
+
+
+# END ++++++++++++ error Subsections +++++++++++++
+
 H2: export
 
 Exports a database to a delimited text file (see also
@@ -3729,90 +4864,163 @@
 
 H3: Summary
 
-\Parameters: B<table>
+!block example;
+    [B<export> tableI<other_named_attributes>]
+!endblock
 
-Positional parameters in same order.
+!block table; colvaligns="TTT"; format="262"
+Parameters|Description|Default
+{{CMD[jump="#export_table"]base}}|<<
+Alias for table
+>>|DEFAULT_VALUE
+{{CMD[jump="#export_table"]database}}|<<
+Alias for table
+>>|DEFAULT_VALUE
+{{CMD[jump="#export_delete"]delete}}|<<
+If 'verify' attribute also set, deletes column specified by 'field' attribute rather than adding a column.
+>>|DEFAULT_VALUE
+{{CMD[jump="#export_field"]field}}|<<
+The column to add (or delete if delete and verify are true)
+>>|DEFAULT_VALUE
+{{CMD[jump="#export_file"]file}}|<<
+Filename to export to. Note that the NoAbsolute directive and other conditions may affect actual location of the output file.
+>>|DEFAULT_VALUE
+{{CMD[jump="#export_sort"]sort}}|<<
+Output sorted rows (N<usage:> sort="I<sort_field>:I<sort_option>") (see search/form variable 'mv_sort_option' for sort options)
+>>|DEFAULT_VALUE
+{{CMD[jump="#export_table"]table}}|<<
+The table to export
+>>|DEFAULT_VALUE
+{{CMD[jump="#export_type"]type}}|<<
+Specifies the [line, record] delimiter types. Either NOTES or one of the following:
+
+>  my %Delimiter = (
+>	2 => ["\n", "\n\n"],
+>	3 => ["\n%%\n", "\n%%%\n"],
+>	4 => ["CSV","\n"],
+>	5 => ['|', "\n"],
+>	6 => ["\t", "\n"],
+>	7 => ["\t", "\n"],
+>	8 => ["\t", "\n"],
+>	LINE => ["\n", "\n\n"],
+>	'%%%' => ["\n%%\n", "\n%%%\n"],
+>	'%%' => ["\n%%\n", "\n%%%\n"],
+>	CSV => ["CSV","\n"],
+>	PIPE => ['|', "\n"],
+>	TAB => ["\t", "\n"],
+>	);
+
+* If using NOTES
+** notes_separator (defaults to "\f")
+** notes_field (defaults to "notes_field")
+>>|DEFAULT_VALUE
+{{CMD[jump="#export_verify"]verify}}|<<
+must be true when deleting a column
+>>|DEFAULT_VALUE
+!endblock
+
+!block table; colvaligns="TT"
+Attributes|Default
+{{CMD[jump="#export_ATT1"]ATT1}}|I<none>
+{{CMD[jump="#attr_interpolate"]interpolate (reparse)}}|I<No>
+!endblock
+
+!block table; headings=1; colvaligns="TT"
+A|B
+Other_Charactreristics|
+Invalidates cache|I<YES>
+Container tag|I<No>
+Has Subtags|I<No>
+Nests|I<Yes>
+!endblock
 
-* table
-** The table to export
+
+B<Tag expansion example:>
+
+!block example
+   [export table]
+---
+   TAGRESULT
+!endblock
 
-* file
-* Filename to export to. Note that the NoAbsolute directive and other conditions may affect actual location of the output file.
 
-* type
-** Specifies the [line, record] delimiter types. Either NOTES or one of the following:
+B<ASP-like Perl call:>
 
 !block example; lang="Perl"
-  my %Delimiter = (
-	2 => ["\n", "\n\n"],
-	3 => ["\n%%\n", "\n%%%\n"],
-	4 => ["CSV","\n"],
-	5 => ['|', "\n"],
-	6 => ["\t", "\n"],
-	7 => ["\t", "\n"],
-	8 => ["\t", "\n"],
-	LINE => ["\n", "\n\n"],
-	'%%%' => ["\n%%\n", "\n%%%\n"],
-	'%%' => ["\n%%\n", "\n%%%\n"],
-	CSV => ["CSV","\n"],
-	PIPE => ['|', "\n"],
-	TAB => ["\t", "\n"],
-	);
-!endblock
-
-** If using NOTES
-*** notes_separator (defaults to "\f")
-*** notes_field (defaults to "notes_field")
-
-* field
-** The column to add (or delete if delete and verify are true)
+   $Tag->export(  { table => VALUE_table
+}, $body  );
+!endblock
 
-* delete
-** If 'verify' attribute also set, deletes column specified by 'field' attribute rather than adding a column.
+or similarly with positional parameters,
 
-* verify
-** must be true when deleting a column
+!block example; lang="Perl"
+    $Tag->export(table, $attribute_hash_reference, $body);
+!endblock
 
-* sort
-** Output sorted rows (N<usage:> sort="I<sort_field>:I<sort_option>") (see search/form variable 'mv_sort_option' for sort options)
+H3: Description
 
+Exports 'table' to a delimited text file. See also {{C[jump="#import"]import}} tag which imports files into databases.
 
 
-B<The attribute hash reference is passed> to the subroutine after
-the parameters as the last argument.
-B<This may mean that there are parameters not shown here.>
 
-Must pass named parameter interpolate=1 to cause interpolation.
+# BEGIN ############ export Subsections ##############
+H4: {{CMD[id="export_delete"]delete}}
 
-Invalidates cache: B<YES>
+If 'verify' attribute also set, deletes column specified by 'field' attribute rather than adding a column.
 
-Called Routine: 
 
-B<ASP-like Perl call:>
+H4: {{CMD[id="export_field"]field}}
 
->    $Tag->export(
->        {
->         table => VALUE,
->        }
->    )
->
-> OR
->
->    $Tag->export($table, $ATTRHASH);
+The column to add (or delete if delete and verify are true)
 
-Attribute aliases
 
->            base ==> table
->            database ==> table
+H4: {{CMD[id="export_file"]file}}
 
+Filename to export to. Note that the NoAbsolute directive and other conditions may affect actual location of the output file.
 
- 
 
-H3: Description
+H4: {{CMD[id="export_sort"]sort}}
 
-Exports 'table' to a delimited text file. See also {{C[jump="#import"]import}} tag which imports files into databases.
+Output sorted rows (N<usage:> sort="I<sort_field>:I<sort_option>") (see search/form variable 'mv_sort_option' for sort options)
+
+
+H4: {{CMD[id="export_table"]table}}
+
+The table to export
+
+
+H4: {{CMD[id="export_type"]type}}
+
+Specifies the [line, record] delimiter types. Either NOTES or one of the following:
+
+>  my %Delimiter = (
+>	2 => ["\n", "\n\n"],
+>	3 => ["\n%%\n", "\n%%%\n"],
+>	4 => ["CSV","\n"],
+>	5 => ['|', "\n"],
+>	6 => ["\t", "\n"],
+>	7 => ["\t", "\n"],
+>	8 => ["\t", "\n"],
+>	LINE => ["\n", "\n\n"],
+>	'%%%' => ["\n%%\n", "\n%%%\n"],
+>	'%%' => ["\n%%\n", "\n%%%\n"],
+>	CSV => ["CSV","\n"],
+>	PIPE => ['|', "\n"],
+>	TAB => ["\t", "\n"],
+>	);
+
+* If using NOTES
+** notes_separator (defaults to "\f")
+** notes_field (defaults to "notes_field")
+
+
+H4: {{CMD[id="export_verify"]verify}}
+
+must be true when deleting a column
 
 
+# END +++++++++++++ export Subsections ++++++++++++
+
 H2: field
 
 
@@ -3855,6 +5063,75 @@
 
  
 
+# BEGIN ############### field Summary Tables ####################
+!block example;
+    [B<field> name code]
+!endblock
+
+!block table; colvaligns="TTT"; format="262"
+Parameters|Description|Default
+{{CMD[jump="#field_code"]code}}|<<
+>>|DEFAULT_VALUE
+{{CMD[jump="#field_name"]col}}|<<
+Alias for name
+>>|DEFAULT_VALUE
+{{CMD[jump="#field_name"]column}}|<<
+Alias for name
+>>|DEFAULT_VALUE
+{{CMD[jump="#field_name"]field}}|<<
+Alias for name
+>>|DEFAULT_VALUE
+{{CMD[jump="#field_code"]key}}|<<
+Alias for code
+>>|DEFAULT_VALUE
+{{CMD[jump="#field_name"]name}}|<<
+>>|DEFAULT_VALUE
+{{CMD[jump="#field_code"]row}}|<<
+Alias for code
+>>|DEFAULT_VALUE
+!endblock
+
+!block table; colvaligns="TT"
+Attributes|Default
+{{CMD[jump="#attr_interpolate"]interpolate (reparse)}}|I<No>
+!endblock
+
+!block table; headings=1; colvaligns="TT"
+A|B
+Other_Charactreristics|
+Invalidates cache|I<no>
+Container tag|I<No>
+Has Subtags|I<No>
+Nests|I<Yes>
+!endblock
+
+
+B<Tag expansion example:>
+
+!block example
+   [field name code]
+---
+   TAGRESULT
+!endblock
+
+
+B<ASP-like Perl call:>
+
+!block example; lang="Perl"
+   $Tag->field(  { code => VALUE_code
+                    name => VALUE_name
+}, $body  );
+!endblock
+
+or similarly with positional parameters,
+
+!block example; lang="Perl"
+    $Tag->field(name,code, $attribute_hash_reference, $body);
+!endblock
+
+# END +++++++++++++++ field End Summary Tables ++++++++++++++++++++
+
+
 H3: Description
 
 
@@ -3873,6 +5150,18 @@
 
 
 
+
+# BEGIN ########### field Subsections ##############
+H4: {{CMD[id="field_code"]code}}
+
+
+
+H4: {{CMD[id="field_name"]name}}
+
+
+
+# END ++++++++++++ field Subsections +++++++++++++
+
 H2: file
 
 
@@ -3906,6 +5195,60 @@
 
  
 
+# BEGIN ############### file Summary Tables ####################
+!block example;
+    [B<file> name type]
+!endblock
+
+!block table; colvaligns="TTT"; format="262"
+Parameters|Description|Default
+{{CMD[jump="#file_name"]name}}|<<
+>>|DEFAULT_VALUE
+{{CMD[jump="#file_type"]type}}|<<
+>>|DEFAULT_VALUE
+!endblock
+
+!block table; colvaligns="TT"
+Attributes|Default
+{{CMD[jump="#attr_interpolate"]interpolate (reparse)}}|I<No>
+!endblock
+
+!block table; headings=1; colvaligns="TT"
+A|B
+Other_Charactreristics|
+Invalidates cache|I<no>
+Container tag|I<No>
+Has Subtags|I<No>
+Nests|I<Yes>
+!endblock
+
+
+B<Tag expansion example:>
+
+!block example
+   [file name type]
+---
+   TAGRESULT
+!endblock
+
+
+B<ASP-like Perl call:>
+
+!block example; lang="Perl"
+   $Tag->file(  { name => VALUE_name
+                   type => VALUE_type
+}, $body  );
+!endblock
+
+or similarly with positional parameters,
+
+!block example; lang="Perl"
+    $Tag->file(name,type, $attribute_hash_reference, $body);
+!endblock
+
+# END +++++++++++++++ file End Summary Tables ++++++++++++++++++++
+
+
 H3: Description
 
 
@@ -3921,6 +5264,18 @@
 
 
 
+
+# BEGIN ########### file Subsections ##############
+H4: {{CMD[id="file_name"]name}}
+
+
+
+H4: {{CMD[id="file_type"]type}}
+
+
+
+# END ++++++++++++ file Subsections +++++++++++++
+
 H2: filter
 
 
@@ -3957,6 +5312,58 @@
 
  
 
+# BEGIN ############### filter Summary Tables ####################
+!block example;
+    [B<filter> op]
+!endblock
+
+!block table; colvaligns="TTT"; format="262"
+Parameters|Description|Default
+{{CMD[jump="#filter_op"]op}}|<<
+>>|DEFAULT_VALUE
+!endblock
+
+!block table; colvaligns="TT"
+Attributes|Default
+{{CMD[jump="#attr_interpolate"]interpolate}}|I<No>
+{{CMD[jump="#attr_reparse"]reparse}}|I<Yes>
+!endblock
+
+!block table; headings=1; colvaligns="TT"
+A|B
+Other_Charactreristics|
+Invalidates cache|I<no>
+Container tag|I<Yes>
+Has Subtags|I<No>
+Nests|I<No>
+!endblock
+
+
+B<Tag expansion example:>
+
+!block example
+   [filter op]
+---
+   TAGRESULT
+!endblock
+
+
+B<ASP-like Perl call:>
+
+!block example; lang="Perl"
+   $Tag->filter(  { op => VALUE_op
+}, $body  );
+!endblock
+
+or similarly with positional parameters,
+
+!block example; lang="Perl"
+    $Tag->filter(op, $attribute_hash_reference, $body);
+!endblock
+
+# END +++++++++++++++ filter End Summary Tables ++++++++++++++++++++
+
+
 H3: Description
 
 
@@ -4222,6 +5629,14 @@
 
 
 
+
+# BEGIN ########### filter Subsections ##############
+H4: {{CMD[id="filter_op"]op}}
+
+
+
+# END ++++++++++++ filter Subsections +++++++++++++
+
 H2: flag
 
 Controls Interchange flags. For example, flags affect database access
@@ -4229,82 +5644,98 @@
 features. See also the E<lbracket>{{C[jump="#tag"]tag}}] tag.
 
 H3: Summary
-
-\Parameters: B<type>
-
-C<type> may be one of the following
-
-* read
-** Flags the table read-only
 
-* write
-** Flags the table writeable by default (or read-only if you also set
-the C<value>=0 attribute)
+!block example;
+    [B<flag> type]
+!endblock
 
-* transactions
-** Reopens the database in transactions mode if {{CMD[jump="http://www.perl.com/pub/doc/manual/html/lib/Safe.html"]Safe.pm}} is not active
+!block table; colvaligns="TTT"; format="262"
+Parameters|Description|Default
+{{CMD[jump="#flag_build"]build}}|<<
+Forces build of static Interchange page specified by the C<name> attribute
+>>|DEFAULT_VALUE
+{{CMD[jump="#flag_checkhtml"]checkhtml}}|<<
+>>|DEFAULT_VALUE
+{{CMD[jump="#flag_commit"]commit}}|<<
+Attempts to commit transactions
+>>|DEFAULT_VALUE
+{{CMD[jump="#flag_type"]flag}}|<<
+Alias for type
+>>|DEFAULT_VALUE
+{{CMD[jump="#flag_type"]name}}|<<
+Alias for type
+>>|DEFAULT_VALUE
+{{CMD[jump="#flag_read"]read}}|<<
+Flags the table read-only
+>>|DEFAULT_VALUE
+{{CMD[jump="#flag_rollback"]rollback}}|<<
+Attempts to rollback transactions
+>>|DEFAULT_VALUE
+{{CMD[jump="#flag_show"]show}}|<<
+Normally, the E<lbracket>C<flag>] tag returns nothing to the
+page. Setting 'C<show>=1' causes the tag to return status, if any.
+>>|DEFAULT_VALUE
+{{CMD[jump="#flag_tables"]table}}|<<
+Alias for tables
+>>|DEFAULT_VALUE
+{{CMD[jump="#flag_tables"]tables}}|<<
+The name of the table to flag
+* 'C<table>' is an alias
+>>|DEFAULT_VALUE
+{{CMD[jump="#flag_transactions"]transactions}}|<<
+Reopens the database in transactions mode if {{CMD[jump="http://www.perl.com/pub/doc/manual/html/lib/Safe.html"]Safe.pm}} is not active
 (e.g., in a global subroutine, usertag or
 E<lbracket>{{C[jump="#perl_global"]perl}}E<nbspace>global=1]
 tag). The limitation exists because it is not possible to reopen a
 database within {{CMD[jump="http://www.perl.com/pub/doc/manual/html/lib/Safe.html"]Safe.pm}}.
-
-* commit
-** Attempts to commit transactions
-
-* rollback
-** Attempts to rollback transactions
-
-* build
-** Forces build of static Interchange page specified by the C<name> attribute
-
-* checkhtml
-
-
-H3: Attributes
-
-* 'C<flag>' and 'C<name>'
-** Aliases for 'C<type>' (except for 'C<type>=build')
-
-* tables
-** The name of the table to flag
-** 'C<table>' is an alias
-
-* value
-** The boolean value of the flag
+>>|DEFAULT_VALUE
+{{CMD[jump="#flag_type"]type}}|<<
+>>|DEFAULT_VALUE
+{{CMD[jump="#flag_value"]value}}|<<
+The boolean value of the flag
+>>|DEFAULT_VALUE
+{{CMD[jump="#flag_write"]write}}|<<
+Flags the table writeable by default (or read-only if you also set
+the C<value>=0 attribute)
+>>|DEFAULT_VALUE
+!endblock
 
-* name
-** Name of page to build or alias for 'C<type>'
+!block table; colvaligns="TT"
+Attributes|Default
+{{CMD[jump="#attr_interpolate"]interpolate (reparse)}}|I<No>
+!endblock
 
-* show
-** Normally, the E<lbracket>C<flag>] tag returns nothing to the
-page. Setting 'C<show>=1' causes the tag to return status, if any.
+!block table; headings=1; colvaligns="TT"
+A|B
+Other_Charactreristics|
+Invalidates cache|I<YES>
+Container tag|I<No>
+Has Subtags|I<No>
+Nests|I<Yes>
+!endblock
 
 
-Must pass named parameter interpolate=1 to cause interpolation.
+B<Tag expansion example:>
 
-Invalidates cache: B<YES>
+!block example
+   [flag type]
+---
+   TAGRESULT
+!endblock
 
-Called Routine: 
 
 B<ASP-like Perl call:>
-
->    $Tag->flag(
->        {
->         type => VALUE,
->        }
->    )
->
-> OR
->
->    $Tag->flag($type, $ATTRHASH);
 
-Attribute aliases
+!block example; lang="Perl"
+   $Tag->flag(  { type => VALUE_type
+}, $body  );
+!endblock
 
->            flag ==> type
->            name ==> type
->           table ==> tables
+or similarly with positional parameters,
 
- 
+!block example; lang="Perl"
+    $Tag->flag(type, $attribute_hash_reference, $body);
+!endblock
 
 H3: Description
 
@@ -4329,6 +5760,70 @@
 it contains dynamic elements.
 
 
+
+# BEGIN ############ flag Subsections ##############
+H4: {{CMD[id="flag_build"]build}}
+
+Forces build of static Interchange page specified by the C<name> attribute
+
+
+H4: {{CMD[id="flag_checkhtml"]checkhtml}}
+
+
+
+H4: {{CMD[id="flag_commit"]commit}}
+
+Attempts to commit transactions
+
+
+H4: {{CMD[id="flag_read"]read}}
+
+Flags the table read-only
+
+
+H4: {{CMD[id="flag_rollback"]rollback}}
+
+Attempts to rollback transactions
+
+
+H4: {{CMD[id="flag_show"]show}}
+
+Normally, the E<lbracket>C<flag>] tag returns nothing to the
+page. Setting 'C<show>=1' causes the tag to return status, if any.
+
+
+H4: {{CMD[id="flag_tables"]tables}}
+
+The name of the table to flag
+* 'C<table>' is an alias
+
+
+H4: {{CMD[id="flag_transactions"]transactions}}
+
+Reopens the database in transactions mode if {{CMD[jump="http://www.perl.com/pub/doc/manual/html/lib/Safe.html"]Safe.pm}} is not active
+(e.g., in a global subroutine, usertag or
+E<lbracket>{{C[jump="#perl_global"]perl}}E<nbspace>global=1]
+tag). The limitation exists because it is not possible to reopen a
+database within {{CMD[jump="http://www.perl.com/pub/doc/manual/html/lib/Safe.html"]Safe.pm}}.
+
+
+H4: {{CMD[id="flag_type"]type}}
+
+
+
+H4: {{CMD[id="flag_value"]value}}
+
+The boolean value of the flag
+
+
+H4: {{CMD[id="flag_write"]write}}
+
+Flags the table writeable by default (or read-only if you also set
+the C<value>=0 attribute)
+
+
+# END +++++++++++++ flag Subsections ++++++++++++
+
 H2: fly_list
 
 
@@ -4366,6 +5861,61 @@
 
  
 
+# BEGIN ############### fly_list Summary Tables ####################
+!block example;
+    [B<fly_list> code base]
+!endblock
+
+!block table; colvaligns="TTT"; format="262"
+Parameters|Description|Default
+{{CMD[jump="#fly_list_base"]base}}|<<
+>>|DEFAULT_VALUE
+{{CMD[jump="#fly_list_code"]code}}|<<
+>>|DEFAULT_VALUE
+!endblock
+
+!block table; colvaligns="TT"
+Attributes|Default
+{{CMD[jump="#attr_interpolate"]interpolate}}|I<No>
+{{CMD[jump="#attr_reparse"]reparse}}|I<Yes>
+!endblock
+
+!block table; headings=1; colvaligns="TT"
+A|B
+Other_Charactreristics|
+Invalidates cache|I<no>
+Container tag|I<Yes>
+Has Subtags|I<No>
+Nests|I<No>
+!endblock
+
+
+B<Tag expansion example:>
+
+!block example
+   [fly_list code base]
+---
+   TAGRESULT
+!endblock
+
+
+B<ASP-like Perl call:>
+
+!block example; lang="Perl"
+   $Tag->fly_list(  { base => VALUE_base
+                       code => VALUE_code
+}, $body  );
+!endblock
+
+or similarly with positional parameters,
+
+!block example; lang="Perl"
+    $Tag->fly_list(code,base, $attribute_hash_reference, $body);
+!endblock
+
+# END +++++++++++++++ fly_list End Summary Tables ++++++++++++++++++++
+
+
 H3: Description
 
 
@@ -4397,6 +5947,18 @@
 
 
 
+
+# BEGIN ########### fly_list Subsections ##############
+H4: {{CMD[id="fly_list_base"]base}}
+
+
+
+H4: {{CMD[id="fly_list_code"]code}}
+
+
+
+# END ++++++++++++ fly_list Subsections +++++++++++++
+
 H2: fly_tax
 
 
@@ -4429,16 +5991,75 @@
 
  
 
-H3: Description
+# BEGIN ############### fly_tax Summary Tables ####################
+!block example;
+    [B<fly_tax> area]
+!endblock
 
-Builds a tax rate from C<taxarea>, C<taxrate>, C<taxshipping>, variable values, and the C<SalesTax> directive value.
+!block table; colvaligns="TTT"; format="262"
+Parameters|Description|Default
+{{CMD[jump="#fly_tax_area"]area}}|<<
+>>|DEFAULT_VALUE
+!endblock
 
+!block table; colvaligns="TT"
+Attributes|Default
+{{CMD[jump="#attr_interpolate"]interpolate (reparse)}}|I<No>
+!endblock
 
+!block table; headings=1; colvaligns="TT"
+A|B
+Other_Charactreristics|
+Invalidates cache|I<no>
+Container tag|I<No>
+Has Subtags|I<No>
+Nests|I<Yes>
+!endblock
 
-H2: goto
 
-Skips page content between E<lbracket>C<goto> I<name>] and E<lbracket>{{C[jump="#label"]label}} I<name>]. Note that the C<goto> tag is not interpreted in the standard way, and you cannot use the '$Tag->goto()' Perl syntax. Note also that skipping endtags with C<goto> will probably break your page.
+B<Tag expansion example:>
 
+!block example
+   [fly_tax area]
+---
+   TAGRESULT
+!endblock
+
+
+B<ASP-like Perl call:>
+
+!block example; lang="Perl"
+   $Tag->fly_tax(  { area => VALUE_area
+}, $body  );
+!endblock
+
+or similarly with positional parameters,
+
+!block example; lang="Perl"
+    $Tag->fly_tax(area, $attribute_hash_reference, $body);
+!endblock
+
+# END +++++++++++++++ fly_tax End Summary Tables ++++++++++++++++++++
+
+
+H3: Description
+
+Builds a tax rate from C<taxarea>, C<taxrate>, C<taxshipping>, variable values, and the C<SalesTax> directive value.
+
+
+
+
+# BEGIN ########### fly_tax Subsections ##############
+H4: {{CMD[id="fly_tax_area"]area}}
+
+
+
+# END ++++++++++++ fly_tax Subsections +++++++++++++
+
+H2: goto
+
+Skips page content between E<lbracket>C<goto> I<name>] and E<lbracket>{{C[jump="#label"]label}} I<name>]. Note that the C<goto> tag is not interpreted in the standard way, and you cannot use the '$Tag->goto()' Perl syntax. Note also that skipping endtags with C<goto> will probably break your page.
+
 H3: Summary
 
 !block example
@@ -4554,6 +6175,70 @@
 
  
 
+# BEGIN ############### handling Summary Tables ####################
+!block example;
+    [B<handling> modeI<other_named_attributes>]
+!endblock
+
+!block table; colvaligns="TTT"; format="262"
+Parameters|Description|Default
+{{CMD[jump="#handling_cart"]carts}}|<<
+Alias for cart
+>>|DEFAULT_VALUE
+{{CMD[jump="#handling_mode"]mode}}|<<
+>>|DEFAULT_VALUE
+{{CMD[jump="#handling_mode"]modes}}|<<
+Alias for mode
+>>|DEFAULT_VALUE
+{{CMD[jump="#handling_mode"]name}}|<<
+Alias for mode
+>>|DEFAULT_VALUE
+{{CMD[jump="#handling_table"]tables}}|<<
+Alias for table
+>>|DEFAULT_VALUE
+!endblock
+
+!block table; colvaligns="TT"
+Attributes|Default
+{{CMD[jump="#handling_ATT1"]ATT1}}|I<none>
+{{CMD[jump="#attr_interpolate"]interpolate (reparse)}}|I<No>
+!endblock
+
+!block table; headings=1; colvaligns="TT"
+A|B
+Other_Charactreristics|
+Invalidates cache|I<YES>
+Container tag|I<No>
+Has Subtags|I<No>
+Nests|I<Yes>
+!endblock
+
+
+B<Tag expansion example:>
+
+!block example
+   [handling mode]
+---
+   TAGRESULT
+!endblock
+
+
+B<ASP-like Perl call:>
+
+!block example; lang="Perl"
+   $Tag->handling(  { mode => VALUE_mode
+}, $body  );
+!endblock
+
+or similarly with positional parameters,
+
+!block example; lang="Perl"
+    $Tag->handling(mode, $attribute_hash_reference, $body);
+!endblock
+
+# END +++++++++++++++ handling End Summary Tables ++++++++++++++++++++
+
+
 H3: Description
 
 Calculates and inserts handling costs. Accepts the same noformat and convert arguments as the shipping tag.
@@ -4561,6 +6246,14 @@
 
 
 
+
+# BEGIN ########### handling Subsections ##############
+H4: {{CMD[id="handling_mode"]mode}}
+
+
+
+# END ++++++++++++ handling Subsections +++++++++++++
+
 H2: harness
 
 Test harness block. Similar to try/catch. Interprets the body text and checks the return value against expected and explicitly bad cases.
@@ -4569,48 +6262,58 @@
 
 H3: Summary
 
-!block example
-  [harness expected="good" name=my_test_number_1]
-    [good]The Expected Return Value[/good]
-    [not]Some Specifically Bad Return Value[/not]
-    I<Tags and code to test here>
-  [/harness]
+!block example;
+    [B<harness> I<other_named_attributes>]
 !endblock
-
-No parameters.
 
-* expected (default "OK")
-** Tagname for delimiting your expected return value
+!block table; colvaligns="TTT"; format="262"
+Parameters|Description|Default
+{{CMD[jump="#harness_expected"]expected}}|<<
+Tagname for delimiting your expected return value (default "OK")
+>>|DEFAULT_VALUE
+{{CMD[jump="#harness_name"]name}}|<<
+This will appear in your output message (useful for distinguishing harness tags from one another) (default "testI<nnn>")
+>>|DEFAULT_VALUE
+!endblock
 
-* name (default "testI<nnn>")
-** This will appear in your output message (useful for distinguishing harness tags from one another)
+!block table; colvaligns="TT"
+Attributes|Default
+{{CMD[jump="#harness_ATT1"]ATT1}}|I<none>
+{{CMD[jump="#attr_interpolate"]interpolate}}|I<No>
+{{CMD[jump="#attr_reparse"]reparse}}|I<Yes>
+!endblock
 
-B<The attribute hash reference is passed> after the parameters but before
-the container text argument.
-B<This may mean that there are parameters not shown here.>
+!block table; headings=1; colvaligns="TT"
+A|B
+Other_Charactreristics|
+Invalidates cache|I<no>
+Container tag|I<Yes>
+Has Subtags|I<No>
+Nests|I<No>
+!endblock
 
-Must pass named parameter interpolate=1 to cause interpolation.
 
-This is a container tag, i.e. [harness] FOO [/harness].
-\Nesting: NO
+B<Tag expansion example:>
 
-Invalidates cache: B<no>
+!block example
+   [harness ]
+---
+   TAGRESULT
+!endblock
 
-Called Routine: 
 
 B<ASP-like Perl call:>
 
->    $Tag->harness(
->        {
->        },
->        BODY
->    )
->
-> OR
->
->    $Tag->harness($ATTRHASH, $BODY);
+!block example; lang="Perl"
+   $Tag->harness(  { 
+}, $body  );
+!endblock
 
- 
+or similarly with positional parameters,
+
+!block example; lang="Perl"
+    $Tag->harness(, $attribute_hash_reference, $body);
+!endblock
 
 H3: Description
 
@@ -4620,6 +6323,20 @@
 Returns DIED, OK, or NOT OK message along with the harness name and your result if not the expected value.
 
 
+
+# BEGIN ############ harness Subsections ##############
+H4: {{CMD[id="harness_expected"]expected}}
+
+Tagname for delimiting your expected return value (default "OK")
+
+
+H4: {{CMD[id="harness_name"]name}}
+
+This will appear in your output message (useful for distinguishing harness tags from one another) (default "testI<nnn>")
+
+
+# END +++++++++++++ harness Subsections ++++++++++++
+
 H2: href
 
 Alias for [{{CMD[jump="#area"]area}}] tag.
@@ -4631,65 +6348,128 @@
 
 H3: Summary
 
-* columns
-** Whitespace-delimited list of columns
+!block example;
+    [B<html_table> I<other_named_attributes>]
+!endblock
 
-* delimiter (default "\t")
-** Line delimiter to use if tag body is delimited text rather than an array reference
+!block table; colvaligns="TTT"; format="262"
+Parameters|Description|Default
+{{CMD[jump="#html_table_columns"]columns}}|<<
+Whitespace-delimited list of columns
+>>|DEFAULT_VALUE
+{{CMD[jump="#html_table_delimiter"]delimiter}}|<<
+Line delimiter to use if tag body is delimited text rather than an array reference (default "\t")
+>>|DEFAULT_VALUE
+{{CMD[jump="#html_table_fc"]fc}}|<<
+HTML attributes for <TD> in the first cell
+>>|DEFAULT_VALUE
+{{CMD[jump="#html_table_fr"]fr}}|<<
+HTML attributes for <TR> in the first row
+>>|DEFAULT_VALUE
+{{CMD[jump="#html_table_record_delim"]record_delim}}|<<
+Record delimiter to use if tag body is delimited text rather than an array reference (default "\n")
+>>|DEFAULT_VALUE
+{{CMD[jump="#html_table_td"]td}}|<<
+HTML attributes for <TD>
+>>|DEFAULT_VALUE
+{{CMD[jump="#html_table_th"]th}}|<<
+HTML attributes for <TH>
+>>|DEFAULT_VALUE
+{{CMD[jump="#html_table_tr"]tr}}|<<
+HTML attributes for <TR>
+>>|DEFAULT_VALUE
+!endblock
 
-* record_delim (default "\n")
-** Record delimiter to use if tag body is delimited text rather than an array reference
+!block table; colvaligns="TT"
+Attributes|Default
+{{CMD[jump="#html_table_ATT1"]ATT1}}|I<none>
+{{CMD[jump="#attr_interpolate"]interpolate}}|I<No>
+{{CMD[jump="#attr_reparse"]reparse}}|I<Yes>
+!endblock
 
-* tr
-** HTML attributes for <TR>
+!block table; headings=1; colvaligns="TT"
+A|B
+Other_Charactreristics|
+Invalidates cache|I<no>
+Container tag|I<Yes>
+Has Subtags|I<No>
+Nests|I<No>
+!endblock
 
-* td
-** HTML attributes for <TD>
 
-* th
-** HTML attributes for <TH>
+B<Tag expansion example:>
 
-* fc
-** HTML attributes for <TD> in the first cell
+!block example
+   [html_table ]
+---
+   TAGRESULT
+!endblock
 
-* fr
-** HTML attributes for <TR> in the first row
 
+B<ASP-like Perl call:>
 
-B<The attribute hash reference is passed> after the parameters but before
-the container text argument.
-B<This may mean that there are parameters not shown here.>
+!block example; lang="Perl"
+   $Tag->html_table(  { 
+}, $body  );
+!endblock
 
-Must pass named parameter interpolate=1 to cause interpolation.
+or similarly with positional parameters,
 
-This is a container tag, i.e. [html_table] FOO [/html_table].
-\Nesting: NO
+!block example; lang="Perl"
+    $Tag->html_table(, $attribute_hash_reference, $body);
+!endblock
 
-Invalidates cache: B<no>
+H3: Description
 
-Called Routine: 
 
-B<ASP-like Perl call:>
+Builds an HTML table
 
->    $Tag->html_table(
->        {
->        },
->        BODY
->    )
->
-> OR
->
->    $Tag->html_table($ATTRHASH, $BODY);
 
- 
 
-H3: Description
 
+# BEGIN ############ html_table Subsections ##############
+H4: {{CMD[id="html_table_columns"]columns}}
 
-Builds an HTML table
+Whitespace-delimited list of columns
+
+
+H4: {{CMD[id="html_table_delimiter"]delimiter}}
+
+Line delimiter to use if tag body is delimited text rather than an array reference (default "\t")
+
+
+H4: {{CMD[id="html_table_fc"]fc}}
+
+HTML attributes for <TD> in the first cell
+
+
+H4: {{CMD[id="html_table_fr"]fr}}
+
+HTML attributes for <TR> in the first row
+
+
+H4: {{CMD[id="html_table_record_delim"]record_delim}}
+
+Record delimiter to use if tag body is delimited text rather than an array reference (default "\n")
+
+
+H4: {{CMD[id="html_table_td"]td}}
+
+HTML attributes for <TD>
+
+
+H4: {{CMD[id="html_table_th"]th}}
 
+HTML attributes for <TH>
 
 
+H4: {{CMD[id="html_table_tr"]tr}}
+
+HTML attributes for <TR>
+
+
+# END +++++++++++++ html_table Subsections ++++++++++++
+
 H2: if
 
 
@@ -4729,6 +6509,79 @@
 
  
 
+# BEGIN ############### if Summary Tables ####################
+!block example;
+    [B<if> type term op compare]
+!endblock
+
+!block table; colvaligns="TTT"; format="262"
+Parameters|Description|Default
+{{CMD[jump="#if_type"]base}}|<<
+Alias for type
+>>|DEFAULT_VALUE
+{{CMD[jump="#if_compare"]comp}}|<<
+Alias for compare
+>>|DEFAULT_VALUE
+{{CMD[jump="#if_compare"]compare}}|<<
+>>|DEFAULT_VALUE
+{{CMD[jump="#if_compare"]condition}}|<<
+Alias for compare
+>>|DEFAULT_VALUE
+{{CMD[jump="#if_op"]op}}|<<
+>>|DEFAULT_VALUE
+{{CMD[jump="#if_op"]operator}}|<<
+Alias for op
+>>|DEFAULT_VALUE
+{{CMD[jump="#if_term"]term}}|<<
+>>|DEFAULT_VALUE
+{{CMD[jump="#if_type"]type}}|<<
+>>|DEFAULT_VALUE
+!endblock
+
+!block table; colvaligns="TT"
+Attributes|Default
+{{CMD[jump="#attr_interpolate"]interpolate}}|I<No>
+{{CMD[jump="#attr_reparse"]reparse}}|I<Yes>
+!endblock
+
+!block table; headings=1; colvaligns="TT"
+A|B
+Other_Charactreristics|
+Invalidates cache|I<YES>
+Container tag|I<Yes>
+Has Subtags|I<No>
+Nests|I<No>
+!endblock
+
+
+B<Tag expansion example:>
+
+!block example
+   [if type term op compare]
+---
+   TAGRESULT
+!endblock
+
+
+B<ASP-like Perl call:>
+
+!block example; lang="Perl"
+   $Tag->if(  { compare => VALUE_compare
+                 op => VALUE_op
+                 term => VALUE_term
+                 type => VALUE_type
+}, $body  );
+!endblock
+
+or similarly with positional parameters,
+
+!block example; lang="Perl"
+    $Tag->if(type,term,op,compare, $attribute_hash_reference, $body);
+!endblock
+
+# END +++++++++++++++ if End Summary Tables ++++++++++++++++++++
+
+
 H3: Description
 
 
@@ -5052,6 +6905,26 @@
 
 
 
+
+# BEGIN ########### if Subsections ##############
+H4: {{CMD[id="if_compare"]compare}}
+
+
+
+H4: {{CMD[id="if_op"]op}}
+
+
+
+H4: {{CMD[id="if_term"]term}}
+
+
+
+H4: {{CMD[id="if_type"]type}}
+
+
+
+# END ++++++++++++ if Subsections +++++++++++++
+
 H2: import
 
 
@@ -5096,12 +6969,74 @@
 
 
  
-
-H3: Description
 
+# BEGIN ############### import Summary Tables ####################
+!block example;
+    [B<import> table typeI<other_named_attributes>]
+!endblock
 
-Named attributes:
+!block table; colvaligns="TTT"; format="262"
+Parameters|Description|Default
+{{CMD[jump="#import_table"]base}}|<<
+Alias for table
+>>|DEFAULT_VALUE
+{{CMD[jump="#import_table"]database}}|<<
+Alias for table
+>>|DEFAULT_VALUE
+{{CMD[jump="#import_table"]table}}|<<
+>>|DEFAULT_VALUE
+{{CMD[jump="#import_type"]type}}|<<
+>>|DEFAULT_VALUE
+!endblock
+
+!block table; colvaligns="TT"
+Attributes|Default
+{{CMD[jump="#import_ATT1"]ATT1}}|I<none>
+{{CMD[jump="#attr_interpolate"]interpolate}}|I<No>
+{{CMD[jump="#attr_reparse"]reparse}}|I<Yes>
+!endblock
+
+!block table; headings=1; colvaligns="TT"
+A|B
+Other_Charactreristics|
+Invalidates cache|I<YES>
+Container tag|I<Yes>
+Has Subtags|I<No>
+Nests|I<No>
+!endblock
+
+
+B<Tag expansion example:>
+
+!block example
+   [import table type]
+---
+   TAGRESULT
+!endblock
+
+
+B<ASP-like Perl call:>
+
+!block example; lang="Perl"
+   $Tag->import(  { table => VALUE_table
+                     type => VALUE_type
+}, $body  );
+!endblock
+
+or similarly with positional parameters,
 
+!block example; lang="Perl"
+    $Tag->import(table,type, $attribute_hash_reference, $body);
+!endblock
+
+# END +++++++++++++++ import End Summary Tables ++++++++++++++++++++
+
+
+H3: Description
+
+
+Named attributes:
+
 >    [import table=table_name
 >            type=(TAB|PIPE|CSV|%%|LINE)
 >            continue=(NOTES|UNIX|DITTO)
@@ -5143,6 +7078,18 @@
 
 
 
+
+# BEGIN ########### import Subsections ##############
+H4: {{CMD[id="import_table"]table}}
+
+
+
+H4: {{CMD[id="import_type"]type}}
+
+
+
+# END ++++++++++++ import Subsections +++++++++++++
+
 H2: include
 
 
@@ -5166,6 +7113,60 @@
 Not applicable.
  
 
+# BEGIN ############### include Summary Tables ####################
+!block example;
+    [B<include> file locale]
+!endblock
+
+!block table; colvaligns="TTT"; format="262"
+Parameters|Description|Default
+{{CMD[jump="#include_file"]file}}|<<
+>>|DEFAULT_VALUE
+{{CMD[jump="#include_locale"]locale}}|<<
+>>|DEFAULT_VALUE
+!endblock
+
+!block table; colvaligns="TT"
+Attributes|Default
+{{CMD[jump="#attr_interpolate"]interpolate (reparse)}}|I<No>
+!endblock
+
+!block table; headings=1; colvaligns="TT"
+A|B
+Other_Charactreristics|
+Invalidates cache|I<no>
+Container tag|I<No>
+Has Subtags|I<No>
+Nests|I<Yes>
+!endblock
+
+
+B<Tag expansion example:>
+
+!block example
+   [include file locale]
+---
+   TAGRESULT
+!endblock
+
+
+B<ASP-like Perl call:>
+
+!block example; lang="Perl"
+   $Tag->include(  { file => VALUE_file
+                      locale => VALUE_locale
+}, $body  );
+!endblock
+
+or similarly with positional parameters,
+
+!block example; lang="Perl"
+    $Tag->include(file,locale, $attribute_hash_reference, $body);
+!endblock
+
+# END +++++++++++++++ include End Summary Tables ++++++++++++++++++++
+
+
 H3: Description
 
 
@@ -5176,70 +7177,164 @@
 
 
 
+
+# BEGIN ########### include Subsections ##############
+H4: {{CMD[id="include_file"]file}}
+
+
+
+H4: {{CMD[id="include_locale"]locale}}
+
+
+
+# END ++++++++++++ include Subsections +++++++++++++
+
 H2: index
 
 Creates an index for the specified table.
 
 H3: Summary
 
-\Parameters: B<table>
+!block example;
+    [B<index> tableI<other_named_attributes>]
+!endblock
 
-Positional parameters in same order.
+!block table; colvaligns="TTT"; format="262"
+Parameters|Description|Default
+{{CMD[jump="#index_table"]base}}|<<
+Alias for table
+>>|DEFAULT_VALUE
+{{CMD[jump="#index_basefile"]basefile}}|<<
+Database filename. Exports the table to this filename if old or missing before indexing. See also the {{C[jump="#export"]export}} tag for additional relevent attributes such as delimiter type, etc.
+>>|DEFAULT_VALUE
+{{CMD[jump="#index_col"]col}}|<<
+alias for fields
+>>|DEFAULT_VALUE
+{{CMD[jump="#index_columns"]columns}}|<<
+alias for fields
+>>|DEFAULT_VALUE
+{{CMD[jump="#index_table"]database}}|<<
+Alias for table
+>>|DEFAULT_VALUE
+{{CMD[jump="#index_export_only"]export_only}}|<<
+Just do the export if necessary (not the index).
+>>|DEFAULT_VALUE
+{{CMD[jump="#index_extension"]extension}}|<<
+Index file extension (default "idx")
+>>|DEFAULT_VALUE
+{{CMD[jump="#index_fields"]fields}}|<<
+field(s) to index
+>>|DEFAULT_VALUE
+{{CMD[jump="#index_fn"]fn}}|<<
+alias for fields
+>>|DEFAULT_VALUE
+{{CMD[jump="#index_show_status"]show_status}}|<<
+Return '1' to the page if successful
+>>|DEFAULT_VALUE
+{{CMD[jump="#index_spec"]spec}}|<<
+The index specification
+>>|DEFAULT_VALUE
+{{CMD[jump="#index_table"]table}}|<<
+>>|DEFAULT_VALUE
+!endblock
 
-* extension (default "idx")
-** Index file extension
+!block table; colvaligns="TT"
+Attributes|Default
+{{CMD[jump="#index_ATT1"]ATT1}}|I<none>
+{{CMD[jump="#attr_interpolate"]interpolate (reparse)}}|I<No>
+!endblock
 
-* basefile
-** Database filename. Exports the table to this filename if old or missing before indexing. See also the {{C[jump="#export"]export}} tag for additional relevent attributes such as delimiter type, etc.
+!block table; headings=1; colvaligns="TT"
+A|B
+Other_Charactreristics|
+Invalidates cache|I<YES>
+Container tag|I<No>
+Has Subtags|I<No>
+Nests|I<Yes>
+!endblock
 
-* export_only
-** Just do the export if necessary (not the index).
 
-* spec
-** The index specification
+B<Tag expansion example:>
 
-* fn or fields or col or columns
-** field(s) to index
+!block example
+   [index table]
+---
+   TAGRESULT
+!endblock
 
-* show_status
-** Return '1' to the page if successful
 
+B<ASP-like Perl call:>
 
-B<The attribute hash reference is passed> to the subroutine after
-the parameters as the last argument.
-B<This may mean that there are parameters not shown here.>
+!block example; lang="Perl"
+   $Tag->index(  { table => VALUE_table
+}, $body  );
+!endblock
 
-Must pass named parameter interpolate=1 to cause interpolation.
+or similarly with positional parameters,
 
-Invalidates cache: B<YES>
+!block example; lang="Perl"
+    $Tag->index(table, $attribute_hash_reference, $body);
+!endblock
 
-Called Routine: 
+H3: Description
 
-B<ASP-like Perl call:>
+Creates an index for the specified table.
 
->    $Tag->index(
->        {
->         table => VALUE,
->        }
->    )
->
-> OR
->
->    $Tag->index($table, $ATTRHASH);
 
-Attribute aliases
 
->            base ==> table
->            database ==> table
 
- 
+# BEGIN ############ index Subsections ##############
+H4: {{CMD[id="index_basefile"]basefile}}
 
-H3: Description
+Database filename. Exports the table to this filename if old or missing before indexing. See also the {{C[jump="#export"]export}} tag for additional relevent attributes such as delimiter type, etc.
 
-Creates an index for the specified table.
 
+H4: {{CMD[id="index_col"]col}}
+
+alias for fields
+
+
+H4: {{CMD[id="index_columns"]columns}}
+
+alias for fields
+
+
+H4: {{CMD[id="index_export_only"]export_only}}
+
+Just do the export if necessary (not the index).
+
+
+H4: {{CMD[id="index_extension"]extension}}
+
+Index file extension (default "idx")
+
+
+H4: {{CMD[id="index_fields"]fields}}
+
+field(s) to index
+
+
+H4: {{CMD[id="index_fn"]fn}}
 
+alias for fields
 
+
+H4: {{CMD[id="index_show_status"]show_status}}
+
+Return '1' to the page if successful
+
+
+H4: {{CMD[id="index_spec"]spec}}
+
+The index specification
+
+
+H4: {{CMD[id="index_table"]table}}
+
+
+
+# END +++++++++++++ index Subsections ++++++++++++
+
 H2: item_list
 
 
@@ -5288,6 +7383,62 @@
 
  
 
+# BEGIN ############### item_list Summary Tables ####################
+!block example;
+    [B<item_list> nameI<other_named_attributes>]
+!endblock
+
+!block table; colvaligns="TTT"; format="262"
+Parameters|Description|Default
+{{CMD[jump="#item_list_name"]cart}}|<<
+Alias for name
+>>|DEFAULT_VALUE
+{{CMD[jump="#item_list_name"]name}}|<<
+>>|DEFAULT_VALUE
+!endblock
+
+!block table; colvaligns="TT"
+Attributes|Default
+{{CMD[jump="#item_list_ATT1"]ATT1}}|I<none>
+{{CMD[jump="#attr_interpolate"]interpolate}}|I<No>
+{{CMD[jump="#attr_reparse"]reparse}}|I<Yes>
+!endblock
+
+!block table; headings=1; colvaligns="TT"
+A|B
+Other_Charactreristics|
+Invalidates cache|I<YES>
+Container tag|I<Yes>
+Has Subtags|I<No>
+Nests|I<No>
+!endblock
+
+
+B<Tag expansion example:>
+
+!block example
+   [item_list name]
+---
+   TAGRESULT
+!endblock
+
+
+B<ASP-like Perl call:>
+
+!block example; lang="Perl"
+   $Tag->item_list(  { name => VALUE_name
+}, $body  );
+!endblock
+
+or similarly with positional parameters,
+
+!block example; lang="Perl"
+    $Tag->item_list(name, $attribute_hash_reference, $body);
+!endblock
+
+# END +++++++++++++++ item_list End Summary Tables ++++++++++++++++++++
+
+
 H3: Description
 
 
@@ -5460,6 +7611,14 @@
 
 
 
+
+# BEGIN ########### item_list Subsections ##############
+H4: {{CMD[id="item_list_name"]name}}
+
+
+
+# END ++++++++++++ item_list Subsections +++++++++++++
+
 H2: label
 
 The page label for goto. See E<lbracket>{{C[jump="#goto"]goto}}] tag for description.  Note that this is not a standard tag, but is simply a marker used by {{C[jump="#goto"]goto}}.
@@ -5473,76 +7632,189 @@
 !endblock
 
 
+H3: Summary
 
-H2: log
+NO SUMMARY SECTION
 
-Log contained text to specified file.
 
-H3: Summary
+# BEGIN ############### label Summary Tables ####################
+!block example;
+    [B<label> ]
+!endblock
 
-\Parameters: B<file>
+!block table; colvaligns="TT"
+Attributes|Default
+{{CMD[jump="#attr_interpolate"]interpolate (reparse)}}|I<No>
+!endblock
 
-* file
-** name of file to log to. 'file="E<gt>I<filename>"' also sets 'create' attribute.
+!block table; headings=1; colvaligns="TT"
+A|B
+Other_Charactreristics|
+Invalidates cache|I<No>
+Container tag|I<No>
+Has Subtags|I<No>
+Nests|I<Yes>
+!endblock
 
-* create 
-** Set create=1 to create the file if not present
 
-* process
-** Processing (if any) to apply to the content while logging
-*** nostrip (don't strip leading/trailing whitespace and convert "\r\n" to "\n"
+B<Tag expansion example:>
 
-* delim and record_delim
-** Line and record delimiters, respectively
+!block example
+   [label ]
+---
+   TAGRESULT
+!endblock
 
-* type
-** Log type
-*** text (ordinary text file)
-*** quot (delimited entries)
-*** error (add Interchange error formatting and time/location stamps)
 
-* hide
-** Suppress status otherwise returned by tag to the page.
+B<ASP-like Perl call:>
 
+!block example; lang="Perl"
+   $Tag->label(  { 
+}, $body  );
+!endblock
 
-B<The attribute hash reference is passed> after the parameters but before
-the container text argument.
-B<This may mean that there are parameters not shown here.>
+or similarly with positional parameters,
 
-Must pass named parameter interpolate=1 to cause interpolation.
+!block example; lang="Perl"
+    $Tag->label(, $attribute_hash_reference, $body);
+!endblock
 
-This is a container tag, i.e. [log] FOO [/log].
-\Nesting: NO
+# END +++++++++++++++ label End Summary Tables ++++++++++++++++++++
 
-Invalidates cache: B<no>
 
-Called Routine: 
+H3: Description
 
-B<ASP-like Perl call:>
+NO DESCRIPTION SECTION
 
->    $Tag->log(
->        {
->         file => VALUE,
->        },
->        BODY
->    )
->
-> OR
->
->    $Tag->log($file, $ATTRHASH, $BODY);
+H2: log
 
-Attribute aliases
+Log contained text to specified file.
 
->            arg ==> file
+H3: Summary
 
+!block example;
+    [B<log> fileI<other_named_attributes>]
+!endblock
 
- 
+!block table; colvaligns="TTT"; format="262"
+Parameters|Description|Default
+{{CMD[jump="#log_file"]arg}}|<<
+Alias for file
+>>|DEFAULT_VALUE
+{{CMD[jump="#log_create"]create}}|<<
+Set create=1 to create the file if not present
+>>|DEFAULT_VALUE
+{{CMD[jump="#log_delim"]delim}}|<<
+Line delimiter
+>>|DEFAULT_VALUE
+{{CMD[jump="#log_file"]file}}|<<
+name of file to log to. 'file="E<gt>I<filename>"' also sets 'create' attribute.
+>>|DEFAULT_VALUE
+{{CMD[jump="#log_hide"]hide}}|<<
+Suppress status otherwise returned by tag to the page.
+>>|DEFAULT_VALUE
+{{CMD[jump="#log_process"]process}}|<<
+Processing (if any) to apply to the content while logging
+* nostrip (don't strip leading/trailing whitespace and convert "\r\n" to "\n"
+>>|DEFAULT_VALUE
+{{CMD[jump="#log_record_delim"]record_delim}}|<<
+Record delimiter
+>>|DEFAULT_VALUE
+{{CMD[jump="#log_type"]type}}|<<
+Log type
+* text (ordinary text file)
+* quot (delimited entries)
+* error (add Interchange error formatting and time/location stamps)
+>>|DEFAULT_VALUE
+!endblock
+
+!block table; colvaligns="TT"
+Attributes|Default
+{{CMD[jump="#log_ATT1"]ATT1}}|I<none>
+{{CMD[jump="#attr_interpolate"]interpolate}}|I<No>
+{{CMD[jump="#attr_reparse"]reparse}}|I<Yes>
+!endblock
+
+!block table; headings=1; colvaligns="TT"
+A|B
+Other_Charactreristics|
+Invalidates cache|I<no>
+Container tag|I<Yes>
+Has Subtags|I<No>
+Nests|I<No>
+!endblock
+
 
+B<Tag expansion example:>
+
+!block example
+   [log file]
+---
+   TAGRESULT
+!endblock
+
+
+B<ASP-like Perl call:>
+
+!block example; lang="Perl"
+   $Tag->log(  { file => VALUE_file
+}, $body  );
+!endblock
+
+or similarly with positional parameters,
+
+!block example; lang="Perl"
+    $Tag->log(file, $attribute_hash_reference, $body);
+!endblock
+
 H3: Description
 
 Log contained text to specified file.
 
 
+
+# BEGIN ############ log Subsections ##############
+H4: {{CMD[id="log_create"]create}}
+
+Set create=1 to create the file if not present
+
+
+H4: {{CMD[id="log_delim"]delim}}
+
+Line delimiter
+
+
+H4: {{CMD[id="log_file"]file}}
+
+name of file to log to. 'file="E<gt>I<filename>"' also sets 'create' attribute.
+
+
+H4: {{CMD[id="log_hide"]hide}}
+
+Suppress status otherwise returned by tag to the page.
+
+
+H4: {{CMD[id="log_process"]process}}
+
+Processing (if any) to apply to the content while logging
+* nostrip (don't strip leading/trailing whitespace and convert "\r\n" to "\n"
+
+
+H4: {{CMD[id="log_record_delim"]record_delim}}
+
+Record delimiter
+
+
+H4: {{CMD[id="log_type"]type}}
+
+Log type
+* text (ordinary text file)
+* quot (delimited entries)
+* error (add Interchange error formatting and time/location stamps)
+
+
+# END +++++++++++++ log Subsections ++++++++++++
+
 H2: loop
 
 
@@ -5592,6 +7864,65 @@
 
  
 
+# BEGIN ############### loop Summary Tables ####################
+!block example;
+    [B<loop> listI<other_named_attributes>]
+!endblock
+
+!block table; colvaligns="TTT"; format="262"
+Parameters|Description|Default
+{{CMD[jump="#loop_list"]arg}}|<<
+Alias for list
+>>|DEFAULT_VALUE
+{{CMD[jump="#loop_list"]args}}|<<
+Alias for list
+>>|DEFAULT_VALUE
+{{CMD[jump="#loop_list"]list}}|<<
+>>|DEFAULT_VALUE
+!endblock
+
+!block table; colvaligns="TT"
+Attributes|Default
+{{CMD[jump="#loop_ATT1"]ATT1}}|I<none>
+{{CMD[jump="#attr_interpolate"]interpolate}}|I<No>
+{{CMD[jump="#attr_reparse"]reparse}}|I<Yes>
+!endblock
+
+!block table; headings=1; colvaligns="TT"
+A|B
+Other_Charactreristics|
+Invalidates cache|I<no>
+Container tag|I<Yes>
+Has Subtags|I<No>
+Nests|I<No>
+!endblock
+
+
+B<Tag expansion example:>
+
+!block example
+   [loop list]
+---
+   TAGRESULT
+!endblock
+
+
+B<ASP-like Perl call:>
+
+!block example; lang="Perl"
+   $Tag->loop(  { list => VALUE_list
+}, $body  );
+!endblock
+
+or similarly with positional parameters,
+
+!block example; lang="Perl"
+    $Tag->loop(list, $attribute_hash_reference, $body);
+!endblock
+
+# END +++++++++++++++ loop End Summary Tables ++++++++++++++++++++
+
+
 H3: Description
 
 
@@ -5805,59 +8136,83 @@
 
 
 
-H2: mail
 
-Mail contained text to recipient specified by 'to' using the program specified with the SendMailProgram catalog directive.
+# BEGIN ########### loop Subsections ##############
+H4: {{CMD[id="loop_list"]list}}
 
-H3: Summary
 
-\Parameters: B<to>
 
-Positional parameters in same order.
+# END ++++++++++++ loop Subsections +++++++++++++
 
-* raw
-** Send it raw without creating headers and checking content, recipient, subject, etc.
+H2: mail
 
-* extra
-** Additional headers (these will also be added to 'raw' messages)
+Mail contained text to recipient specified by 'to' using the program specified with the SendMailProgram catalog directive.
 
-* success
-** Tag return value if successful (default is 1).
+H3: Summary
 
-* hide
-** Suppress tag return value. This would otherwise be the 'success' attribute setting.
+!block example;
+    [B<mail> toI<other_named_attributes>]
+!endblock
 
-* show
-** The tag will return the final message with headers in the page
+!block table; colvaligns="TTT"; format="262"
+Parameters|Description|Default
+{{CMD[jump="#mail_extra"]extra}}|<<
+Additional headers (these will also be added to 'raw' messages)
+>>|DEFAULT_VALUE
+{{CMD[jump="#mail_hide"]hide}}|<<
+Suppress tag return value. This would otherwise be the 'success' attribute setting.
+>>|DEFAULT_VALUE
+{{CMD[jump="#mail_raw"]raw}}|<<
+Send it raw without creating headers and checking content, recipient, subject, etc.
+>>|DEFAULT_VALUE
+{{CMD[jump="#mail_show"]show}}|<<
+The tag will return the final message with headers in the page
+>>|DEFAULT_VALUE
+{{CMD[jump="#mail_success"]success}}|<<
+Tag return value if successful (default is 1).
+>>|DEFAULT_VALUE
+{{CMD[jump="#mail_to"]to}}|<<
+>>|DEFAULT_VALUE
+!endblock
 
+!block table; colvaligns="TT"
+Attributes|Default
+{{CMD[jump="#mail_ATT1"]ATT1}}|I<none>
+{{CMD[jump="#attr_interpolate"]interpolate}}|I<No>
+{{CMD[jump="#attr_reparse"]reparse}}|I<Yes>
+!endblock
 
-B<The attribute hash reference is passed> after the parameters but before
-the container text argument.
-B<This may mean that there are parameters not shown here.>
+!block table; headings=1; colvaligns="TT"
+A|B
+Other_Charactreristics|
+Invalidates cache|I<YES>
+Container tag|I<Yes>
+Has Subtags|I<No>
+Nests|I<No>
+!endblock
 
-Must pass named parameter interpolate=1 to cause interpolation.
 
-This is a container tag, i.e. [mail] FOO [/mail].
-\Nesting: NO
+B<Tag expansion example:>
 
-Invalidates cache: B<YES>
+!block example
+   [mail to]
+---
+   TAGRESULT
+!endblock
 
-Called Routine: 
 
 B<ASP-like Perl call:>
 
->    $Tag->mail(
->        {
->         to => VALUE,
->        },
->        BODY
->    )
->
-> OR
->
->    $Tag->mail($to, $ATTRHASH, $BODY);
+!block example; lang="Perl"
+   $Tag->mail(  { to => VALUE_to
+}, $body  );
+!endblock
 
- 
+or similarly with positional parameters,
+
+!block example; lang="Perl"
+    $Tag->mail(to, $attribute_hash_reference, $body);
+!endblock
 
 H3: Description
 
@@ -5865,6 +8220,39 @@
 Mail contained text to recipient specified by 'to' using the program specified with the SendMailProgram catalog directive.
 
 
+
+# BEGIN ############ mail Subsections ##############
+H4: {{CMD[id="mail_extra"]extra}}
+
+Additional headers (these will also be added to 'raw' messages)
+
+
+H4: {{CMD[id="mail_hide"]hide}}
+
+Suppress tag return value. This would otherwise be the 'success' attribute setting.
+
+
+H4: {{CMD[id="mail_raw"]raw}}
+
+Send it raw without creating headers and checking content, recipient, subject, etc.
+
+
+H4: {{CMD[id="mail_show"]show}}
+
+The tag will return the final message with headers in the page
+
+
+H4: {{CMD[id="mail_success"]success}}
+
+Tag return value if successful (default is 1).
+
+
+H4: {{CMD[id="mail_to"]to}}
+
+
+
+# END +++++++++++++ mail Subsections ++++++++++++
+
 H2: mvasp
 
 Executes the ASP-style perl code contained by the tag. The code will run under
@@ -6003,41 +8391,62 @@
 
 H3: Summary
 
-\Parameters: B<name>
+!block example;
+    [B<nitems> name]
+!endblock
+
+!block table; colvaligns="TTT"; format="262"
+Parameters|Description|Default
+{{CMD[jump="#nitems_compare"]compare}}|<<
+Regular expression the specified qualifier attribute's value must match to be counted. This replaces the truth value comparison.
+* N<Default:> None (uses truth value of the specified qualifier attribute)
+>>|DEFAULT_VALUE
+{{CMD[jump="#nitems_name"]name}}|<<
+Cart name
+* N<Default:> current cart
+>>|DEFAULT_VALUE
+{{CMD[jump="#nitems_qualifier"]qualifier}}|<<
+An item attribute that must be true in order to count the item.
+* N<Default:> None
+>>|DEFAULT_VALUE
+!endblock
 
-* name
-** Cart name
-** N<Default:> current cart
-
-* qualifier
-** An item attribute that must be true in order to count the item.
-** N<Default:> None
-
-* compare
-** Regular expression the specified qualifier attribute's value must match to be counted. This replaces the truth value comparison.
-** N<Default:> None (uses truth value of the specified qualifier attribute)
+!block table; colvaligns="TT"
+Attributes|Default
+{{CMD[jump="#attr_interpolate"]interpolate (reparse)}}|I<No>
+!endblock
 
+!block table; headings=1; colvaligns="TT"
+A|B
+Other_Charactreristics|
+Invalidates cache|I<YES>
+Container tag|I<No>
+Has Subtags|I<No>
+Nests|I<Yes>
+!endblock
 
 
-Must pass named parameter interpolate=1 to cause interpolation.
+B<Tag expansion example:>
 
-Invalidates cache: B<YES>
+!block example
+   [nitems name]
+---
+   TAGRESULT
+!endblock
 
-Called Routine: 
 
 B<ASP-like Perl call:>
 
->    $Tag->nitems(
->        {
->         name => VALUE,
->        }
->    )
->
-> OR
->
->    $Tag->nitems($name, $ATTRHASH);
+!block example; lang="Perl"
+   $Tag->nitems(  { name => VALUE_name
+}, $body  );
+!endblock
 
- 
+or similarly with positional parameters,
+
+!block example; lang="Perl"
+    $Tag->nitems(name, $attribute_hash_reference, $body);
+!endblock
 
 H3: Description
 
@@ -6049,6 +8458,28 @@
 
 
 
+
+# BEGIN ############ nitems Subsections ##############
+H4: {{CMD[id="nitems_compare"]compare}}
+
+Regular expression the specified qualifier attribute's value must match to be counted. This replaces the truth value comparison.
+* N<Default:> None (uses truth value of the specified qualifier attribute)
+
+
+H4: {{CMD[id="nitems_name"]name}}
+
+Cart name
+* N<Default:> current cart
+
+
+H4: {{CMD[id="nitems_qualifier"]qualifier}}
+
+An item attribute that must be true in order to count the item.
+* N<Default:> None
+
+
+# END +++++++++++++ nitems Subsections ++++++++++++
+
 H2: options
 
 Builds HTML widgets as defined in the options table for selecting options associated with a given product. This tag handles simple, matrix or modular options.  See also the {{C[jump="#accessories"]accessories}} tag.
@@ -6075,104 +8506,216 @@
 !endblock
 
 H3: Summary
-
-\Parameters: B<code>
-
-* code
-** Product key (usually sku).
-** No default
-
-* table
-** Table to use for option attributes.  
-** N<Default:> 'options'
 
-* td
-** Results as table rows. For example, compare the following example from the 'tools' sample data set with the earlier example:
-
-!block example
-===
-   [options code=os28005 td=1]
----
-   <td><input type=hidden name=mv_item_option value="logo">
-      <SELECT NAME="mv_order_logo">
-      <OPTION VALUE="c">Construct Something
-      <OPTION VALUE="y" SELECTED>Your Logo</SELECT></td>
-   <td><input type=hidden name=mv_item_option value="color">
-      <INPUT TYPE="radio" NAME="mv_order_color" VALUE="BLK" >&nbsp;Black
-      <INPUT TYPE="radio" NAME="mv_order_color" VALUE="BEIGE" >&nbsp;Beige
-      <INPUT TYPE="radio" NAME="mv_order_color" VALUE="WHITE" >&nbsp;White</td>
-   <td><input type=hidden name=mv_item_option value="bristle">
-      <SELECT NAME="mv_order_bristle">
-      <OPTION VALUE="synthetic">Synthetic
-      <OPTION VALUE="camel">Camel Hair</SELECT></td>
-===
+!block example;
+    [B<options> code]
 !endblock
 
-(Note that the output was reformatted to fit this page)
-
-* price
-** N<Default:> False
-** Boolean. If set and the options have prices, the HTML widget(s) will show the prices. This is like the {{C[jump="#accessories_price"]price}} attribute of the accessories tag.
-
-... Note that the {{C[jump="#accessories_price_data"]price_data}} setting comes from the 'price' column of the options table.
-
-... Technical note-- If your options table has different mappings, you can control this with $::Variable->{MV_OPTION_TABLE_MAP}
-
-* label
-** Shows labels for the options with the widgets.
-** N<Default:> False
+!block table; colvaligns="TTT"; format="262"
+Parameters|Description|Default
+{{CMD[jump="#options_bold"]bold}}|<<
+Boldfaces the labels if the C<'label'> option is set.
+* N<Default:> False
+>>|DEFAULT_VALUE
+{{CMD[jump="#options_code"]code}}|<<
+Product key (usually sku).
+* No default
+>>|DEFAULT_VALUE
+{{CMD[jump="#options_joiner"]joiner}}|<<
+The joiner for the widgets.
+* N<Default:> E<lt>BR>
+>>|DEFAULT_VALUE
+{{CMD[jump="#options_label"]label}}|<<
+Shows labels for the options with the widgets.
 
 The following example (using another item from the 'tools' data) illustrates the price and label N<attributes:>
 
-!block example
-===
-   [options code=os28011 label=1 price=1]
----
-   Handle<BR>
-     <input type=hidden name=mv_item_option value="handle">
-       <SELECT NAME="mv_order_handle">
-       <OPTION VALUE="W">Wood handle
-       <OPTION VALUE="E">Ebony handle ($20.00)</SELECT><BR>
-   Blade material<BR>
-     <input type=hidden name=mv_item_option value="blade">
-       <SELECT NAME="mv_order_blade">
-       <OPTION VALUE="P">Plastic blade ($-1.22)
-       <OPTION VALUE="S" SELECTED>Steel blade
-       <OPTION VALUE="T">Titanium blade ($100.00)</SELECT>
-===
-!endblock
+>===
+>   [options code=os28011 label=1 price=1]
+>---
+>   Handle<BR>
+>     <input type=hidden name=mv_item_option value="handle">
+>       <SELECT NAME="mv_order_handle">
+>       <OPTION VALUE="W">Wood handle
+>       <OPTION VALUE="E">Ebony handle ($20.00)</SELECT><BR>
+>   Blade material<BR>
+>     <input type=hidden name=mv_item_option value="blade">
+>       <SELECT NAME="mv_order_blade">
+>       <OPTION VALUE="P">Plastic blade ($-1.22)
+>       <OPTION VALUE="S" SELECTED>Steel blade
+>       <OPTION VALUE="T">Titanium blade ($100.00)</SELECT>
+>===
 
 (again, the output has been reformatted to fit the page).
 
-* bold
-** Boldfaces the labels if the C<'label'> option is set.
-** N<Default:> False
-
-* joiner
-** The joiner for the widgets.
-** N<Default:> E<lt>BR>
+* N<Default:> False
+>>|DEFAULT_VALUE
+{{CMD[jump="#options_price"]price}}|<<
+Boolean. If set and the options have prices, the HTML widget(s) will show the prices. This is like the {{C[jump="#accessories_price"]price}} attribute of the accessories tag.
+
+. Note that the {{C[jump="#accessories_price_data"]price_data}} setting comes from the 'price' column of the options table.
+
+. Technical note-- If your options table has different mappings, you can control this with $::Variable->{MV_OPTION_TABLE_MAP}
+>>|False
+{{CMD[jump="#options_table"]table}}|<<
+Table to use for option attributes.  
+* N<Default:> 'options'
+>>|DEFAULT_VALUE
+{{CMD[jump="#options_td"]td}}|<<
+Results as table rows. For example, compare the following example from the 'tools' sample data set with the earlier example:
+
+>===
+>   [options code=os28005 td=1]
+>---
+>   <td><input type=hidden name=mv_item_option value="logo">
+>      <SELECT NAME="mv_order_logo">
+>      <OPTION VALUE="c">Construct Something
+>      <OPTION VALUE="y" SELECTED>Your Logo</SELECT></td>
+>   <td><input type=hidden name=mv_item_option value="color">
+>      <INPUT TYPE="radio" NAME="mv_order_color" VALUE="BLK" >&nbsp;Black
+>      <INPUT TYPE="radio" NAME="mv_order_color" VALUE="BEIGE" >&nbsp;Beige
+>      <INPUT TYPE="radio" NAME="mv_order_color" VALUE="WHITE" >&nbsp;White</td>
+>   <td><input type=hidden name=mv_item_option value="bristle">
+>      <SELECT NAME="mv_order_bristle">
+>      <OPTION VALUE="synthetic">Synthetic
+>      <OPTION VALUE="camel">Camel Hair</SELECT></td>
+>===
 
-
-Must pass named parameter interpolate=1 to cause interpolation.
+(Note that the output was reformatted to fit this page)
+>>|DEFAULT_VALUE
+!endblock
 
-Invalidates cache: B<no>
+!block table; colvaligns="TT"
+Attributes|Default
+{{CMD[jump="#attr_interpolate"]interpolate (reparse)}}|I<No>
+!endblock
 
-Called Routine: 
+!block table; headings=1; colvaligns="TT"
+A|B
+Other_Charactreristics|
+Invalidates cache|I<no>
+Container tag|I<No>
+Has Subtags|I<No>
+Nests|I<Yes>
+!endblock
+
+
+B<Tag expansion example:>
+
+!block example
+   [options code]
+---
+   TAGRESULT
+!endblock
+
 
 B<ASP-like Perl call:>
 
->    $Tag->options(
->        {
->         code => VALUE,
->        }
->    )
->
-> OR
->
->    $Tag->options($code, $ATTRHASH);
+!block example; lang="Perl"
+   $Tag->options(  { code => VALUE_code
+}, $body  );
+!endblock
+
+or similarly with positional parameters,
+
+!block example; lang="Perl"
+    $Tag->options(code, $attribute_hash_reference, $body);
+!endblock
+
+H3: Description
+
+NO DESCRIPTION SECTION
+
+
+
+# BEGIN ############ options Subsections ##############
+H4: {{CMD[id="options_bold"]bold}}
+
+Boldfaces the labels if the C<'label'> option is set.
+* N<Default:> False
+
+
+H4: {{CMD[id="options_code"]code}}
+
+Product key (usually sku).
+* No default
+
+
+H4: {{CMD[id="options_joiner"]joiner}}
+
+The joiner for the widgets.
+* N<Default:> E<lt>BR>
+
+
+H4: {{CMD[id="options_label"]label}}
+
+Shows labels for the options with the widgets.
+
+The following example (using another item from the 'tools' data) illustrates the price and label N<attributes:>
+
+>===
+>   [options code=os28011 label=1 price=1]
+>---
+>   Handle<BR>
+>     <input type=hidden name=mv_item_option value="handle">
+>       <SELECT NAME="mv_order_handle">
+>       <OPTION VALUE="W">Wood handle
+>       <OPTION VALUE="E">Ebony handle ($20.00)</SELECT><BR>
+>   Blade material<BR>
+>     <input type=hidden name=mv_item_option value="blade">
+>       <SELECT NAME="mv_order_blade">
+>       <OPTION VALUE="P">Plastic blade ($-1.22)
+>       <OPTION VALUE="S" SELECTED>Steel blade
+>       <OPTION VALUE="T">Titanium blade ($100.00)</SELECT>
+>===
+
+(again, the output has been reformatted to fit the page).
+
+* N<Default:> False
+
+
+H4: {{CMD[id="options_price"]price}}
+
+Boolean. If set and the options have prices, the HTML widget(s) will show the prices. This is like the {{C[jump="#accessories_price"]price}} attribute of the accessories tag.
+
+. Note that the {{C[jump="#accessories_price_data"]price_data}} setting comes from the 'price' column of the options table.
+
+. Technical note-- If your options table has different mappings, you can control this with $::Variable->{MV_OPTION_TABLE_MAP}
+
+* N<Default:> False
+
+H4: {{CMD[id="options_table"]table}}
+
+Table to use for option attributes.  
+* N<Default:> 'options'
 
 
+H4: {{CMD[id="options_td"]td}}
 
+Results as table rows. For example, compare the following example from the 'tools' sample data set with the earlier example:
+
+>===
+>   [options code=os28005 td=1]
+>---
+>   <td><input type=hidden name=mv_item_option value="logo">
+>      <SELECT NAME="mv_order_logo">
+>      <OPTION VALUE="c">Construct Something
+>      <OPTION VALUE="y" SELECTED>Your Logo</SELECT></td>
+>   <td><input type=hidden name=mv_item_option value="color">
+>      <INPUT TYPE="radio" NAME="mv_order_color" VALUE="BLK" >&nbsp;Black
+>      <INPUT TYPE="radio" NAME="mv_order_color" VALUE="BEIGE" >&nbsp;Beige
+>      <INPUT TYPE="radio" NAME="mv_order_color" VALUE="WHITE" >&nbsp;White</td>
+>   <td><input type=hidden name=mv_item_option value="bristle">
+>      <SELECT NAME="mv_order_bristle">
+>      <OPTION VALUE="synthetic">Synthetic
+>      <OPTION VALUE="camel">Camel Hair</SELECT></td>
+>===
+
+(Note that the output was reformatted to fit this page)
+
+
+# END +++++++++++++ options Subsections ++++++++++++
+
 H2: or
 
 
@@ -6218,11 +8761,100 @@
 
  
 
+# BEGIN ############### or Summary Tables ####################
+!block example;
+    [B<or> type term op compare]
+!endblock
+
+!block table; colvaligns="TTT"; format="262"
+Parameters|Description|Default
+{{CMD[jump="#or_type"]base}}|<<
+Alias for type
+>>|DEFAULT_VALUE
+{{CMD[jump="#or_compare"]comp}}|<<
+Alias for compare
+>>|DEFAULT_VALUE
+{{CMD[jump="#or_compare"]compare}}|<<
+>>|DEFAULT_VALUE
+{{CMD[jump="#or_op"]op}}|<<
+>>|DEFAULT_VALUE
+{{CMD[jump="#or_op"]operator}}|<<
+Alias for op
+>>|DEFAULT_VALUE
+{{CMD[jump="#or_term"]term}}|<<
+>>|DEFAULT_VALUE
+{{CMD[jump="#or_type"]type}}|<<
+>>|DEFAULT_VALUE
+!endblock
+
+!block table; colvaligns="TT"
+Attributes|Default
+{{CMD[jump="#attr_interpolate"]interpolate (reparse)}}|I<No>
+!endblock
+
+!block table; headings=1; colvaligns="TT"
+A|B
+Other_Charactreristics|
+Invalidates cache|I<no>
+Container tag|I<No>
+Has Subtags|I<No>
+Nests|I<Yes>
+!endblock
+
+
+B<Tag expansion example:>
+
+!block example
+   [or type term op compare]
+---
+   TAGRESULT
+!endblock
+
+
+B<ASP-like Perl call:>
+
+!block example; lang="Perl"
+   $Tag->or(  { compare => VALUE_compare
+                 op => VALUE_op
+                 term => VALUE_term
+                 type => VALUE_type
+}, $body  );
+!endblock
+
+or similarly with positional parameters,
+
+!block example; lang="Perl"
+    $Tag->or(type,term,op,compare, $attribute_hash_reference, $body);
+!endblock
+
+# END +++++++++++++++ or End Summary Tables ++++++++++++++++++++
+
+
 H3: Description
 
 B<NO Description>
 
 
+
+# BEGIN ########### or Subsections ##############
+H4: {{CMD[id="or_compare"]compare}}
+
+
+
+H4: {{CMD[id="or_op"]op}}
+
+
+
+H4: {{CMD[id="or_term"]term}}
+
+
+
+H4: {{CMD[id="or_type"]type}}
+
+
+
+# END ++++++++++++ or Subsections +++++++++++++
+
 H2: order
 
 Expands into a hypertext link which will include the specified item
@@ -7063,6 +9695,61 @@
 
  
 
+# BEGIN ############### price Summary Tables ####################
+!block example;
+    [B<price> codeI<other_named_attributes>]
+!endblock
+
+!block table; colvaligns="TTT"; format="262"
+Parameters|Description|Default
+{{CMD[jump="#price_mv_ib"]base}}|<<
+Alias for mv_ib
+>>|DEFAULT_VALUE
+{{CMD[jump="#price_code"]code}}|<<
+>>|DEFAULT_VALUE
+!endblock
+
+!block table; colvaligns="TT"
+Attributes|Default
+{{CMD[jump="#price_ATT1"]ATT1}}|I<none>
+{{CMD[jump="#attr_interpolate"]interpolate (reparse)}}|I<No>
+!endblock
+
+!block table; headings=1; colvaligns="TT"
+A|B
+Other_Charactreristics|
+Invalidates cache|I<no>
+Container tag|I<No>
+Has Subtags|I<No>
+Nests|I<Yes>
+!endblock
+
+
+B<Tag expansion example:>
+
+!block example
+   [price code]
+---
+   TAGRESULT
+!endblock
+
+
+B<ASP-like Perl call:>
+
+!block example; lang="Perl"
+   $Tag->price(  { code => VALUE_code
+}, $body  );
+!endblock
+
+or similarly with positional parameters,
+
+!block example; lang="Perl"
+    $Tag->price(code, $attribute_hash_reference, $body);
+!endblock
+
+# END +++++++++++++++ price End Summary Tables ++++++++++++++++++++
+
+
 H3: Description
 
 
@@ -7161,6 +9848,14 @@
 
 
 
+
+# BEGIN ########### price Subsections ##############
+H4: {{CMD[id="price_code"]code}}
+
+
+
+# END ++++++++++++ price Subsections +++++++++++++
+
 H2: process
 
 This is a shortcut for the 'process' action, expanding to your catalog URL and session ID.  It is analogous to the {{C[jump="#area"]area}} tag, but is more limited. The following expansion is N<illuastrative:>
@@ -7931,6 +10626,58 @@
 
  
 
+# BEGIN ############### row Summary Tables ####################
+!block example;
+    [B<row> width]
+!endblock
+
+!block table; colvaligns="TTT"; format="262"
+Parameters|Description|Default
+{{CMD[jump="#row_width"]width}}|<<
+>>|DEFAULT_VALUE
+!endblock
+
+!block table; colvaligns="TT"
+Attributes|Default
+{{CMD[jump="#attr_interpolate"]interpolate}}|I<No>
+{{CMD[jump="#attr_reparse"]reparse}}|I<Yes>
+!endblock
+
+!block table; headings=1; colvaligns="TT"
+A|B
+Other_Charactreristics|
+Invalidates cache|I<no>
+Container tag|I<Yes>
+Has Subtags|I<No>
+Nests|I<No>
+!endblock
+
+
+B<Tag expansion example:>
+
+!block example
+   [row width]
+---
+   TAGRESULT
+!endblock
+
+
+B<ASP-like Perl call:>
+
+!block example; lang="Perl"
+   $Tag->row(  { width => VALUE_width
+}, $body  );
+!endblock
+
+or similarly with positional parameters,
+
+!block example; lang="Perl"
+    $Tag->row(width, $attribute_hash_reference, $body);
+!endblock
+
+# END +++++++++++++++ row End Summary Tables ++++++++++++++++++++
+
+
 H3: Description
 
 
@@ -7975,6 +10722,14 @@
 
 
 
+
+# BEGIN ########### row Subsections ##############
+H4: {{CMD[id="row_width"]width}}
+
+
+
+# END ++++++++++++ row Subsections +++++++++++++
+
 H2: salestax
 
 
@@ -8013,6 +10768,63 @@
 
  
 
+# BEGIN ############### salestax Summary Tables ####################
+!block example;
+    [B<salestax> name noformat]
+!endblock
+
+!block table; colvaligns="TTT"; format="262"
+Parameters|Description|Default
+{{CMD[jump="#salestax_name"]cart}}|<<
+Alias for name
+>>|DEFAULT_VALUE
+{{CMD[jump="#salestax_name"]name}}|<<
+>>|DEFAULT_VALUE
+{{CMD[jump="#salestax_noformat"]noformat}}|<<
+>>|DEFAULT_VALUE
+!endblock
+
+!block table; colvaligns="TT"
+Attributes|Default
+{{CMD[jump="#attr_interpolate"]interpolate (reparse)}}|I<No>
+!endblock
+
+!block table; headings=1; colvaligns="TT"
+A|B
+Other_Charactreristics|
+Invalidates cache|I<YES>
+Container tag|I<No>
+Has Subtags|I<No>
+Nests|I<Yes>
+!endblock
+
+
+B<Tag expansion example:>
+
+!block example
+   [salestax name noformat]
+---
+   TAGRESULT
+!endblock
+
+
+B<ASP-like Perl call:>
+
+!block example; lang="Perl"
+   $Tag->salestax(  { name => VALUE_name
+                       noformat => VALUE_noformat
+}, $body  );
+!endblock
+
+or similarly with positional parameters,
+
+!block example; lang="Perl"
+    $Tag->salestax(name,noformat, $attribute_hash_reference, $body);
+!endblock
+
+# END +++++++++++++++ salestax End Summary Tables ++++++++++++++++++++
+
+
 H3: Description
 
 
@@ -8026,16 +10838,28 @@
 
 
 
-H2: scratch
 
+# BEGIN ########### salestax Subsections ##############
+H4: {{CMD[id="salestax_name"]name}}
 
-H3: Summary
 
-\Parameters: B<name>
 
-Positional parameters in same order.
+H4: {{CMD[id="salestax_noformat"]noformat}}
 
 
+
+# END ++++++++++++ salestax Subsections +++++++++++++
+
+H2: scratch
+
+
+H3: Summary
+
+\Parameters: B<name>
+
+Positional parameters in same order.
+
+
 Pass attribute hash as last to subroutine: B<no>
 
 Must pass named parameter interpolate=1 to cause interpolation.
@@ -8058,6 +10882,57 @@
 
  
 
+# BEGIN ############### scratch Summary Tables ####################
+!block example;
+    [B<scratch> name]
+!endblock
+
+!block table; colvaligns="TTT"; format="262"
+Parameters|Description|Default
+{{CMD[jump="#scratch_name"]name}}|<<
+>>|DEFAULT_VALUE
+!endblock
+
+!block table; colvaligns="TT"
+Attributes|Default
+{{CMD[jump="#attr_interpolate"]interpolate (reparse)}}|I<No>
+!endblock
+
+!block table; headings=1; colvaligns="TT"
+A|B
+Other_Charactreristics|
+Invalidates cache|I<YES>
+Container tag|I<No>
+Has Subtags|I<No>
+Nests|I<Yes>
+!endblock
+
+
+B<Tag expansion example:>
+
+!block example
+   [scratch name]
+---
+   TAGRESULT
+!endblock
+
+
+B<ASP-like Perl call:>
+
+!block example; lang="Perl"
+   $Tag->scratch(  { name => VALUE_name
+}, $body  );
+!endblock
+
+or similarly with positional parameters,
+
+!block example; lang="Perl"
+    $Tag->scratch(name, $attribute_hash_reference, $body);
+!endblock
+
+# END +++++++++++++++ scratch End Summary Tables ++++++++++++++++++++
+
+
 H3: Description
 
 
@@ -8065,6 +10940,14 @@
 variable is set with a [set] value [/set] container pair.)
 
 
+
+# BEGIN ########### scratch Subsections ##############
+H4: {{CMD[id="scratch_name"]name}}
+
+
+
+# END ++++++++++++ scratch Subsections +++++++++++++
+
 H2: scratchd
 
 Deletes the named scratch variable and returns its value before the deletion. For example,
@@ -8181,6 +11064,68 @@
 
  
 
+# BEGIN ############### search_region Summary Tables ####################
+!block example;
+    [B<search_region> argI<other_named_attributes>]
+!endblock
+
+!block table; colvaligns="TTT"; format="262"
+Parameters|Description|Default
+{{CMD[jump="#search_region_arg"]arg}}|<<
+>>|DEFAULT_VALUE
+{{CMD[jump="#search_region_arg"]args}}|<<
+Alias for arg
+>>|DEFAULT_VALUE
+{{CMD[jump="#search_region_arg"]params}}|<<
+Alias for arg
+>>|DEFAULT_VALUE
+{{CMD[jump="#search_region_arg"]search}}|<<
+Alias for arg
+>>|DEFAULT_VALUE
+!endblock
+
+!block table; colvaligns="TT"
+Attributes|Default
+{{CMD[jump="#search_region_ATT1"]ATT1}}|I<none>
+{{CMD[jump="#attr_interpolate"]interpolate}}|I<No>
+{{CMD[jump="#attr_reparse"]reparse}}|I<Yes>
+!endblock
+
+!block table; headings=1; colvaligns="TT"
+A|B
+Other_Charactreristics|
+Invalidates cache|I<no>
+Container tag|I<Yes>
+Has Subtags|I<No>
+Nests|I<No>
+!endblock
+
+
+B<Tag expansion example:>
+
+!block example
+   [search_region arg]
+---
+   TAGRESULT
+!endblock
+
+
+B<ASP-like Perl call:>
+
+!block example; lang="Perl"
+   $Tag->search_region(  { arg => VALUE_arg
+}, $body  );
+!endblock
+
+or similarly with positional parameters,
+
+!block example; lang="Perl"
+    $Tag->search_region(arg, $attribute_hash_reference, $body);
+!endblock
+
+# END +++++++++++++++ search_region End Summary Tables ++++++++++++++++++++
+
+
 H3: Description
 
 B<NO Description>
@@ -8188,6 +11133,14 @@
 
 
 
+
+# BEGIN ########### search_region Subsections ##############
+H4: {{CMD[id="search_region_arg"]arg}}
+
+
+
+# END ++++++++++++ search_region Subsections +++++++++++++
+
 H2: selected
 
 
@@ -8223,6 +11176,61 @@
 
  
 
+# BEGIN ############### selected Summary Tables ####################
+!block example;
+    [B<selected> name valueI<other_named_attributes>]
+!endblock
+
+!block table; colvaligns="TTT"; format="262"
+Parameters|Description|Default
+{{CMD[jump="#selected_name"]name}}|<<
+>>|DEFAULT_VALUE
+{{CMD[jump="#selected_value"]value}}|<<
+>>|DEFAULT_VALUE
+!endblock
+
+!block table; colvaligns="TT"
+Attributes|Default
+{{CMD[jump="#selected_ATT1"]ATT1}}|I<none>
+{{CMD[jump="#attr_interpolate"]interpolate (reparse)}}|I<No>
+!endblock
+
+!block table; headings=1; colvaligns="TT"
+A|B
+Other_Charactreristics|
+Invalidates cache|I<YES>
+Container tag|I<No>
+Has Subtags|I<No>
+Nests|I<Yes>
+!endblock
+
+
+B<Tag expansion example:>
+
+!block example
+   [selected name value]
+---
+   TAGRESULT
+!endblock
+
+
+B<ASP-like Perl call:>
+
+!block example; lang="Perl"
+   $Tag->selected(  { name => VALUE_name
+                       value => VALUE_value
+}, $body  );
+!endblock
+
+or similarly with positional parameters,
+
+!block example; lang="Perl"
+    $Tag->selected(name,value, $attribute_hash_reference, $body);
+!endblock
+
+# END +++++++++++++++ selected End Summary Tables ++++++++++++++++++++
+
+
 H3: Description
 
 
@@ -8260,6 +11268,18 @@
 
 
 
+
+# BEGIN ########### selected Subsections ##############
+H4: {{CMD[id="selected_name"]name}}
+
+
+
+H4: {{CMD[id="selected_value"]value}}
+
+
+
+# END ++++++++++++ selected Subsections +++++++++++++
+
 H2: set
 
 
@@ -8296,6 +11316,58 @@
 
  
 
+# BEGIN ############### set Summary Tables ####################
+!block example;
+    [B<set> name]
+!endblock
+
+!block table; colvaligns="TTT"; format="262"
+Parameters|Description|Default
+{{CMD[jump="#set_name"]name}}|<<
+>>|DEFAULT_VALUE
+!endblock
+
+!block table; colvaligns="TT"
+Attributes|Default
+{{CMD[jump="#attr_interpolate"]interpolate}}|I<No>
+{{CMD[jump="#attr_reparse"]reparse}}|I<Yes>
+!endblock
+
+!block table; headings=1; colvaligns="TT"
+A|B
+Other_Charactreristics|
+Invalidates cache|I<YES>
+Container tag|I<Yes>
+Has Subtags|I<No>
+Nests|I<No>
+!endblock
+
+
+B<Tag expansion example:>
+
+!block example
+   [set name]
+---
+   TAGRESULT
+!endblock
+
+
+B<ASP-like Perl call:>
+
+!block example; lang="Perl"
+   $Tag->set(  { name => VALUE_name
+}, $body  );
+!endblock
+
+or similarly with positional parameters,
+
+!block example; lang="Perl"
+    $Tag->set(name, $attribute_hash_reference, $body);
+!endblock
+
+# END +++++++++++++++ set End Summary Tables ++++++++++++++++++++
+
+
 H3: Description
 
 
@@ -8326,6 +11398,14 @@
 
 
 
+
+# BEGIN ########### set Subsections ##############
+H4: {{CMD[id="set_name"]name}}
+
+
+
+# END ++++++++++++ set Subsections +++++++++++++
+
 H2: set_cookie
 
 Sets browser cookie(s) with the specified attributes.
@@ -8494,12 +11574,72 @@
 
  
 
+# BEGIN ############### seti Summary Tables ####################
+!block example;
+    [B<seti> name]
+!endblock
+
+!block table; colvaligns="TTT"; format="262"
+Parameters|Description|Default
+{{CMD[jump="#seti_name"]name}}|<<
+>>|DEFAULT_VALUE
+!endblock
+
+!block table; colvaligns="TT"
+Attributes|Default
+{{CMD[jump="#attr_interpolate"]interpolate}}|I<No>
+{{CMD[jump="#attr_reparse"]reparse}}|I<Yes>
+!endblock
+
+!block table; headings=1; colvaligns="TT"
+A|B
+Other_Charactreristics|
+Invalidates cache|I<YES>
+Container tag|I<Yes>
+Has Subtags|I<No>
+Nests|I<No>
+!endblock
+
+
+B<Tag expansion example:>
+
+!block example
+   [seti name]
+---
+   TAGRESULT
+!endblock
+
+
+B<ASP-like Perl call:>
+
+!block example; lang="Perl"
+   $Tag->seti(  { name => VALUE_name
+}, $body  );
+!endblock
+
+or similarly with positional parameters,
+
+!block example; lang="Perl"
+    $Tag->seti(name, $attribute_hash_reference, $body);
+!endblock
+
+# END +++++++++++++++ seti End Summary Tables ++++++++++++++++++++
+
+
 H3: Description
 
 Equivalent to the E<lbracket>{{C[jump="#set"]set}}] tag, except that
 it {{CMD[jump="#attr_interpolate"]interpolates}} by default.
 
 
+
+# BEGIN ########### seti Subsections ##############
+H4: {{CMD[id="seti_name"]name}}
+
+
+
+# END ++++++++++++ seti Subsections +++++++++++++
+
 H2: setlocale
 
 Sets locale and/or currency for the current page. Can be made persistent for the user with the 'persist' option. Resets default locale if called without arguments.  See also {{CMD[jump="ictemplates.html#Setting the Locale"]Setting the Locale}} in the template documentation.
@@ -8507,45 +11647,62 @@
 
 H3: Summary
 
-B<Parameters:> B<locale currency>
-
-* locale
-** The locale to use.
-** N<Default:> [scratch mv_locale] (see also 'persist' attribute)
-
-* currency
-** The currency format to use.
-** N<Default:> [scratch mv_currency] (see also 'persist' attribute)
+!block example;
+    [B<setlocale> ]
+!endblock
 
-Positional parameters in same order.
+!block table; colvaligns="TTT"; format="262"
+Parameters|Description|Default
+{{CMD[jump="#setlocale_currency"]currency}}|<<
+The currency format to use.
+* N<Default:> [scratch mv_currency] (see also 'persist' attribute)
+>>|DEFAULT_VALUE
+{{CMD[jump="#setlocale_locale"]locale}}|<<
+The locale to use.
+* N<Default:> [scratch mv_locale] (see also 'persist' attribute)
+>>|DEFAULT_VALUE
+{{CMD[jump="#setlocale_persist"]persist}}|<<
+Setting 'C<persist=1>' also sets the scratch variables, B<mv_locale> and B<mv_currency> to specified locale and currency. This makes the locale settings persistent for the user's session. Otherwise (C<persist=0>), the C<setlocale> tag affects the remainder of the current page only.
+>>|DEFAULT_VALUE
+!endblock
 
-B<Named Attrbutes>
+!block table; colvaligns="TT"
+Attributes|Default
+{{CMD[jump="#attr_interpolate"]interpolate (reparse)}}|I<No>
+!endblock
 
-* persist
-** Setting 'C<persist=1>' also sets the scratch variables, B<mv_locale> and B<mv_currency> to specified locale and currency. This makes the locale settings persistent for the user's session. Otherwise (C<persist=0>), the C<setlocale> tag affects the remainder of the current page only.
+!block table; headings=1; colvaligns="TT"
+A|B
+Other_Charactreristics|
+Invalidates cache|I<no>
+Container tag|I<No>
+Has Subtags|I<No>
+Nests|I<Yes>
+!endblock
 
 
-Must pass named parameter interpolate=1 to cause interpolation.
+B<Tag expansion example:>
 
-Invalidates cache: B<no>
+!block example
+   [setlocale ]
+---
+   TAGRESULT
+!endblock
 
-Called Routine: 
 
 B<ASP-like Perl call:>
 
->    $Tag->setlocale(
->        {
->         locale => VALUE,
->         currency => VALUE,
->        }
->    )
->
-> OR
->
->    $Tag->setlocale($locale, $currency, $ATTRHASH);
+!block example; lang="Perl"
+   $Tag->setlocale(  { 
+}, $body  );
+!endblock
 
- 
+or similarly with positional parameters,
 
+!block example; lang="Perl"
+    $Tag->setlocale(, $attribute_hash_reference, $body);
+!endblock
+
 H3: Description
 
 Immediately sets the locale to C<locale>, and will cause it to persist in future user pages if the C<persist> is set to a non-zero, non-blank value. If the C<currency> attribute is set, the pricing and currency-specific locale keys and Interchange configuration directives are modified to that locale. If there are no arguments, it sets it back to the user's default locale as defined in the scratch variables C<mv_locale> and C<mv_currency>.
@@ -8572,110 +11729,154 @@
 !endblock
 
 
-H2: shipping
 
-Returns the cost of shipping the items in the cart via the shipping mode set with the B<mode> parameter. See also the {{CMD[jump="icdatabase.html#Shipping"]Shipping}} section of the Database documentation.
+# BEGIN ############ setlocale Subsections ##############
+H4: {{CMD[id="setlocale_currency"]currency}}
 
+The currency format to use.
+* N<Default:> [scratch mv_currency] (see also 'persist' attribute)
 
-H3: Summary
 
-\Parameters: B<mode>
+H4: {{CMD[id="setlocale_locale"]locale}}
 
-* mode
-** N<Aliases:> B<name>, B<modes>
-** Whitespace, null or comma delimited list of modes for which to calculate shipping cost.  See also mv_shipmode.
-** N<Default:> E<lbracket>value mv_handling] if B<handling=1> or E<lbracket>value mv_shipmode] or 'default'
-
-* table
-** N<Alias:> B<tables>
-** Whitespace-delimited list of tables containing shipping data required for perl or query calculations (I<e.g.>, in the 'PERL' field of your shipping databaseE<nbspace>E<emdash> see {{CMD[jump="icdatabase.html#Shipping"]Shipping}}). You must specify the tables to get past the Perl '{{CMD[jump="http://www.perl.com/pub/doc/manual/html/lib/Safe.html"]Safe.pm}}' proctection. For example, you will get '{{CMD[jump="http://www.perl.com/pub/doc/manual/html/lib/Safe.html"]Safe}}' errors if you refer to an SQL table without specifying it here.
-** N<Default:> None
+The locale to use.
+* N<Default:> [scratch mv_locale] (see also 'persist' attribute)
 
-* cart
-** N<Alias:> B<carts>
-** Comma-delimited list of names of carts to calculate shipping cost for.
-** N<Default:> current cart
-
-* convert
-** Applies the conversion (if any) set with the {{C[jump="icconfig.html#PriceDivide"]PriceDivide}} catalog configuration directive.
-** N<Default:> True
-
-* noformat
-** Returns result as a number rather than a string formatted for the current locale's currency.
-** N<Default:> True
-
-* handling
-** Boolean-- use [value mv_handling] rather than [value mv_shipping] as first default for B<mode>. Note that this attribute matters only if you do not specify the B<mode> in the tag.
-** Note that this is set by the E<lbracket>{{C[jump="#handling"]handling}} tag (which calls the C<shipping> tag internally).  You should probably use the handling tag rather than setting this directly.
-** N<Default:> False
-
-* reset_modes
-** Clears list of modes in $Vend::Cfg->{Shipping_line}
-** N<Default:> False
-
-* add
-** Adds the argument to B<add> as data for a shipping.asc file (in $Vend::Cfg->{ScratchDir}/) and sets it.
-
-* file
-** Filename to read shipping from (default is usual shipping database, e.g., shipping.asc)
-
-* label
-** By default, returns HTML <OPTION ...> widget for shipping mode(s), including description and cost. You can override the widget with the B<format> attribute.  Note that B<label> overrides B<noformat>.
-** Here is an example from the foundation checkout.html page:
-!block example
-   [shipping
-     label=1
-     mode=|E<lbracket>{{CMD[jump="#data"]data}} table=country key='[default country US]' col=shipmodes]|
-   ]
-!endblock
-
-* format
-** Format for results with B<label> attribute.
-** N<Default:> '<OPTION VALUE="%M"%S>%D (%F)'
-** For example,
-... E<lbracket>shipping mode="FLAT"
-.... label=1
-.... format="My Format Desc %D Price %F"E<rbracket>
 
-* default
-** Resets shipping mode to default of [value mv_shipmode]
+H4: {{CMD[id="setlocale_persist"]persist}}
 
-* hide
-** Suppresses output
+Setting 'C<persist=1>' also sets the scratch variables, B<mv_locale> and B<mv_currency> to specified locale and currency. This makes the locale settings persistent for the user's session. Otherwise (C<persist=0>), the C<setlocale> tag affects the remainder of the current page only.
 
-* reset_message
-** Boolean. Blanks the session's current shipping message (i.e., $Session->{ship_message}).
 
+# END +++++++++++++ setlocale Subsections ++++++++++++
 
+H2: shipping
 
-Must pass named parameter interpolate=1 to cause interpolation.
+Returns the cost of shipping the items in the cart via the shipping mode set with the B<mode> parameter. See also the {{CMD[jump="icdatabase.html#Shipping"]Shipping}} section of the Database documentation.
 
-Invalidates cache: B<YES>
 
-Called Routine: 
+H3: Summary
 
-B<ASP-like Perl call:>
+!block example;
+    [B<shipping> mode]
+!endblock
 
->    $Tag->shipping(
->        {
->         mode => VALUE,
->        }
->    )
->
-> OR
->
->    $Tag->shipping($mode, $ATTRHASH);
+!block table; colvaligns="TTT"; format="262"
+Parameters|Description|Default
+{{CMD[jump="#shipping_add"]add}}|<<
+Adds the argument to B<add> as data for a shipping.asc file (in $Vend::Cfg->{ScratchDir}/) and sets it.
+>>|DEFAULT_VALUE
+{{CMD[jump="#shipping_cart"]cart}}|<<
+* N<Alias:> B<carts>
+Comma-delimited list of names of carts to calculate shipping cost for.
+* N<Default:> current cart
+>>|DEFAULT_VALUE
+{{CMD[jump="#shipping_cart"]carts}}|<<
+Alias for cart
+>>|DEFAULT_VALUE
+{{CMD[jump="#shipping_convert"]convert}}|<<
+Applies the conversion (if any) set with the {{C[jump="icconfig.html#PriceDivide"]PriceDivide}} catalog configuration directive.
+* N<Default:> True
+>>|DEFAULT_VALUE
+{{CMD[jump="#shipping_default"]default}}|<<
+Resets shipping mode to default of [value mv_shipmode]
+>>|DEFAULT_VALUE
+{{CMD[jump="#shipping_file"]file}}|<<
+Filename to read shipping from (default is usual shipping database, e.g., shipping.asc)
+>>|DEFAULT_VALUE
+{{CMD[jump="#shipping_format"]format}}|<<
+Format for results with B<label> attribute.
+* N<Default:> '<OPTION VALUE="%M"%S>%D (%F)'
+* For example,
+>    [shipping mode="FLAT"
+>             label=1
+>            format="My Format Desc %D Price %F"]
+>>|DEFAULT_VALUE
+{{CMD[jump="#shipping_handling"]handling}}|<<
+Boolean-- use [value mv_handling] rather than [value mv_shipping] as first default for B<mode>. Note that this attribute matters only if you do not specify the B<mode> in the tag.
+* Note that this is set by the E<lbracket>{{C[jump="#handling"]handling}} tag (which calls the C<shipping> tag internally).  You should probably use the handling tag rather than setting this directly.
+* N<Default:> False
+>>|DEFAULT_VALUE
+{{CMD[jump="#shipping_hide"]hide}}|<<
+Suppresses output
+>>|DEFAULT_VALUE
+{{CMD[jump="#shipping_label"]label}}|<<
+By default, returns HTML <OPTION ...> widget for shipping mode(s), including description and cost. You can override the widget with the B<format> attribute.  Note that B<label> overrides B<noformat>.
+* Here is an example from the foundation checkout.html page:
+>   [shipping
+>     label=1
+>     mode=|E<lbracket>{{CMD[jump="#data"]data}} table=country key='[default country US]' col=shipmodes]|
+>   ]
+>>|DEFAULT_VALUE
+{{CMD[jump="#shipping_mode"]mode}}|<<
+* N<Aliases:> B<name>, B<modes>
+Whitespace, null or comma delimited list of modes for which to calculate shipping cost.  See also mv_shipmode.
+* N<Default:> E<lbracket>value mv_handling] if B<handling=1> or E<lbracket>value mv_shipmode] or 'default'
+>>|DEFAULT_VALUE
+{{CMD[jump="#shipping_mode"]modes}}|<<
+Alias for mode
+>>|DEFAULT_VALUE
+{{CMD[jump="#shipping_mode"]name}}|<<
+Alias for mode
+>>|DEFAULT_VALUE
+{{CMD[jump="#shipping_noformat"]noformat}}|<<
+Returns result as a number rather than a string formatted for the current locale's currency.
+* N<Default:> True
+>>|DEFAULT_VALUE
+{{CMD[jump="#shipping_reset_message"]reset_message}}|<<
+Boolean. Blanks the session's current shipping message (i.e., $Session->{ship_message}).
+>>|DEFAULT_VALUE
+{{CMD[jump="#shipping_reset_modes"]reset_modes}}|<<
+Clears list of modes in $Vend::Cfg->{Shipping_line}
+* N<Default:> False
+>>|DEFAULT_VALUE
+{{CMD[jump="#shipping_table"]table}}|<<
+* N<Alias:> B<tables>
+Whitespace-delimited list of tables containing shipping data required for perl or query calculations (I<e.g.>, in the 'PERL' field of your shipping databaseE<nbspace>E<emdash> see {{CMD[jump="icdatabase.html#Shipping"]Shipping}}). You must specify the tables to get past the Perl '{{CMD[jump="http://www.perl.com/pub/doc/manual/html/lib/Safe.html"]Safe.pm}}' proctection. For example, you will get '{{CMD[jump="http://www.perl.com/pub/doc/manual/html/lib/Safe.html"]Safe}}' errors if you refer to an SQL table without specifying it here.
+* N<Default:> None
+>>|DEFAULT_VALUE
+{{CMD[jump="#shipping_table"]tables}}|<<
+Alias for table
+>>|DEFAULT_VALUE
+!endblock
 
-Attribute aliases
+!block table; colvaligns="TT"
+Attributes|Default
+{{CMD[jump="#attr_interpolate"]interpolate (reparse)}}|I<No>
+!endblock
 
->            carts ==> cart
->            modes ==> mode
->            name ==> mode
->            tables ==> table
+!block table; headings=1; colvaligns="TT"
+A|B
+Other_Charactreristics|
+Invalidates cache|I<YES>
+Container tag|I<No>
+Has Subtags|I<No>
+Nests|I<Yes>
+!endblock
 
 
- 
+B<Tag expansion example:>
+
+!block example
+   [shipping mode]
+---
+   TAGRESULT
+!endblock
+
 
+B<ASP-like Perl call:>
+
+!block example; lang="Perl"
+   $Tag->shipping(  { mode => VALUE_mode
+}, $body  );
+!endblock
+
+or similarly with positional parameters,
+
+!block example; lang="Perl"
+    $Tag->shipping(mode, $attribute_hash_reference, $body);
+!endblock
+
 H3: Description
 
 This tag calculates the shipping cost for items in the current cart via the specified shipping mode (usually set in the mv_shipmode variable).  See the {{CMD[jump="icdatabase.html#Shipping"]Shipping}} section of the Database documentation for detail.
@@ -8689,6 +11890,101 @@
 
 
 
+
+# BEGIN ############ shipping Subsections ##############
+H4: {{CMD[id="shipping_add"]add}}
+
+Adds the argument to B<add> as data for a shipping.asc file (in $Vend::Cfg->{ScratchDir}/) and sets it.
+
+
+H4: {{CMD[id="shipping_cart"]cart}}
+
+* N<Alias:> B<carts>
+Comma-delimited list of names of carts to calculate shipping cost for.
+* N<Default:> current cart
+
+
+H4: {{CMD[id="shipping_convert"]convert}}
+
+Applies the conversion (if any) set with the {{C[jump="icconfig.html#PriceDivide"]PriceDivide}} catalog configuration directive.
+* N<Default:> True
+
+
+H4: {{CMD[id="shipping_default"]default}}
+
+Resets shipping mode to default of [value mv_shipmode]
+
+
+H4: {{CMD[id="shipping_file"]file}}
+
+Filename to read shipping from (default is usual shipping database, e.g., shipping.asc)
+
+
+H4: {{CMD[id="shipping_format"]format}}
+
+Format for results with B<label> attribute.
+* N<Default:> '<OPTION VALUE="%M"%S>%D (%F)'
+* For example,
+>    [shipping mode="FLAT"
+>             label=1
+>            format="My Format Desc %D Price %F"]
+
+
+H4: {{CMD[id="shipping_handling"]handling}}
+
+Boolean-- use [value mv_handling] rather than [value mv_shipping] as first default for B<mode>. Note that this attribute matters only if you do not specify the B<mode> in the tag.
+* Note that this is set by the E<lbracket>{{C[jump="#handling"]handling}} tag (which calls the C<shipping> tag internally).  You should probably use the handling tag rather than setting this directly.
+* N<Default:> False
+
+
+H4: {{CMD[id="shipping_hide"]hide}}
+
+Suppresses output
+
+
+H4: {{CMD[id="shipping_label"]label}}
+
+By default, returns HTML <OPTION ...> widget for shipping mode(s), including description and cost. You can override the widget with the B<format> attribute.  Note that B<label> overrides B<noformat>.
+* Here is an example from the foundation checkout.html page:
+>   [shipping
+>     label=1
+>     mode=|E<lbracket>{{CMD[jump="#data"]data}} table=country key='[default country US]' col=shipmodes]|
+>   ]
+
+
+H4: {{CMD[id="shipping_mode"]mode}}
+
+* N<Aliases:> B<name>, B<modes>
+Whitespace, null or comma delimited list of modes for which to calculate shipping cost.  See also mv_shipmode.
+* N<Default:> E<lbracket>value mv_handling] if B<handling=1> or E<lbracket>value mv_shipmode] or 'default'
+
+
+H4: {{CMD[id="shipping_noformat"]noformat}}
+
+Returns result as a number rather than a string formatted for the current locale's currency.
+* N<Default:> True
+
+
+H4: {{CMD[id="shipping_reset_message"]reset_message}}
+
+Boolean. Blanks the session's current shipping message (i.e., $Session->{ship_message}).
+
+
+H4: {{CMD[id="shipping_reset_modes"]reset_modes}}
+
+Clears list of modes in $Vend::Cfg->{Shipping_line}
+* N<Default:> False
+
+
+H4: {{CMD[id="shipping_table"]table}}
+
+* N<Alias:> B<tables>
+Whitespace-delimited list of tables containing shipping data required for perl or query calculations (I<e.g.>, in the 'PERL' field of your shipping databaseE<nbspace>E<emdash> see {{CMD[jump="icdatabase.html#Shipping"]Shipping}}). You must specify the tables to get past the Perl '{{CMD[jump="http://www.perl.com/pub/doc/manual/html/lib/Safe.html"]Safe.pm}}' proctection. For example, you will get '{{CMD[jump="http://www.perl.com/pub/doc/manual/html/lib/Safe.html"]Safe}}' errors if you refer to an SQL table without specifying it here.
+* N<Default:> None
+
+
+# END +++++++++++++ shipping Subsections ++++++++++++
+
 H2: shipping_desc
 
 Returns the shipping description for the specified shipping B<mode>.  See the {{CMD[jump="icdatabase.html#Shipping"]Shipping}} section of the Database documentation.  See also shipping.asc database for shipping modes.
@@ -8737,48 +12033,122 @@
 !endblock
 
 
+
+H2: soap
+
+
+H3: Summary
+
+\Parameters: B<call uri proxy>
+
+Positional parameters in same order.
+
+
+B<The attribute hash reference is passed> to the subroutine after
+the parameters as the last argument.
+B<This may mean that there are parameters not shown here.>
+
+Must pass named parameter interpolate=1 to cause interpolation.
+
+Invalidates cache: B<YES>
+
+Called Routine: 
+
+B<ASP-like Perl call:>
+
+>    $Tag->soap(
+>        {
+>         call => VALUE,
+>         uri => VALUE,
+>         proxy => VALUE,
+>        }
+>    )
+>
+> OR
+>
+>    $Tag->soap($call, $uri, $proxy, $ATTRHASH);
+
+ 
+
+# BEGIN ############### soap Summary Tables ####################
+!block example;
+    [B<soap> call uri proxyI<other_named_attributes>]
+!endblock
+
+!block table; colvaligns="TTT"; format="262"
+Parameters|Description|Default
+{{CMD[jump="#soap_call"]call}}|<<
+>>|DEFAULT_VALUE
+{{CMD[jump="#soap_proxy"]proxy}}|<<
+>>|DEFAULT_VALUE
+{{CMD[jump="#soap_uri"]uri}}|<<
+>>|DEFAULT_VALUE
+!endblock
+
+!block table; colvaligns="TT"
+Attributes|Default
+{{CMD[jump="#soap_ATT1"]ATT1}}|I<none>
+{{CMD[jump="#attr_interpolate"]interpolate (reparse)}}|I<No>
+!endblock
+
+!block table; headings=1; colvaligns="TT"
+A|B
+Other_Charactreristics|
+Invalidates cache|I<YES>
+Container tag|I<No>
+Has Subtags|I<No>
+Nests|I<Yes>
+!endblock
+
+
+B<Tag expansion example:>
+
+!block example
+   [soap call uri proxy]
+---
+   TAGRESULT
+!endblock
+
+
+B<ASP-like Perl call:>
+
+!block example; lang="Perl"
+   $Tag->soap(  { call => VALUE_call
+                   proxy => VALUE_proxy
+                   uri => VALUE_uri
+}, $body  );
+!endblock
+
+or similarly with positional parameters,
+
+!block example; lang="Perl"
+    $Tag->soap(call,uri,proxy, $attribute_hash_reference, $body);
+!endblock
 
-H2: soap
+# END +++++++++++++++ soap End Summary Tables ++++++++++++++++++++
 
 
-H3: Summary
+H3: Description
 
-\Parameters: B<call uri proxy>
+B<NO Description>
 
-Positional parameters in same order.
 
 
-B<The attribute hash reference is passed> to the subroutine after
-the parameters as the last argument.
-B<This may mean that there are parameters not shown here.>
 
-Must pass named parameter interpolate=1 to cause interpolation.
+# BEGIN ########### soap Subsections ##############
+H4: {{CMD[id="soap_call"]call}}
 
-Invalidates cache: B<YES>
 
-Called Routine: 
 
-B<ASP-like Perl call:>
+H4: {{CMD[id="soap_proxy"]proxy}}
 
->    $Tag->soap(
->        {
->         call => VALUE,
->         uri => VALUE,
->         proxy => VALUE,
->        }
->    )
->
-> OR
->
->    $Tag->soap($call, $uri, $proxy, $ATTRHASH);
 
- 
 
-H3: Description
+H4: {{CMD[id="soap_uri"]uri}}
 
-B<NO Description>
 
 
+# END ++++++++++++ soap Subsections +++++++++++++
 
 H2: strip
 
@@ -8853,6 +12223,63 @@
 
  
 
+# BEGIN ############### subtotal Summary Tables ####################
+!block example;
+    [B<subtotal> name noformat]
+!endblock
+
+!block table; colvaligns="TTT"; format="262"
+Parameters|Description|Default
+{{CMD[jump="#subtotal_name"]cart}}|<<
+Alias for name
+>>|DEFAULT_VALUE
+{{CMD[jump="#subtotal_name"]name}}|<<
+>>|DEFAULT_VALUE
+{{CMD[jump="#subtotal_noformat"]noformat}}|<<
+>>|DEFAULT_VALUE
+!endblock
+
+!block table; colvaligns="TT"
+Attributes|Default
+{{CMD[jump="#attr_interpolate"]interpolate (reparse)}}|I<No>
+!endblock
+
+!block table; headings=1; colvaligns="TT"
+A|B
+Other_Charactreristics|
+Invalidates cache|I<YES>
+Container tag|I<No>
+Has Subtags|I<No>
+Nests|I<Yes>
+!endblock
+
+
+B<Tag expansion example:>
+
+!block example
+   [subtotal name noformat]
+---
+   TAGRESULT
+!endblock
+
+
+B<ASP-like Perl call:>
+
+!block example; lang="Perl"
+   $Tag->subtotal(  { name => VALUE_name
+                       noformat => VALUE_noformat
+}, $body  );
+!endblock
+
+or similarly with positional parameters,
+
+!block example; lang="Perl"
+    $Tag->subtotal(name,noformat, $attribute_hash_reference, $body);
+!endblock
+
+# END +++++++++++++++ subtotal End Summary Tables ++++++++++++++++++++
+
+
 H3: Description
 
 
@@ -8869,6 +12296,18 @@
 
 
 
+
+# BEGIN ########### subtotal Subsections ##############
+H4: {{CMD[id="subtotal_name"]name}}
+
+
+
+H4: {{CMD[id="subtotal_noformat"]noformat}}
+
+
+
+# END ++++++++++++ subtotal Subsections +++++++++++++
+
 H2: tag
 
 
@@ -8913,6 +12352,65 @@
 
  
 
+# BEGIN ############### tag Summary Tables ####################
+!block example;
+    [B<tag> op argI<other_named_attributes>]
+!endblock
+
+!block table; colvaligns="TTT"; format="262"
+Parameters|Description|Default
+{{CMD[jump="#tag_arg"]arg}}|<<
+>>|DEFAULT_VALUE
+{{CMD[jump="#tag_arg"]description}}|<<
+Alias for arg
+>>|DEFAULT_VALUE
+{{CMD[jump="#tag_op"]op}}|<<
+>>|DEFAULT_VALUE
+!endblock
+
+!block table; colvaligns="TT"
+Attributes|Default
+{{CMD[jump="#tag_ATT1"]ATT1}}|I<none>
+{{CMD[jump="#attr_interpolate"]interpolate}}|I<No>
+{{CMD[jump="#attr_reparse"]reparse}}|I<Yes>
+!endblock
+
+!block table; headings=1; colvaligns="TT"
+A|B
+Other_Charactreristics|
+Invalidates cache|I<no>
+Container tag|I<Yes>
+Has Subtags|I<No>
+Nests|I<No>
+!endblock
+
+
+B<Tag expansion example:>
+
+!block example
+   [tag op arg]
+---
+   TAGRESULT
+!endblock
+
+
+B<ASP-like Perl call:>
+
+!block example; lang="Perl"
+   $Tag->tag(  { arg => VALUE_arg
+                  op => VALUE_op
+}, $body  );
+!endblock
+
+or similarly with positional parameters,
+
+!block example; lang="Perl"
+    $Tag->tag(op,arg, $attribute_hash_reference, $body);
+!endblock
+
+# END +++++++++++++++ tag End Summary Tables ++++++++++++++++++++
+
+
 H3: Description
 
 
@@ -9035,6 +12533,18 @@
 
 
 
+
+# BEGIN ########### tag Subsections ##############
+H4: {{CMD[id="tag_arg"]arg}}
+
+
+
+H4: {{CMD[id="tag_op"]op}}
+
+
+
+# END ++++++++++++ tag Subsections +++++++++++++
+
 H2: time
 
 
@@ -9073,6 +12583,59 @@
 
  
 
+# BEGIN ############### time Summary Tables ####################
+!block example;
+    [B<time> localeI<other_named_attributes>]
+!endblock
+
+!block table; colvaligns="TTT"; format="262"
+Parameters|Description|Default
+{{CMD[jump="#time_locale"]locale}}|<<
+>>|DEFAULT_VALUE
+!endblock
+
+!block table; colvaligns="TT"
+Attributes|Default
+{{CMD[jump="#time_ATT1"]ATT1}}|I<none>
+{{CMD[jump="#attr_interpolate"]interpolate}}|I<No>
+{{CMD[jump="#attr_reparse"]reparse}}|I<Yes>
+!endblock
+
+!block table; headings=1; colvaligns="TT"
+A|B
+Other_Charactreristics|
+Invalidates cache|I<no>
+Container tag|I<Yes>
+Has Subtags|I<No>
+Nests|I<No>
+!endblock
+
+
+B<Tag expansion example:>
+
+!block example
+   [time locale]
+---
+   TAGRESULT
+!endblock
+
+
+B<ASP-like Perl call:>
+
+!block example; lang="Perl"
+   $Tag->time(  { locale => VALUE_locale
+}, $body  );
+!endblock
+
+or similarly with positional parameters,
+
+!block example; lang="Perl"
+    $Tag->time(locale, $attribute_hash_reference, $body);
+!endblock
+
+# END +++++++++++++++ time End Summary Tables ++++++++++++++++++++
+
+
 H3: Description
 
 Formats the current time according to POSIX strftime arguments.
@@ -9172,6 +12735,14 @@
 
 
 
+
+# BEGIN ########### time Subsections ##############
+H4: {{CMD[id="time_locale"]locale}}
+
+
+
+# END ++++++++++++ time Subsections +++++++++++++
+
 H2: timed_build
 
 
@@ -9210,6 +12781,59 @@
 
  
 
+# BEGIN ############### timed_build Summary Tables ####################
+!block example;
+    [B<timed_build> fileI<other_named_attributes>]
+!endblock
+
+!block table; colvaligns="TTT"; format="262"
+Parameters|Description|Default
+{{CMD[jump="#timed_build_file"]file}}|<<
+>>|DEFAULT_VALUE
+!endblock
+
+!block table; colvaligns="TT"
+Attributes|Default
+{{CMD[jump="#timed_build_ATT1"]ATT1}}|I<none>
+{{CMD[jump="#attr_interpolate"]interpolate}}|I<No>
+{{CMD[jump="#attr_reparse"]reparse}}|I<Yes>
+!endblock
+
+!block table; headings=1; colvaligns="TT"
+A|B
+Other_Charactreristics|
+Invalidates cache|I<no>
+Container tag|I<Yes>
+Has Subtags|I<No>
+Nests|I<No>
+!endblock
+
+
+B<Tag expansion example:>
+
+!block example
+   [timed_build file]
+---
+   TAGRESULT
+!endblock
+
+
+B<ASP-like Perl call:>
+
+!block example; lang="Perl"
+   $Tag->timed_build(  { file => VALUE_file
+}, $body  );
+!endblock
+
+or similarly with positional parameters,
+
+!block example; lang="Perl"
+    $Tag->timed_build(file, $attribute_hash_reference, $body);
+!endblock
+
+# END +++++++++++++++ timed_build End Summary Tables ++++++++++++++++++++
+
+
 H3: Description
 
 
@@ -9300,6 +12924,14 @@
 
 
 
+
+# BEGIN ########### timed_build Subsections ##############
+H4: {{CMD[id="timed_build_file"]file}}
+
+
+
+# END ++++++++++++ timed_build Subsections +++++++++++++
+
 H2: tmp
 
 
@@ -9333,8 +12965,60 @@
 > OR
 >
 >    $Tag->tmp($name, $BODY);
+
+ 
+
+# BEGIN ############### tmp Summary Tables ####################
+!block example;
+    [B<tmp> name]
+!endblock
+
+!block table; colvaligns="TTT"; format="262"
+Parameters|Description|Default
+{{CMD[jump="#tmp_name"]name}}|<<
+>>|DEFAULT_VALUE
+!endblock
+
+!block table; colvaligns="TT"
+Attributes|Default
+{{CMD[jump="#attr_interpolate"]interpolate}}|I<No>
+{{CMD[jump="#attr_reparse"]reparse}}|I<Yes>
+!endblock
+
+!block table; headings=1; colvaligns="TT"
+A|B
+Other_Charactreristics|
+Invalidates cache|I<YES>
+Container tag|I<Yes>
+Has Subtags|I<No>
+Nests|I<No>
+!endblock
+
+
+B<Tag expansion example:>
+
+!block example
+   [tmp name]
+---
+   TAGRESULT
+!endblock
+
+
+B<ASP-like Perl call:>
+
+!block example; lang="Perl"
+   $Tag->tmp(  { name => VALUE_name
+}, $body  );
+!endblock
+
+or similarly with positional parameters,
+
+!block example; lang="Perl"
+    $Tag->tmp(name, $attribute_hash_reference, $body);
+!endblock
 
- 
+# END +++++++++++++++ tmp End Summary Tables ++++++++++++++++++++
+
 
 H3: Description
 
@@ -9353,6 +13037,14 @@
 
 
 
+
+# BEGIN ########### tmp Subsections ##############
+H4: {{CMD[id="tmp_name"]name}}
+
+
+
+# END ++++++++++++ tmp Subsections +++++++++++++
+
 H2: total_cost
 
 
@@ -9391,6 +13083,63 @@
 
  
 
+# BEGIN ############### total_cost Summary Tables ####################
+!block example;
+    [B<total_cost> name noformat]
+!endblock
+
+!block table; colvaligns="TTT"; format="262"
+Parameters|Description|Default
+{{CMD[jump="#total_cost_name"]cart}}|<<
+Alias for name
+>>|DEFAULT_VALUE
+{{CMD[jump="#total_cost_name"]name}}|<<
+>>|DEFAULT_VALUE
+{{CMD[jump="#total_cost_noformat"]noformat}}|<<
+>>|DEFAULT_VALUE
+!endblock
+
+!block table; colvaligns="TT"
+Attributes|Default
+{{CMD[jump="#attr_interpolate"]interpolate (reparse)}}|I<No>
+!endblock
+
+!block table; headings=1; colvaligns="TT"
+A|B
+Other_Charactreristics|
+Invalidates cache|I<YES>
+Container tag|I<No>
+Has Subtags|I<No>
+Nests|I<Yes>
+!endblock
+
+
+B<Tag expansion example:>
+
+!block example
+   [total_cost name noformat]
+---
+   TAGRESULT
+!endblock
+
+
+B<ASP-like Perl call:>
+
+!block example; lang="Perl"
+   $Tag->total_cost(  { name => VALUE_name
+                         noformat => VALUE_noformat
+}, $body  );
+!endblock
+
+or similarly with positional parameters,
+
+!block example; lang="Perl"
+    $Tag->total_cost(name,noformat, $attribute_hash_reference, $body);
+!endblock
+
+# END +++++++++++++++ total_cost End Summary Tables ++++++++++++++++++++
+
+
 H3: Description
 
 
@@ -9401,6 +13150,18 @@
 
 
 
+
+# BEGIN ########### total_cost Subsections ##############
+H4: {{CMD[id="total_cost_name"]name}}
+
+
+
+H4: {{CMD[id="total_cost_noformat"]noformat}}
+
+
+
+# END ++++++++++++ total_cost Subsections +++++++++++++
+
 H2: tree
 
 
@@ -9447,6 +13208,71 @@
 
  
 
+# BEGIN ############### tree Summary Tables ####################
+!block example;
+    [B<tree> table master subordinate startI<other_named_attributes>]
+!endblock
+
+!block table; colvaligns="TTT"; format="262"
+Parameters|Description|Default
+{{CMD[jump="#tree_master"]master}}|<<
+>>|DEFAULT_VALUE
+{{CMD[jump="#tree_start"]start}}|<<
+>>|DEFAULT_VALUE
+{{CMD[jump="#tree_subordinate"]sub}}|<<
+Alias for subordinate
+>>|DEFAULT_VALUE
+{{CMD[jump="#tree_subordinate"]subordinate}}|<<
+>>|DEFAULT_VALUE
+{{CMD[jump="#tree_table"]table}}|<<
+>>|DEFAULT_VALUE
+!endblock
+
+!block table; colvaligns="TT"
+Attributes|Default
+{{CMD[jump="#tree_ATT1"]ATT1}}|I<none>
+{{CMD[jump="#attr_interpolate"]interpolate}}|I<No>
+{{CMD[jump="#attr_reparse"]reparse}}|I<Yes>
+!endblock
+
+!block table; headings=1; colvaligns="TT"
+A|B
+Other_Charactreristics|
+Invalidates cache|I<no>
+Container tag|I<Yes>
+Has Subtags|I<No>
+Nests|I<No>
+!endblock
+
+
+B<Tag expansion example:>
+
+!block example
+   [tree table master subordinate start]
+---
+   TAGRESULT
+!endblock
+
+
+B<ASP-like Perl call:>
+
+!block example; lang="Perl"
+   $Tag->tree(  { master => VALUE_master
+                   start => VALUE_start
+                   subordinate => VALUE_subordinate
+                   table => VALUE_table
+}, $body  );
+!endblock
+
+or similarly with positional parameters,
+
+!block example; lang="Perl"
+    $Tag->tree(table,master,subordinate,start, $attribute_hash_reference, $body);
+!endblock
+
+# END +++++++++++++++ tree End Summary Tables ++++++++++++++++++++
+
+
 H3: Description
 
 Provides iterative list capability for binary trees. It produces
@@ -9669,6 +13495,26 @@
 with C<option=1>, set the tag prefix with C<prefix>, etc.
 
 
+
+# BEGIN ########### tree Subsections ##############
+H4: {{CMD[id="tree_master"]master}}
+
+
+
+H4: {{CMD[id="tree_start"]start}}
+
+
+
+H4: {{CMD[id="tree_subordinate"]subordinate}}
+
+
+
+H4: {{CMD[id="tree_table"]table}}
+
+
+
+# END ++++++++++++ tree Subsections +++++++++++++
+
 H2: try
 
 Allows you to trap errors. Interchange processes the body text of the E<lbracket>C<try>]E<lbracket>C</try>] block and returns it normally if it does not generate an error. If it does generate an error, interchange executes the E<lbracket>C<catch>]E<lbracket>C</catch>] block.
@@ -9806,54 +13652,76 @@
 
 H3: Summary
 
-\Parameters: B<function>
+!block example;
+    [B<update> function]
+!endblock
 
-* function
-** cart
-*** Upates current or named cart (see C<name> attribute)
-
-** process
-*** Updates an order or a search page
-
-** values
-*** Updates user-entered fields
-
-** data
-*** Updates database, using current B<mv_> CGI form variables, for N<example:>
-**** B<mv_data_table> Table to update
-**** B<mv_data_key> Key into table
-**** B<mv_data_fields> Fields to update (space or null delimited)
-**** B<mv_data_function> One of the N<following:>
-***** delete
-***** update
-***** insert
-***** delete
-**** etc.
-
-* name
-** Cart name to update (if 'function=cart')
-** N<Default:> current cart
+!block table; colvaligns="TTT"; format="262"
+Parameters|Description|Default
+{{CMD[jump="#update_function"]function}}|<<
+* cart
+** Upates current or named cart (see C<name> attribute)
 
+* process
+** Updates an order or a search page
 
-Must pass named parameter interpolate=1 to cause interpolation.
+* values
+** Updates user-entered fields
 
-Invalidates cache: B<YES>
+* data
+** Updates database, using current B<mv_> CGI form variables, for N<example:>
+*** B<mv_data_table> Table to update
+*** B<mv_data_key> Key into table
+*** B<mv_data_fields> Fields to update (space or null delimited)
+*** B<mv_data_function> One of the N<following:>
+**** delete
+**** update
+**** insert
+**** delete
+*** etc.
+>>|DEFAULT_VALUE
+{{CMD[jump="#update_name"]name}}|<<
+Cart name to update (if 'function=cart')
+* N<Default:> current cart
+>>|DEFAULT_VALUE
+!endblock
 
-Called Routine: 
+!block table; colvaligns="TT"
+Attributes|Default
+{{CMD[jump="#attr_interpolate"]interpolate (reparse)}}|I<No>
+!endblock
+
+!block table; headings=1; colvaligns="TT"
+A|B
+Other_Charactreristics|
+Invalidates cache|I<YES>
+Container tag|I<No>
+Has Subtags|I<No>
+Nests|I<Yes>
+!endblock
+
+
+B<Tag expansion example:>
+
+!block example
+   [update function]
+---
+   TAGRESULT
+!endblock
+
 
 B<ASP-like Perl call:>
 
->    $Tag->update(
->        {
->         function => VALUE,
->        }
->    )
->
-> OR
->
->    $Tag->update($function, $ATTRHASH);
+!block example; lang="Perl"
+   $Tag->update(  { function => VALUE_function
+}, $body  );
+!endblock
 
- 
+or similarly with positional parameters,
+
+!block example; lang="Perl"
+    $Tag->update(function, $attribute_hash_reference, $body);
+!endblock
 
 H3: Description
 
@@ -9864,6 +13732,40 @@
 * B<data> (updates database, using current B<mv_> CGI form variables)
 
 
+
+# BEGIN ############ update Subsections ##############
+H4: {{CMD[id="update_function"]function}}
+
+* cart
+** Upates current or named cart (see C<name> attribute)
+
+* process
+** Updates an order or a search page
+
+* values
+** Updates user-entered fields
+
+* data
+** Updates database, using current B<mv_> CGI form variables, for N<example:>
+*** B<mv_data_table> Table to update
+*** B<mv_data_key> Key into table
+*** B<mv_data_fields> Fields to update (space or null delimited)
+*** B<mv_data_function> One of the N<following:>
+**** delete
+**** update
+**** insert
+**** delete
+*** etc.
+
+
+H4: {{CMD[id="update_name"]name}}
+
+Cart name to update (if 'function=cart')
+* N<Default:> current cart
+
+
+# END +++++++++++++ update Subsections ++++++++++++
+
 H2: userdb
 
 
@@ -9904,6 +13806,64 @@
 
  
 
+# BEGIN ############### userdb Summary Tables ####################
+!block example;
+    [B<userdb> functionI<other_named_attributes>]
+!endblock
+
+!block table; colvaligns="TTT"; format="262"
+Parameters|Description|Default
+{{CMD[jump="#userdb_function"]function}}|<<
+>>|DEFAULT_VALUE
+{{CMD[jump="#userdb_nickname"]name}}|<<
+Alias for nickname
+>>|DEFAULT_VALUE
+{{CMD[jump="#userdb_db"]table}}|<<
+Alias for db
+>>|DEFAULT_VALUE
+!endblock
+
+!block table; colvaligns="TT"
+Attributes|Default
+{{CMD[jump="#userdb_ATT1"]ATT1}}|I<none>
+{{CMD[jump="#attr_interpolate"]interpolate (reparse)}}|I<No>
+!endblock
+
+!block table; headings=1; colvaligns="TT"
+A|B
+Other_Charactreristics|
+Invalidates cache|I<YES>
+Container tag|I<No>
+Has Subtags|I<No>
+Nests|I<Yes>
+!endblock
+
+
+B<Tag expansion example:>
+
+!block example
+   [userdb function]
+---
+   TAGRESULT
+!endblock
+
+
+B<ASP-like Perl call:>
+
+!block example; lang="Perl"
+   $Tag->userdb(  { function => VALUE_function
+}, $body  );
+!endblock
+
+or similarly with positional parameters,
+
+!block example; lang="Perl"
+    $Tag->userdb(function, $attribute_hash_reference, $body);
+!endblock
+
+# END +++++++++++++++ userdb End Summary Tables ++++++++++++++++++++
+
+
 H3: Description
 
 
@@ -9967,6 +13927,14 @@
 
 
 
+
+# BEGIN ########### userdb Subsections ##############
+H4: {{CMD[id="userdb_function"]function}}
+
+
+
+# END ++++++++++++ userdb Subsections +++++++++++++
+
 H2: value
 
 Returns the the current value of the named form input field.
@@ -10144,6 +14112,58 @@
 
  
 
+# BEGIN ############### value_extended Summary Tables ####################
+!block example;
+    [B<value_extended> nameI<other_named_attributes>]
+!endblock
+
+!block table; colvaligns="TTT"; format="262"
+Parameters|Description|Default
+{{CMD[jump="#value_extended_name"]name}}|<<
+>>|DEFAULT_VALUE
+!endblock
+
+!block table; colvaligns="TT"
+Attributes|Default
+{{CMD[jump="#value_extended_ATT1"]ATT1}}|I<none>
+{{CMD[jump="#attr_interpolate"]interpolate (reparse)}}|I<No>
+!endblock
+
+!block table; headings=1; colvaligns="TT"
+A|B
+Other_Charactreristics|
+Invalidates cache|I<YES>
+Container tag|I<No>
+Has Subtags|I<No>
+Nests|I<Yes>
+!endblock
+
+
+B<Tag expansion example:>
+
+!block example
+   [value_extended name]
+---
+   TAGRESULT
+!endblock
+
+
+B<ASP-like Perl call:>
+
+!block example; lang="Perl"
+   $Tag->value_extended(  { name => VALUE_name
+}, $body  );
+!endblock
+
+or similarly with positional parameters,
+
+!block example; lang="Perl"
+    $Tag->value_extended(name, $attribute_hash_reference, $body);
+!endblock
+
+# END +++++++++++++++ value_extended End Summary Tables ++++++++++++++++++++
+
+
 H3: Description
 
 
@@ -10230,7 +14250,12 @@
 
 
 
+# BEGIN ########### value_extended Subsections ##############
+H4: {{CMD[id="value_extended_name"]name}}
+
+
 
+# END ++++++++++++ value_extended Subsections +++++++++++++
 
 H1: User-defined Tags
 



1.1                  docs/unfinished.tag.list


rev 1.1, prev_rev 1.0
Index: unfinished.tag.list
===================================================================
and
attr_list
bounce
cart
catch
cgi
checked
control
control_set
counter
currency
data
default
description
discount
dump
ecml
either
error
export
field
file
filter
flag
fly_list
fly_tax
handling
harness
html_table
if
import
include
index
item_list
label
log
loop
mail
nitems
options
or
price
row
salestax
scratch
search_region
selected
set
seti
setlocale
shipping
soap
subtotal
tag
time
timed_build
tmp
total_cost
tree
update
userdb
value_extended



1.1                  docs/scripts/throwaway/merge.pl


rev 1.1, prev_rev 1.0
Index: merge.pl
===================================================================
#!/usr/bin/perl -w
#---------------------------------------------------------------------
# merges tagref file given in its argument with STDIN stream
# (see tagformat)
#
# For example, from your shell:
#
# tagformat < tags.to.do > tagformat.out
# merge ictags.sdf < tagformat.out > ictags.reformatted.sdf
#---------------------------------------------------------------------
use strict;

my $fn = shift;
open( MRG, "<$fn" ) or die "Open $fn\: $!\n";
open( LIST, ">$fn.merged" ) or die "Open $fn.merged: $!\n";

my %tags;
my $tag;

while (<STDIN>) {
	if ( /^\!\!+ (\w+) \!+$/ ) {
		$tags{$1} = '';
		$tag = \$tags{$1};

	} elsif (ref $tag) {
		$$tag .= $_;

	} else {
		print STDERR "bad line: \[$_\]\n";
	}
}

my $off = 0;
while (<MRG>) {
	if ( /^h2:\s+(.+?)\s*$/i ) {
		if ( exists($tags{$1}) ) {
			print $tags{$1};
			print LIST "$1\n";
			$off = 1;
		} else {
			$off = 0;
		}

	} elsif ( /^[hHaA]1:\s+\S/ ) {
		$off = 0;
	}

	print unless $off;
}



1.1                  docs/scripts/throwaway/tagformat


rev 1.1, prev_rev 1.0
Index: tagformat
===================================================================
#!/usr/bin/perl -w
#-------------------------------------------------------------------------------
# tagfilter.pl
#
# Begun 10/4/2001 by William Dawkins
# v0.01
#
# Formats incomplete tags from sdf source
#
# Usage:
#
#-------------------------------------------------------------------------------

use strict;

my %tag = ();
my $raw = '';
my $ref;
my $parameter = '';
my $section = '';
my $extra = '';
my $alias_flag = 0;

while (<>) {
	if (/!!!!!+ (\w+) !+$/) {
		if ($tag{raw}) {
			raw_output( \%tag, \$raw );
		} else {
			output( \%tag, \$raw ) if %tag;
		}

		%tag = ( tagname     => $1,
				 positional  => '',
				 interpolate => 'No',
				 reparse     => 'Yes',
				 cache       => 'No',
				 container   => 'No',
				 subtags     => 'No',
				 nests       => 'Yes',
				 aliases     => {},
				 raw         => 1,
			   );

		$raw = '';
		$ref = \$tag{bang_header};
	}

	$raw .= $_;

	if ( /^h2:\s+(\w+)$/i ) {
		$ref = \$tag{heading};
		$section = 'h';

	} elsif ( /^h3:\s+summary$/i ) {
		$ref = \$tag{summary};
		$section = 's';

	} elsif ( /^h3:\s+description$/i ) {
		$ref = \$tag{description};
		$section = 'd';

	}

	$$ref .= $_;

	if ( $section eq 's' ) {
		$tag{more_attributes} = 1
		  if ( /This may mean that there are parameters not shown here/i );
		$tag{container} = 'Yes' if ( /^this is a container tag/i );
		$tag{cache} = $1 if ( /^invalidates cache: b\<(\w+)\>/i );
		$tag{nests} = 'No' if ( /^\\nesting:\s+no\s*$/i );

		if ($alias_flag) {
			if ( /^\>\s+(\w+)\s+==\>\s+(\w+)\s*$/ ) {
				$tag{parameters}->{$1} = "Alias for $2\n";
				$tag{aliases}->{$1} = $2;

			} else {
				$alias_flag = m/^\s*$/;
			}
		}

		$alias_flag = 1 if ( /^attribute aliases$/i );
	}

#CHECK THIS LOGIC
	if ( /^\\Parameters:\s+B\<(.+?)\>/ ) {
		$tag{parameters} = { ( map { $_ => '' } split(/\s+/, $1) ) };
		$tag{positional} = $1;
		next;

	} elsif ( /^\*\s+(\w+)$/ ) {
		if ($parameter) {
			$tag{parameters}->{$parameter} .= $extra;
			$tag{parameters}->{$parameter} =~ s/\@\@\@ NL\n*/\n/g;
			$tag{parameters}->{$parameter} =~ s/\n+$/\n/;
			$extra = '';			
		}
		$parameter = $1;
		$tag{raw} = 0;
		next;

	} elsif ( $parameter && /^\*(\*+)\s+(.+)$/ ) {
		$tag{parameters}->{$parameter} .= $extra;
		$tag{parameters}->{$parameter} .= ($1) ? "$1 $2\n" : "$2\n";
		$tag{parameters}->{$parameter} =~ s/\n+$/\n/;
		$extra = '';
		next;

	} elsif ( $parameter && ! m/^\s*$/ ) {
		$extra .= $_;
		next;

	} else {
		if ( $parameter ) {
			$tag{parameters}->{$parameter} .= $extra if $parameter;
			$extra = '';
			$tag{parameters}->{$parameter} =~ s/\@\@\@ NL\n*/\n/g;
			$tag{parameters}->{$parameter} =~ s/\n+$/\n/;
			$parameter = '';
			next;

		}
	}

}

if ($tag{raw}) {
	raw_output( \%tag, \$raw );
} else {
	output( \%tag, \$raw ) if %tag;
}


sub raw_output {
	my ($t, $r) = @_;

	print STDERR "no heading for $t->{tagname}\n" and
	  return 0 unless $t->{heading};

	print $t->{bang_header};
	print $t->{heading};

	print "N:Alias: $t->{alias}\n\n" if exists $t->{alias};

	print ( $t->{summary} ? $t->{summary} : "H3: Summary\n\n" );

	my $more = ( exists($t->{more_attributes}) ) ? 'I<other_named_attributes>' : '';
	print <<EOT;
\# BEGIN ############### $t->{tagname} Summary Tables ####################
!block example;
    \[B\<$t->{tagname}> $t->{positional}$more]
!endblock

EOT

	if ( exists($t->{parameters}) ) {
		print '!block table; colvaligns="TTT"; format="262"', "\n";
		print "Parameters\|Description\|Default\n";
		my $p = $t->{parameters};

		foreach my $k ( sort keys %$p ) {
			my $a = ( exists($t->{aliases}->{$k}) ) ? $t->{aliases}->{$k} : '';
			print '{{CMD[jump="#' . "$t->{tagname}_" . ( $a ? $a : $k );
			print '"]' . $k . '}}|<<' . "\n$p->{$k}\>\>\|DEFAULT_VALUE\n";
		}

		print "\!endblock\n\n";
	}

	print <<TABLETOP;
!block table; colvaligns="TT"
Attributes|Default
TABLETOP

	print '{{CMD[jump="#', $t->{tagname}, '_ATT1"]ATT1}}|I<none>', "\n" if $more;
	if ( $t->{container} eq 'Yes' ) {
		print '{{CMD[jump="#attr_interpolate"]interpolate}}|I<', "$t->{interpolate}>\n";
		print '{{CMD[jump="#attr_reparse"]reparse}}|I<', "$t->{reparse}>\n";

	} else {
		print '{{CMD[jump="#attr_interpolate"]interpolate (reparse)}}|I<', "$t->{interpolate}>\n";
	}

	print <<MORETABLE;
!endblock

!block table; headings=1; colvaligns="TT"
A|B
Other_Charactreristics|
Invalidates cache|I\<$t->{cache}\>
Container tag|I\<$t->{container}\>
Has Subtags|I\<$t->{subtags}\>
Nests|I\<$t->{nests}\>
!endblock


B<Tag expansion example:>

!block example
   \[$t->{tagname} $t->{positional}\]
---
   TAGRESULT
!endblock


B<ASP-like Perl call:>

!block example; lang="Perl"
MORETABLE

    print "   \$Tag->$t->{tagname}(  \{ ",
		join( "\n" . ( " " x (15 + length($t->{tagname})) ),
			map { "$_ => VALUE_$_" } sort split( /\s+/, $t->{positional}) ),
				"\n\}, \$body  \)\;\n";

	my $positional = $t->{positional};
	$positional =~ y/ /,/;

	print <<TABLEBOTTOM;
!endblock

or similarly with positional parameters,

!block example; lang="Perl"
    \$Tag->$t->{tagname}($positional, \$attribute_hash_reference, \$body);
!endblock

\# END +++++++++++++++ $t->{tagname} End Summary Tables ++++++++++++++++++++


TABLEBOTTOM

	print $t->{description};

	if ( exists($t->{parameters}) ) {
		print "\# BEGIN ########### $t->{tagname} Subsections ##############\n";

		my $p = $t->{parameters};
		print map { 'H4: {{CMD[id="' .
						"$t->{tagname}_$_\"\]$_\}\}\n\n$p->{$_}\n\n" }
			grep { ! exists($t->{aliases}->{$_}) } sort keys %$p;

		print "\# END ++++++++++++ $t->{tagname} Subsections +++++++++++++\n\n";
	}

	return 1;
}



sub output {
	my ($t, $r) = @_;

	print STDERR "no heading for $t->{tagname}\n" and
	  return 0 unless $t->{heading};

	print $t->{bang_header};
	print $t->{heading};

	print "N:Alias: $t->{alias}\n\n" if exists $t->{alias};

	print "H3: Summary\n\n";

	my $more = ( exists($t->{more_attributes}) ) ? 'I<other_named_attributes>' : '';
	print <<EOT;
!block example;
    \[B\<$t->{tagname}> $t->{positional}$more]
!endblock

EOT

	if ( exists($t->{parameters}) ) {
		print '!block table; colvaligns="TTT"; format="262"', "\n";
		print "Parameters\|Description\|Default\n";
		my $p = $t->{parameters};

		foreach my $k ( sort keys %$p ) {
			my $a = ( exists($t->{aliases}->{$k}) ) ? $t->{aliases}->{$k} : '';
			print '{{CMD[jump="#' . "$t->{tagname}_" . ( $a ? $a : $k );
			print '"]' . $k . '}}|<<' . "\n$p->{$k}\>\>\|DEFAULT_VALUE\n";
		}

		print "\!endblock\n\n";
	}

	print <<TABLETOP;
!block table; colvaligns="TT"
Attributes|Default
TABLETOP

	print '{{CMD[jump="#', $t->{tagname}, '_ATT1"]ATT1}}|I<none>', "\n" if $more;
	if ( $t->{container} eq 'Yes' ) {
		print '{{CMD[jump="#attr_interpolate"]interpolate}}|I<', "$t->{interpolate}>\n";
		print '{{CMD[jump="#attr_reparse"]reparse}}|I<', "$t->{reparse}>\n";

	} else {
		print '{{CMD[jump="#attr_interpolate"]interpolate (reparse)}}|I<', "$t->{interpolate}>\n";
	}

	print <<MORETABLE;
!endblock

!block table; headings=1; colvaligns="TT"
A|B
Other_Charactreristics|
Invalidates cache|I\<$t->{cache}\>
Container tag|I\<$t->{container}\>
Has Subtags|I\<$t->{subtags}\>
Nests|I\<$t->{nests}\>
!endblock


B<Tag expansion example:>

!block example
   \[$t->{tagname} $t->{positional}\]
---
   TAGRESULT
!endblock


B<ASP-like Perl call:>

!block example; lang="Perl"
MORETABLE

    print "   \$Tag->$t->{tagname}(  \{ ",
		join( "\n" . ( " " x (15 + length($t->{tagname})) ),
			map { "$_ => VALUE_$_" } sort split( /\s+/, $t->{positional}) ),
				"\n\}, \$body  \)\;\n";

	my $positional = $t->{positional};
	$positional =~ y/ /,/;

	print <<TABLEBOTTOM;
!endblock

or similarly with positional parameters,

!block example; lang="Perl"
    \$Tag->$t->{tagname}($positional, \$attribute_hash_reference, \$body);
!endblock

TABLEBOTTOM

	print $t->{description};

	if ( exists($t->{parameters}) ) {
		print "# BEGIN ############ $t->{tagname} Subsections ##############\n";

		my $p = $t->{parameters};
		print map { 'H4: {{CMD[id="' .
						"$t->{tagname}_$_\"\]$_\}\}\n\n$p->{$_}\n\n" }
			grep { ! exists($t->{aliases}->{$_}) } sort keys %$p;

		print "# END +++++++++++++ $t->{tagname} Subsections ++++++++++++\n\n";
	}

	return 1;
}