有替代HTML吗?

时间:2011-07-07 00:54:43

标签: html cross-compiling

我可以使用哪种语言来编写我的网站的HTML,其中包括:

  • 转换为HTML而无需直接编写HTML
  • 具备HTML的所有功能
  • 比HTML和XML更简洁

例如,它应该是HTML,这就是CoffeeScript对JS的作用。

另外,无论你建议什么,你有什么经验?

另请查看Comparison of web template enginesScala Tags

7 个答案:

答案 0 :(得分:26)

一个不错的选择是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>

答案 1 :(得分:9)

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

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

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

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

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

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

我希望它有所帮助,欢迎提供反馈!

此致

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

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

答案 2 :(得分:6)

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

答案 3 :(得分:6)

您基本上要求可以转换为HTML的lightweight markup language,其中包括BBCodeMarkdownMediaWiki markup等常用/众所周知的示例。

答案 4 :(得分:6)

我知道这个问题已经过时了,但我找到了答案,我想我会用自己的回复更新回复。

正如已经指出的那样,问题主要是template engines(不是那么多语言),因为关键是生成HTML。

如果目标是与CoffeeScript保持一致,则CoffeeKup是可行的方法。就个人而言,在我所看到的那些中,在寻找简洁性时,Pug是对我来说最好的一个,它受到Haml(被接受和最佳答案)的严重影响,并且在改进它(恕我直言)中几个方面:更简洁,更优雅和清晰(主观,公平)并且不需要Ruby,因为它是基于JavaScript的。

答案 5 :(得分:3)

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

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

虽然我好像记得有人刚回答过这个问题。

答案 6 :(得分:2)

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