如何嵌套HTML评论?

时间:2012-08-06 22:54:06

标签: html5 comments html

这是一个非常简单的问题,但它让我感到恼火。我想评论以下例子:

<!--  
        {if $scenes}
            <!-- Scenes -->
            {include file="$tpl_dir./scenes.tpl" scenes=$scenes}
        {else}
            <!-- Category image -->
            {if $category->id_image}
            <div class="align_center">
                <img src="{$link->getCatImageLink($category->link_rewrite, $category->id_image, 'category')}" alt="{$category->name|escape:'htmlall':'UTF-8'}" title="{$category->name|escape:'htmlall':'UTF-8'}" id="categoryImage" width="{$categorySize.width}" height="{$categorySize.height}" />
            </div>
            {/if}
        {/if}
    -->

我想评论所有这些文字,所以浏览器赢了; t显示这段代码。问题是我已经发表评论,似乎浏览器混淆了结束标记。因此,在这种情况下,当我希望它影响整个文本时,第一个打开注释标记只会影响{if $ scenes}。你能让我知道怎么做到这一点?!?!

谢谢,

丹尼

2 个答案:

答案 0 :(得分:3)

如果我理解正确,您希望能够嵌套HTML注释。为此,您需要将双短划线--替换为两个短划线和一个空格- -

基本上,

<!--
  This is a comment.
  <!- - 
    This is a nested comment.
  - ->
-->

将此应用于您的代码,最终应该是这样的:

<!--  
        {if $scenes}
            <!- - Scenes - ->
            {include file="$tpl_dir./scenes.tpl" scenes=$scenes}
        {else}
            <!- - Category image - ->
            {if $category->id_image}
            <div class="align_center">
                <img src="{$link->getCatImageLink($category->link_rewrite, $category->id_image, 'category')}" alt="{$category->name|escape:'htmlall':'UTF-8'}" title="{$category->name|escape:'htmlall':'UTF-8'}" id="categoryImage" width="{$categorySize.width}" height="{$categorySize.height}" />
            </div>
            {/if}
        {/if}
    -->

答案 1 :(得分:1)

您所使用的语言不是 HTML,而是一种生成HTML的语言。该语言显然支持if / else条件嵌套,因为你展示了一个非常好的例子。因此,即使HTML生成语言本身缺少嵌套注释,您也可以使用条件来删除其中的部分内容,从而抑制该HTML的生成:

假设令牌false表示布尔值false(在给定的模板语言中用正确的表达式替换为false):

{if false}
    {if $scenes}
    <!-- ... >
    {else}
    ...
    {/if}
{/if}

处理器不会输出if false块中的所有内容。