Embedded Coffeescript (ECO) 模板中的注释

Posted

技术标签:

【中文标题】Embedded Coffeescript (ECO) 模板中的注释【英文标题】:Comments in Embedded Coffeescript (ECO) templates 【发布时间】:2014-03-31 17:12:33 【问题描述】:

有没有办法将 cmets(单行和多行)放在 ECO templates 中,这样它们就不会出现在渲染输出中?

例如,Django 模板允许您在 single line 上执行此操作:

# greeting #hello

或multiple lines:

<p>Rendered text with  pub_date|date:"c" </p>
% comment %
    <p>Commented out text with  create_date|date:"c" </p>
% endcomment %

【问题讨论】:

【参考方案1】:

&lt;% %&gt; 中的所有内容实际上都是咖啡脚本(ECO = Embedded CoffeeScript)。 CoffeeScript 中的注释使用# 字符来注释单行(而### 用于多行cmets)。见coffeescript - How to comment? "/* this */" doesn't work

所以在 ECO 中你会这样评论:

<% #This is a single line comment %>

如果您检查ECO templates 的源代码,您可以看到处理scanner.js 中的注释情况的正则表达式。

Scanner.modePatterns = 
      data: /(.*?)(<%%|<%\s*(\#)|<%(([=-])?)|\n|$)/,
      code: /(.*?)((((:|(->|=>))\s*))?%>|\n|$)/,
      comment: /(.*?)(%>|\n|$)/
    ;

【讨论】:

【参考方案2】:

评论有一个特殊的标签,即&lt;%# %&gt;

例子:

<%# This is a single line comment %>

【讨论】:

以上是关于Embedded Coffeescript (ECO) 模板中的注释的主要内容,如果未能解决你的问题,请参考以下文章

没有 CoffeeScript 的 CoffeeScript 中的问号语法

CoffeeScript单元测试?

NodeJS + CoffeeScript,根据要求渲染 CoffeeScript 编译的 js

在保存时编译 CoffeeScript?

Rails 啥时候编译 CoffeeScript?

104 CoffeeScript 简史