no_html_comment_embed — do not treat specially formed HTML comments as ITL code
Many HTML editing applications do not support ITL directly, and
some
(thinking it doesn't belong to the page) ruin your work. This is
understandable to an extent, because some ITL tags (such as [list]
)
appear in places that raise errors with HTML syntax checking algorithms.
So in order to help that, Interchange allows you to wrap ITL code into HTML comments, which the editing applications leave alone in most cases.
When such HTML comment is found, it is stripped away, ITL tags are interpolated and the output is displayed as if HTML comment was never there.
To make use of this arcane feature, simply leave no space between the HTML comment and ITL tags:
The time is now <!--[time]-->.
Setting the no_html_comment_embed
pragma instructs
Interchange
not to parse and interpolate any HTML
comments. With this pragma enabled,
the above example would not display the current time.
Although this feature existed in Interchange for a very long time, the pragma to control its behavior was added in September 2004, after someone stumbled on it by accident.
Interchange 5.9.0 (1/1 contexts shown):
Source: lib/Vend/Interpolate.pm
Line 632 (context shows lines 622-636 in vars_and_comments():593)
} if($::Pragma->{pre_page}) { Vend::Dispatch::run_macro($::Pragma->{pre_page}, $html); } # Strip out blocks 1 while $$html =~ s%$QR{comment}%%go; # Translate Interchange tags embedded in HTML comments like <!--[tag ...]--> ! $::Pragma->{no_html_comment_embed} and $$html =~ s/<!--+\[/[/g and $$html =~ s/\]--+>/]/g;