Main ----- Copyright Up -------- ----

Modifiers for tag- and macro-declarations

Within <$macro> and <$deftag>, you can use several modifiers to tell hsc how to handle this macro/tag.

Legal modifiers for <$macro> are:
/ONLYONCE (short: /1)
macro/tag is required at the most once within a document
/REQUIRED (short: /R)
macro/tag is required at least once within a document
/MUST_BE_INSIDE (short: /MBI)
Needs a string as argument, that contains a list of container tags, that must be started before tag is allowed to be used.
Example:
The tag <LI> must be used inside some sort of lists only, therefor it's /MBI="ul|ol|dir|menu" is used. The vertical bar (``|´´) is used as a separator for multiple tags.
/NOT_ALLOWED_WITHIN (short: /NAW)
Like /MBI, but this time tags that must not be used before. For example, a nested usage of <A> is not allowed, therefor /NAW="a" is used.
Additionally, the following modifiers can be used with <$deftag>
/CLOSE (short: /C)
tag is a container and requires a corresponding closing tag.
/AUTOCLOSE (short: /AC)
Used for <P> and <LI>, which can be used as container or single tag depending on the HTML version.
/JERK (short: /J)
tag is only used by jerks
/LAZY (short: /L)
This modifier has just been for my lazyness and defines some often needed attributes with a single letter; ``c´´ for ``CLASS:string´´, ``h´´ for ``HREF:uri´´, ``i´´ for ``ID:id´´, ``k´´ for ``CLEAR:bool´´, ``l´´ for ``LANG:string´´, ``m´´ for ``MD:string´´, ``s´´ for ``SRC:uri´´, ``w´´ for ``NOWRAP:bool´´.
For example, use /LAZY="cil".
/OBSOLETE (short: /O)
tag is obsolete and should not be used any more. This eg. concerns <LISTING>.
/SKIPLF (short: /S)
skip a linefeed ("\n") that comes immediatly after the tag. This is only useful for some of hsc's special tags and only avoids some uneccessary empty lines.
/SPECIAL (short: /SPC)
This one marks tags which are no "normal" tags with some attributes, but have their own syntax. The only HTML-tag which has this modifier set is <!> (for SGML comments).
/WHTSPC (short: /W)
If this modifier is set, any occurence of the container is checked for succeeding/preceding white spaces. By default, this concerns the tags <A>, <TITLE>, headings and physical/logical styles.

To define ab end macro, don't use /CLOSE, but define the macro a second time, with a "/" as the first character of its name. For examples, see the section about <$macro>.


Thomas Aglassinger (agi@giga.or.at), 04-Dec-1996