4

这是一个非常简单的问题,但它激怒了我。例如,我想评论以下内容:

<!--  
        {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}
    -->

我想注释掉所有这些文本,所以浏览器不会显示此代码。问题是我已经发表了评论,而且浏览器似乎混淆了结束标签。因此在这种情况下,当我希望它影响整个文本时,第一个打开的评论标签只会影响 {if $scenes}。你能告诉我怎么做吗?!?!

谢谢,

丹妮

4

2 回答 2

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}
    -->
于 2012-08-06T23:01:00.183 回答
1

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

假设标记false表示布尔值 false(在给定的模板语言中用正确的表达式代替 false):

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

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

于 2013-10-06T16:28:36.060 回答