标签: haml

使用Rails查看助手与Haml :: Engine

我有一个Rails应用程序,我在其中呈现存储在模型属性中的一块Haml内容.在Haml的那个块中使用Rails视图助手会很不错.目前,我在视图助手中使用Haml :: Engine#render来呈现此模型属性的内容.它工作得很好,但我不能使用像= link_to这样的东西.为了说明问题:

irb(main):003:0> haml_text=<<"EOH"
irb(main):004:0" %p
irb(main):005:0"   =image_tag 'someimage'
irb(main):006:0" EOH
=> "%p\n  =image_tag 'someimage'\n"
irb(main):007:0> engine = Haml::Engine.new(haml_text)
=> #<Haml::Engine:0x7fa9ff7f1150 ... >
irb(main):008:0> engine.render
NoMethodError: undefined method `image_tag' for #<Object:0x7fa9ff7e9a40>
        from (haml):2:in `render'
        from /usr/lib/ruby/gems/1.8/gems/haml-3.0.25/lib/haml/engine.rb:178:in `render'
        from /usr/lib/ruby/gems/1.8/gems/haml-3.0.25/lib/haml/engine.rb:178:in `instance_eval'
        from /usr/lib/ruby/gems/1.8/gems/haml-3.0.25/lib/haml/engine.rb:178:in `render'
        from (irb):8
Run Code Online (Sandbox Code Playgroud)

有关如何做到这一点的任何想法?

好主意?

haml ruby-on-rails

7
推荐指数
1
解决办法
2276
查看次数

浏览器兼容的NodeJS模板

我希望在浏览器中重用我为NodeJS编写的模板,这样我希望获得快速页面加载时间(初始渲染)和动态内容切换能力等...

这在Node上是最自然的,兼容模板引擎的任何想法?

顺便说一下,我喜欢HAML风格的语法,所以基于HAML的任何东西都是一个巨大的优势.

谢谢!罗马

编辑:我认为我最喜欢Mustache的方法,它适用于Express,也适用于客户端..这里将更新实现如何...

haml node.js

7
推荐指数
2
解决办法
3305
查看次数

这是使用Haml显示/连接文本的正确方法吗?

我对Ruby on Rails很新,甚至比Haml更新,我2小时前开始使用它.所以我遵循Ruby on Rails教程并决定在视图上使用Haml,但我不确定这是否是显示事物的正确方法(感觉有点奇怪).有人可以开导我吗?:)

%h1= "About Us"
%p
  =link_to 'Ruby on Rails Tutorial','http://railstutorial.org' 
  &= 'is a project to make a book and screencasts to teach web development with'
  &= link_to 'Ruby on Rails', 'http://rubyonrails.org'
  &= '. This is the sample application for the tutorial.'
Run Code Online (Sandbox Code Playgroud)

我也试过这个:

:ruby
   first_link = link_to 'Ruby on Rails Tutorial','http://railstutorial.org' 
   second_link = link_to 'Ruby on Rails', 'http://rubyonrails.org'

%h1= "About Us"
%p
  = first_link
  &= 'is a project to make a book and screencasts to teach web …
Run Code Online (Sandbox Code Playgroud)

haml ruby-on-rails-3

7
推荐指数
1
解决办法
5941
查看次数

哪个haml-in-django实现?

我宁愿在django中使用像HAML这样的东西,但似乎有一些替代品,我无法区分它们之间的区别:

谁能分享他们的经历?
哪个最好/最容易使用django?
谢谢.

编辑:感谢true_religion,

python django haml

7
推荐指数
1
解决办法
1884
查看次数

Rails视图模板中的html.haml与haml

在Rails中使用视图模板作为'.html.haml'和简单地'.haml'之间有什么区别?例如,
show.html.haml
vs
show.haml

使用一个优于另一个有什么特别的优势吗?或者其中一个是标准做法?同样的问题也适用于其他类型的模板,例如'.erb'.

html haml ruby-on-rails

7
推荐指数
1
解决办法
1787
查看次数

使用right.js用flash [:notice]的内容刷新div?

我在我的sinatra应用程序中使用内联haml模板.我有一个@@layout像这样的部分:

#message
  - if flash[:notice]
    %section.notice= flash[:notice]
  - if flash[:error]
    %section.error= flash[:error]
Run Code Online (Sandbox Code Playgroud)

当我使用flash[:notice]="你好!" 在路线中点击一个链接,下一页愉快地说"你好"在#messagediv中.很棒.

所以这就是问题所在,我正在使用right.js为我的应用程序添加一些ajax的好处,机架式闪存的行为充其量是不一致的.

大多数情况下,你单击一个链接(.linkey),一点点javascript拦截它并加载到#contentdiv(这部分也可以),然后重新加载'#message'div并显示前一个动作的flash ...下次单击链接时...大约80%的时间,其余时间没有显示任何内容.

这是我的js:

"a.linkey".onClick(function(event) {
   event.stop();
   $('content').load( [ "/", this.get('id'), ].join("") );
   $('message').load( '/message' );
});
Run Code Online (Sandbox Code Playgroud)

我希望是这样的:

1)点击链接

2)链接目标(/ foo)被加载到 #content

3)#message重新加载消息(来自route flash[:notice]="bar")

4)#content现在显示/foo#message显示"bar"

我也尝试了这个,$('message').load( '/message' );但要么加载任何东西#message或填充#message"/ message"(字符串不是内容).

我想知道这里发生了什么?是机架式闪存还是right.js?或者是其他东西?如果需要的话,我可以提供更多的代码,但除了基本框架之外,我刚刚开始这个项目.

javascript ruby haml sinatra rightjs

7
推荐指数
1
解决办法
317
查看次数

从ruby控制器有条件地设置CSS样式

我正在尝试动态更改(如果它被点击)一个正常的表头(这是一个链接)到另一个定义的CSS类'th.hilite'.此链接只是对此列进行排序,并且每次用户对列表进行排序时都应突出显示标题.

应该更改有问题的类的视图如下所示:

%table#mytable
  %thead
    %tr
      %th= link_to 'Title', mytable_path(:sort => 'title'), :id => 'title_header'
Run Code Online (Sandbox Code Playgroud)

我的问题很简单:如果单击标题,我可以如何以及在何处将类动态设置为%th.hilite?

css ruby haml ruby-on-rails

7
推荐指数
2
解决办法
2万
查看次数

如何让Haml停止评估<pre> <code>标签内的#{var}值?

我正在使用CodeRay和Haml在某些页面上进行语法高亮,我编写了很多Ruby代码.问题是我有这样的事情:

%pre
  %code.language-ruby
    :preserve
      def hello(name)
        puts "Hello #{name}!" 
      end
Run Code Online (Sandbox Code Playgroud)

我不断收到错误,因为Haml一直在尝试评估name字符串中的变量,#{var}语法在Ruby代码中是一个非常常见的习惯用法,并且在很多地方使用它,但是我不能使用这些代码的语法高亮,因为Haml想要评估那些字符串中的变量.

有没有办法告诉Haml在某些地方不这样做?

ruby string syntax haml coderay

7
推荐指数
1
解决办法
386
查看次数

Rails 3 i18n如何*不*逃避换行

我在我的.text.haml邮件程序模板中使用i18n,我想在en.yml中有一个带换行符的字符串但是t()总是转义它们,即使我使用html_safe或后缀为_html的键名.

有没有办法做到这一点??

p3_html: >
    You love monkeys:
     \n- You look like one
     \n- Your smell like one
     \n- Your account has been flagged
Run Code Online (Sandbox Code Playgroud)

在我的html.haml模板中:

!= t('emails.post.twitter_forbidden.p3_html').html_safe
Run Code Online (Sandbox Code Playgroud)

无论什么被逃脱.我不能使用%br或其他任何东西,因为这些是文本模板.我知道我可以将它分成4个i18n字符串,但那真的很难过.

顺便说一句,我检查过,它是i18n逃避,而不是haml.

haml ruby-on-rails internationalization

7
推荐指数
2
解决办法
4277
查看次数

HTML是HAML,因为XSLT是......?

我刚刚发现了HAML,并喜欢它的简洁性和可读性.是否有任何类似的XSLT?特别是,我希望能够更容易区分包含角括号的输出和包含角括号的标记本身.

如果没有专门的XSLT抽象语言,那么至少有一个XML的通用形式吗?

编辑为了好玩,我只是快速测试了使用实际的Haml(实际上是HamlPy)来生成XSLT.我观察到的缺点:

  • 不支持带连字符的元素名称(至少在HamlPy中)
  • %xsl:foo不够简洁.XLS命名空间的特殊字符,就像#foo会更好.
  • 特定于HTML的规则会妨碍(在我的情况下,特殊的自我关闭标记规则<meta>是一个问题)
  • %xsl:attribute(name="foo" value="blah")仍然太冗长了.类似的东西.foo="blah"会更好.
  • 某些属性select非常常见,可以隐含:#value-of"./a[@href]"
  • 像功能-=处理逻辑是不需要的,那么可以重新用于类似的XQuery或XPath.或者也许{foo}可以是速记<xsl:value-of select="foo"/>.那很酷:%p(style={../[@style]})

xml xslt formatting haml file-conversion

7
推荐指数
1
解决办法
329
查看次数