【问题标题】:Is there an alternative to HTML? [closed]有没有 HTML 的替代品? [关闭]
【发布时间】:2011-09-30 02:06:54
【问题描述】:

有没有一种语言可以用来编写我的网站的 HTML,其中:

  • 无需直接编写 HTML 即可转换为 HTML
  • 拥有 HTML 的所有功能
  • 比 HTML 和 XML 更简洁

例如,对于 HTML,CoffeeScript 对于 JS 应该是一样的。

另外,无论您提出什么建议,您的体验如何?

也可以看看Comparison of web template enginesScala Tags

【问题讨论】:

  • 这个问题的一般答案是“模板化”。有关在功能基础上比较它们的庞大列表,请参阅this wikipedia page
  • 这些推荐程序中的大多数都忽略了 ARIA 属性、唯一 id、工具提示、rel、id/name 匹配对、表单字段中的 HTML5 验证、微数据等等。根据我的经验,期望软件为您编写好的 HTML 代码是一个坏主意,因为其中大部分代码是不完整的。如果“模板”软件允许您编写自己的自定义 HTML 模板,那么是的,这似乎是一种选择。这不好的一个例子是微软花了 15 年时间尝试在 ASP.NET 中提供 Web 标准 HTML,直到最近才终于与 HTML 中的“最佳实践”相提并论。

标签: html cross-compiling


【解决方案1】:

一个不错的选择是Haml。在 Haml 中,您编写高度结构化的标记,类似于 HTML 的精简形式,并且常见的东西都有简单的快捷方式。例如,添加元素dividclass 只需更改一个字符即可。

它甚至允许您通过遵循脚本语言以您选择的语言传入变量并对其进行操作,因此它实际上比 HTML 更强大,因为隐式脚本使其成为图灵完备的。

这是一个例子:

  %body
    #header
      %h1 Bob Loblaw's Law Blog
      %h2 by Bob Loblaw
    #content
      - @entries.each do |entry|
        .entry
          %h3.title= entry.title
          %p.date= entry.posted
    #footer
      %p
        All content copyright © Bob Loblaw.

这变成了这样:

<div id='header'>
  <h1>Bob Loblaw's Law Blog</h1>
  <h2>by Bob Loblaw</h2>
</div>
<div id='content'>
  <div class='entry'>
    <h3 class='title'>You don't need double-talk; you need Bob Loblaw</h3>
    <p class='date'>Tuesday, October 31, 2006</p>
  </div>
  <div class='entry'>
    <h3 class='title'>Why should you go to jail for a crime someone else noticed?</h3>
    <p class='date'>Friday, August 11, 2006</p>
  </div>
</div>
<div id='footer'>
  <p>
    All content copyright © Bob Loblaw.
  </p>
</div>

【讨论】:

【解决方案2】:

我和一个朋友刚开始使用 Layx:一种基于 Cassowary 的新布局语言,这是 Apple 用于其用户界面的约束解决工具包。它现在只适用于网络,但有一天它会成为多平台 - 原生移动。

它被设计为极其简单和容易(如 python),并且根据要求,它在内部动态编译为 HTML,因为如果必须移动或调整图层大小,则必须更新界面。

这是一个非常新的项目-alpha 版本-,所以知道这一点就试试吧。

项目网址:http://www.layx.org/

在线演示:http://www.layx.org/demo/

开源存储库:http://github.com/layxlang/layx

希望对您有所帮助,欢迎随时提供反馈!

问候

编辑(2015 年 1 月 8 日):添加了开源链接

编辑(2015 年 1 月 15 日):添加了演示链接

【讨论】:

    【解决方案3】:

    您实际上是在要求一个可以转换为 HTML 的 lightweight markup language,其中流行/知名的示例包括 BBCodeMarkdownMediaWiki markup

    【讨论】:

      【解决方案4】:

      我知道这个问题很老,但我开始寻找答案,我想我会用我自己的更新回复。

      正如已经指出的,这个问题主要询问template engines(不是那么多语言),因为重点是生成 HTML。

      如果目标是与 CoffeeScript 保持一致,那么 CoffeeKup 是要走的路。就我个人而言,在我所见过的那些中,在寻求简洁性时,Pug 是我认为最好的,它深受 Haml 的影响(接受和最佳答案),并在几个方面对其进行了改进(恕我直言) :更简洁、更优雅、更清晰(主观、公平)并且不需要 Ruby,因为它是基于 JavaScript 的。

      【讨论】:

        【解决方案5】:

        您可以使用自己的自定义格式将您的网站定义为 XML,然后使用 XSLT 转换为 HTML。过去做过:)

        【讨论】:

        • 他说 比 HTML/XML 更详细
        • XML 可以随心所欲。这只是标签。困难的部分只是编写 XSLT,但您只需编写一次。然后您从 XML 生成您的网站并上传。
        • 我刚刚更新了该答案的问题原因;D
        • 虽然我可以理解这是一个有效的解决方案,但我很难想象尝试这样做。这就像通过创建建造普通房屋的工厂来建造房屋一样。最终事实证明,工厂对如何建造房屋做出了特定的假设,这些假设仅对建造一种非常特定的房屋有效,这也是您当前想要的房屋。但是,如果你想建造一个稍微不同的房子,事实证明你必须对工厂进行重大改造。或者,您可以通过盖房子来盖房子。 ;)
        【解决方案6】:

        您可能正在寻找这样的东西:

        http://code.google.com/p/zen-coding/

        虽然我似乎记得不久前有人已经回答了这个问题。

        【讨论】:

          【解决方案7】:

          你可以试试Processing.js。 您仍然需要一个 HTML shell 来托管画布,但您实际上可以使用 Processing/Java 对您的网站进行编码。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2011-01-16
            • 2015-01-02
            • 1970-01-01
            • 2023-01-24
            • 2011-12-06
            • 1970-01-01
            • 1970-01-01
            • 2011-01-31
            相关资源
            最近更新 更多