有客户端 haml 解析器吗?

发布于 2024-12-20 19:00:13 字数 460 浏览 0 评论 0 原文

我希望使用 JavaScript 在客户端呈现我的 haml 代码。服务器端有很好的 haml 解析器,例如 Jadehaml.js 但我不知道客户端有任何 haml 解析器/解码器。

更新: Jade 几乎是 haml 现在支持客户端。

I'm looking to render my haml code in client side using JavaScript. There are nice haml parsers in server side like Jade or haml.js but I don't know any haml parser/decoder in client side.

Update: Jade that is pretty much haml now supports client side.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

猫瑾少女 2024-12-27 19:00:13

经过一番谷歌搜索后,我发现了 "client-side-haml-js" github 项目。看起来应该可以满足您的需求:

clientside-haml-js 是一个用 CoffeeScript 编写的编译器
将 HAML 格式的文本模板编译为 Javascript 函数
生成 HTML。它的灵感来自服务器端 haml Javascript
项目,并且已编写为与 Ruby 功能兼容
服务器端 HAML,支持所有主流浏览器(IE 7+、Firefox 3.6+、
Chrome 10+、Safari),具有最小的运行时依赖性(仅
underscore.js、underscore.string 和 CoffeeScript(如果使用)
模板中的 CoffeeScript)。

注意:haml 编译器需要带有 JSON 解析器的浏览器。为了
像 IE7 这样的浏览器,您还需要包含 JSON 实现。看
http://www.json.org/ 了解更多详细信息。 JSON 实现是
位于 https://github.com/douglascrockford/JSON-js

来自他们的 github 页面的示例:

var fn = haml.compileStringToJs("%h1\n  %div\n    %p\n    %span");
var html = fn();

看起来它也支持类似于 jquery-templates 的 text/haml-template 方法:

<script type="text/haml-template" id="simple">
%h1
  %div
    %p
    %span
</script>

<script type="text/javascript">
    var fn = haml.compileHaml('simple');
    var html = fn();
</script>

After some googling I found the "client-side-haml-js" github project. Looks like it should meet your needs:

The clientside-haml-js is a compiler written in CoffeeScript that
compiles text templates in HAML format into Javascript functions that
generate HTML. It has been inspired by the server side haml Javascript
project, and has been written to be feature compatible with Ruby
server side HAML, supports all major browsers (IE 7+, Firefox 3.6+,
Chrome 10+, Safari), have minimal runtime dependencies (only
underscore.js, underscore.string and CoffeeScript if using
CoffeeScript in your templates).

NOTE: The haml compiler requires a browser with a JSON parser. For
browsers like IE7, you need to also include a JSON implementation. See
http://www.json.org/ for more details. A JSON implementation is
available at https://github.com/douglascrockford/JSON-js.

Example from their github page:

var fn = haml.compileStringToJs("%h1\n  %div\n    %p\n    %span");
var html = fn();

Looks like it also supports a text/haml-template method similar to jquery-templates:

<script type="text/haml-template" id="simple">
%h1
  %div
    %p
    %span
</script>

<script type="text/javascript">
    var fn = haml.compileHaml('simple');
    var html = fn();
</script>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文