An enhanced version of the [ALinkButton] macro (see §18.7.5.3 Building an ALink button object from an ALink keyword list) parses each $$AlinkKeys list item for multiple ALink keywords, allowing you to include several keywords (separated by semicolons) in each ALinkTarget paragraph or Subject marker.
This version of the [ALinkButton] macro uses two additional macro variables:
This button macro invokes the same [ALinkButtonStart], [ALinkButtonParam], and [ALinkButtonEnd] macros described in §18.7.5.3 Building an ALink button object from an ALink keyword list:
[ALinkButton] <$_if (Nkeys > 0)> <$ALinkButtonStart><$$ALinkKeyItem=1><$$ALinkParamNum=1>\ <$_repeat ($$Nkeys)>\ <$$ALinkParamText=$$ALinkKeys[$$ALinkKeyItem]>\ <$$ALinkKeyItem++><$$ItemContent=$$ALinkParamText>\ <$_while ($$ItemContent contains ";")>\ <$$ALinkParamText=($$ItemContent before ";")>\ <$$ALinkParamNum++><$ALinkButtonParam>\ <$$ItemContent=($$ItemContent after ";")>\ <$_endwhile> <$$ALinkParamText=$$ItemContent><$ALinkButtonParam>\ <$_endrepeat><$ALinkButtonEnd><$$ALinkParamCount=0>\ <$_endif>
See §37.6.4.3 Using loop structures for an explanation of loop controls $_repeat and $_while.
See §37.6.5 Specifying substrings in expressions for an explanation of string operators contains, before, and after.