Rebol Programming/build-tag

= USAGE: = BUILD-TAG values

= DESCRIPTION: = Generates a tag from a composed block.

BUILD-TAG is a function value. = ARGUMENTS =
 * values -- Block of parens to evaluate and other data. (Type: block)

= SOURCE CODE = build-tag: func [ "Generates a tag from a composed block." values [block!] "Block of parens to evaluate and other data." /local tag value-rule xml? name attribute value ][   tag: make string! 7 * length? values value-rule: [ set value issue! (value: mold value) | set value file! (value: replace/all copy value #" " "%20") | set value any-type! ]    xml?: false parse compose values [ [           set name ['?xml (xml?: true) | word!] (append tag name) any [ set attribute [word! | url!] value-rule (                   repend tag [#" " attribute {="} value {"}]                ) | value-rule (repend tag [#" " value]) ]            end (if xml? [append tag #"?"]) ]        |         [set name refinement! to end (tag: mold name)] ]    to tag! tag ]