是否有标准可以轻松显示和隐藏内容?

时间:2009-05-06 02:03:01

标签: syntax toggle

  • 您是否切换注释或代码块以快速显示或隐藏内容?
  • 您使用了哪些常用方法?
  • 是否有可接受的标准?
  • 应该避免某些方法吗? 即他们会被某些引擎误解?
  • 是否有替代或更好的解决方案?

标准 - 这是我用来涵盖大多数语言的内容:CSS,JavaScript,PHP,ActionScript

/**/ visible /**/
/**\/ hidden /**/

HTML

<!----> visible <!---->
<!----/> hidden <!---->

PHP - 定义类似$ hide的东西效果很好,其他变量可能是生产或开发 - 然后可以隐藏大型平板并与一个简单的变量一起显示。

if(0){ hidden }
if(1){ visible }
if(!$HIDE){ content } // $HIDE defined elsewhere, visible if undefined

4 个答案:

答案 0 :(得分:2)

我认为如果你能以编程方式控制正在呈现的内容,那就是最好的(就像你在PHP中所做的那样)。您编写的(本质上是本地预处理器宏)更好的解决方案是将渲染代码实际分解为生成文档子部分的函数。如果您不需要它,则不要调用它,并且代码中的条件清晰。例如,这就是MediaWiki的编写方式。否则,在复杂的项目中,它就变得一团糟。

在代码中对注释进行硬编码存在很多风险。其中:

  • 非常容易搞砸取消注释

  • 不清楚评论的是什么。

  • 注释掉部分重叠时的问题

  • 剪切和粘贴错误

  • 您想隐藏的所有内容仍可访问,影响搜索引擎等。

答案 1 :(得分:2)

/*
Commented
// */

//*
Not commented
// */

答案 2 :(得分:1)

有些人告诉我,注释掉C ++部分的正确方法,因为我们显然不再使用预处理器,而是使用if语句。

if(false)
{
    chunk of code;
}

理论是编译器会优化最终产品中的死代码,并且它们可以嵌套,/* */样式注释无法做到。

当然,这个理论是假的,因为你不能用它来评论代码的任意区域,例如:

class Foo
{
    void Bar();
    if(false)
    {
        int Baz(double); // WRONG!!!
    }
};

另一方面,这适用于像python这样的语言,它允许任何块中的任何语句,并且还缺少标准的预处理器或块注释。

答案 3 :(得分:0)

我更喜欢使用能够理解我正在编辑的源文本结构的文本编辑器(VimEmacs是最受欢迎的收藏夹),并且can do code folding基于由编辑解析的结构。

Vim foldingEmacs folding中的任何一个都符合我对此的需求。