有替代HTML吗?

Ale*_*lex 38 html cross-compiling

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

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

例如,它应该是HTML的CoffeeScript与JS的关系.

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

另请参阅Web模板引擎Scala标记的比较

Joh*_*lla 30

哈姆是个不错的选择.在Haml中,您编写了高度结构化的标记,类似于HTML的简化形式,并且常见的东西都有简单的快捷方式.例如,添加的元素,div,id,或class仅仅是通过改变一个字符进行.

它甚至允许您通过推迟使用脚本语言来传递变量并以您选择的语言对它们进行操作,因此它实际上比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.
Run Code Online (Sandbox Code Playgroud)

这就像:

<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>
Run Code Online (Sandbox Code Playgroud)

  • 另请查看 SHPAML http://shpaml.webfactional.com/tutorial/1 (2认同)
  • +5供Bob Loblaw参考 (2认同)
  • [Slim](http://slim-lang.com/) 类似,但更简洁,速度更快,AFAIK。 (2认同)

axe*_*brz 9

我和朋友刚刚开始使用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日):添加了演示链接


jwo*_*der 6

你本质上要求一种可以转换为HTML 的轻量级标记语言,其中流行/众所周知的例子包括BBCode,MarkdownMediaWiki标记.


Try*_*lks 6

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

正如已经指出的那样,问题主要是模板引擎(不是那么多语言),因为关键是生成HTML.

如果目标是与CoffeeScript保持一致,那么CoffeeKup就是您的选择.就个人而言,在我看到的那些,在寻求简洁性的过程中,Pug是最适合我的,它受到Haml的严重影响(被接受和最佳答案),并在几个方面改进它(恕我直言):更多简洁,更优雅和清晰(主观,公平)并且不需要Ruby,因为它是基于JavaScript的.


Chr*_*ett 5

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

  • 他说*比HTML/XML更简洁. (11认同)
  • 虽然我可以理解这是一个有效的解决方案,但我很难想象尝试这样做.这就像建造一座建造通用房屋的工厂一样.最终证明工厂已经对如何建造房屋作出了具体的假设,假设只对建造一个非常特殊的房屋有效,这也是你现在想要的房屋.但是如果你想要建造一个稍微不同的房子,事实证明你必须对工厂进行重大改造.或者,您可以通过建造房屋来建造房屋.;) (10认同)