What was said was never done
Don't panic, it's not really worth your while
(Blur, "Bang")
hsc adds several special tags to process macros, handle conditionals, include files and lots of other things.
<* comment *> insert comments
<$defent>,
<$deficon>,
<$deftag>
define entities, icon-entities and tags
<$define> define a new (global) attribute
<$exec> execute shell-command
<$if>, <$else>, <$elseif> conditionals
<$include> include a file
<$let> set new attribute value
<$macro> define macro-tags
<$message> display user message
<( expression )> insert expression
<| don't parse |> don't parse section
<* This is a hsc-comment *>
You can also nest such comments.And you can comment out sections of html-source without any problems for the browser. This simply is possible because comments in the hsc-source are not written to the html-object.
Of course, if you need the standard comments, you can use
<!-- This is a html/sgml-comment -->
as usual.
<$include>.
Possible attributes:
FILE:string/requiredSOURCE:bool<´´) is not interpreted
as an escape character, but converted to an entity.&´´).
PRE:bool<PRE> ... </PRE>, and the whole section will
be rendered as pre-formatted.
TEMPORARY:boolExample:
<$include FILE="macro.hsc">
<$include FILE="hugo.c" SOURCE PRE>
<$define attribute>
If you define an attribute via <$define> inside a macro, it is of
local existence only and is removed after processing the macro. You
can suppress this with using the attribute flag /GLOBAL: in
this case, the attribute exists until the end of conversion.
You can use the flag /CONST to make the attribute read-only.
That means it can't be overwritten by <$let>
<$let attribute_name =
new_value>
Example:
<$define hugo:string="hugo"> <* create hugo and set to "hugo" *>
<$let hugo=(hugo+" ist doof.")> <* update it to "hugo ist doof." *>
During conversion, messages might show up. But not only hsc creates messages, also the user is able to so, if for instance he wants to perform some plausibility checks of macro arguments.
Possible attributes:
TEXT:string/requiredCLASS:enum("note|warning|error|fatal")='note'Example:
<$message TEXT="shit happens..." CLASS="fatal">
<$message TEXT="something's wrong" CLASS="warning">
Example:
<$define hugo:string="hugo"> <* create hugo and set to "hugo" *>
<(hugo+" ist doof.")> <* insert text "hugo ist doof." *>
<| ... |>. Of course, this is a dirty hide-out and should
be used only for special cases.