【问题标题】:Is it possible to get nesting done properly in a php/html-style situation?是否可以在 php/html 样式的情况下正确完成嵌套?
【发布时间】:2010-11-02 18:43:48
【问题描述】:

我怀疑甚至可能有一个数学证明来证明这个答案是否定的,但是,问题是:是否可以发明一种类似 php 的语言(即在幕后评估代码的一些行,以及一些评估为显示 html 的行)总是可以正确嵌套的地方?举个例子说明我在说什么,在 rails/haml

%table
  %tr
    %th Title
    %th Content
    %th Owner
    %th Categories
  - @posts.each do |post|
    %tr
      %td

第二个 %tr 应该与第一个垂直对齐(因为它们是输出 html 中的兄弟),但是每个块开始的行会导致它缩进一个额外的行。是否有人可以开发某种 html 元语言,其中缩进可以反映控制结构和适当的嵌套,而不会相互冲突?如果有,是否存在这样的事情?

【问题讨论】:

    标签: php html haml erb formal-languages


    【解决方案1】:

    我能想到一些办法。编译器/解释器只需要做出一些经过仔细和明确概述的假设。

    例如,假设为解释页面结构而删除了控制结构的缩进,那么上面的代码会将数据%tr 置于与%td 相同的缩进级别。请注意,这会使某些页面结构难以阅读。

    另一个例子,使控制结构语法与给定缩进级别的页面结构共存。控制结构可以单独存在,也可以在页结构语句之后存在。这具有在代码和页面结构方面都可读的优点。

    %table  
      %tr  
        %th Title  
        %th Content  
        %th Owner  
        %th Categories  
      %tr @posts.each do |post|     
        %td  
    

    【讨论】:

    • 你和我同事一样误解了我。当然,选择具有有意义的空白的语言作为示例是一个坏主意。但这根本不应该涉及编译器/解释器。基本上我想知道是否有内置流控制的 html 之类的东西。我有理由相信,使用 php 或 haml 等这是不可能的,正是因为您试图将两种形式语言调和在一起。我怀疑类似于您的答案代码的东西可能是答案。
    • @erauqssidlroweht 我很困惑,在你最初的问题中,你问的是开发一种 html 元语言,其中缩进可以反映控制结构和正确的嵌套,但现在你说选择具有有意义的空白的语言作为示例是一个坏主意。如果缩进有意义,空格怎么可能没有意义?
    • 是的,我仍然认为可以创建一种抽象的标记语言,它可以清晰地表示 html 结构并具有流控制。挑战在于提出一种易于理解、清晰且灵活的语法。
    • @erauqssidlroweht 我刚刚重新阅读了您的评论并看到了声明但这根本不应该涉及编译器/解释器,我对您的看法感到困惑haml 在不涉及编译器或解释器的情况下成为正确的 xhtml?
    猜你喜欢
    • 2016-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-25
    • 2019-08-08
    • 2010-12-16
    相关资源
    最近更新 更多