【问题标题】:Smarty comment stripping and KnockoutJSSmarty 评论剥离和 KnockoutJS
【发布时间】:2013-02-21 18:39:43
【问题描述】:

我正在尝试在我的 Web 框架中使用 KnockoutJS,它使用普通的 Smarty。

KnockoutJS 语法的某些部分使用<!-- ko foreach: array --> 形式的cmets。

Smarty 去除所有 HTML cmets(IE 条件语句除外),包括这些。

我可以删除 Smarty 中负责的 preg_replace 行,但我宁愿有不需要更改第三方代码的解决方案。

有什么办法可以跳过 Smarty 中的评论剥离?

【问题讨论】:

    标签: knockout.js smarty smarty3 html


    【解决方案1】:

    实际上Smarty在模板的最终输出中显示了所有的HTML cmets,例如<!-- comment -->。只有 Smarty 特定的 cmets {* this is a comment *} 隐藏在最终输出中。您的框架可能在后端隐藏了 HTML cmets,可能是为了进行 HTML 压缩。

    参考Smarty Comment Syntax

    【讨论】:

    • 您可能使用的是旧版本。当前版本(3.1.13 和几个版本)有一个名为outputfilter.trimwhitespace.php 的插件,其中包含一行$source = preg_replace( '#<!--.*?-->#ms', '', $source );,用于进行注释剥离。据我所知,如果不更改代码或删除文件,就无法禁用或删除过滤器。
    • 我很抱歉。我对新插件一无所知。
    • Martijn 不正确,outputfilter.trimwhitespace.php 未启用 OOTB。它必须在 PHP 代码中显式启用。您根本无法启用它。
    猜你喜欢
    • 2014-07-19
    • 2011-04-04
    • 2011-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-16
    • 2023-02-23
    相关资源
    最近更新 更多