标签: haml

如何编写HAML自定义过滤器?

在HAML中编写了一个简单的自定义过滤器,但我找不到我的Rails应用程序.

过滤器如下所示:

# lib/haml/filters/gfmarkdown.rb
module Haml::Filters::Gfmarkdown
  include Haml::Filters::Base

  # copied from Haml::Filters::Markdown
  lazy_require 'rdiscount', 'peg_markdown', 'maruku', 'bluecloth'

  def render(text)
    # copied from Haml::Filters::Markdown
    engine = case @required
             when 'rdiscount'
               ::RDiscount
             when 'peg_markdown'
               ::PEGMarkdown
             when 'maruku'
               ::Maruku
             when 'bluecloth'
               ::BlueCloth
             end
    engine.new(gfm text).to_html  # gfm method defined elsewhere
  end
end
Run Code Online (Sandbox Code Playgroud)

在我看来,我尝试使用这样的过滤器:

:gfmarkdown
  #{comment.body}
Run Code Online (Sandbox Code Playgroud)

但我收到此错误消息: Filter "gfmarkdown" is not defined.

任何想法如何让我的Rails应用程序拿起我的过滤器?

版本:Rails 2.3.4,Haml 2.2.15.

haml

6
推荐指数
1
解决办法
2207
查看次数

什么是一个很好的Ruby on Rails论坛,可以轻松集成到现有的应用程序?

什么是可以轻松集成到现有应用程序的优秀的开源RoR 3论坛?

可选功能:

  • OpenID支持
  • Haml/SCSS模板
  • 支持表情符号,YouTube,图像等
  • 我可能会改变它很多,而且我在Ruby中仍然很弱,所以干净,评论良好的代码将是很好的.

谢谢 :)

ruby openid forum haml ruby-on-rails

6
推荐指数
2
解决办法
4228
查看次数

HAML:使用公共内容缩进if/else语句

我认为我有以下几点:

- if (condition)
  %div.truecondition
    (Ten lines of content)
- else
  %div.falsecondition
    (Ten lines of the same content)
Run Code Online (Sandbox Code Playgroud)

我想将10行内容分解为if/else语句以下...但如果我这样做,缩进意味着内容不会嵌套在if/else中指定的div内.我确定这是一个常见的问题,我只是想知道解决方案是什么.那么......如何在保持内容嵌套在.truecondition/.falsecondition div中的同时分解出十行呢?

haml ruby-on-rails-3

6
推荐指数
1
解决办法
2167
查看次数

Cocoon添加关联,如何限制关联数量

我正在创建一个使用Ruby/Rails/HAML存储卡的系统 - 在这种情况下,有一个Card类有很多颜色(这也是一个类).在创建和编辑卡片时,我正在使用Cocoon gem来动态添加颜色关联.

我遇到的问题是,在卡片型号中,卡片最多只能有5种颜色.然而,界面允许添加无限的颜色,从而导致错误.

在Cocoon中是否有办法限制可以添加到表单的关联数量,以便不超过此限制?

这是添加/编辑卡片的表单代码

 = simple_form_for @card, multipart: true do |c|
  = c.input :name, label: "Name of the card"
  = c.input :cost, label: "Cost of the card"
  #colours
   = c.simple_fields_for :colours do |colour|
    = render "colour_fields", f: colour
   .links
    = link_to_add_association 'add colour', c, :colours
Run Code Online (Sandbox Code Playgroud)

这是colour_fields形式

.nested-fields
 = f.input :value, as: :select, collection: Colour::VALUES, selected: f.object.value, include_blank: false
 = link_to_remove_association "remove colour", f
Run Code Online (Sandbox Code Playgroud)

提前致谢.

ruby haml ruby-on-rails simple-form cocoon-gem

6
推荐指数
1
解决办法
4949
查看次数

如何将自己的javascript文件添加到nanoc?

再次,我有一个nanoc文件的问题.这次我想将自定义文件附加slide.js到我的博客但我不能(不知道为什么 - 可能是我的路线出了问题).这是我的路线:

compile '/js/*/' do
  # don’t filter or layout
end

...

route '/js/*/' do
  /'js'/ + item.identifier.chop + '.js'
end
Run Code Online (Sandbox Code Playgroud)

head我的布局部分,我已经说过:( %script{:type => "text/javascript", :src => "/js/slide.js"}/是的,这是一个HAML).

任何人都可以帮我解决这个问题吗?非常感谢.

javascript haml url-routing nanoc

6
推荐指数
1
解决办法
857
查看次数

用haml显示正斜杠?

在haml中,我想要显示5 / 174.分子,foward斜线,分母.

= @numerator
/
= denominator
Run Code Online (Sandbox Code Playgroud)

我的解决方法:

= @numerator
- slash = "/"
= slash
= denominator
Run Code Online (Sandbox Code Playgroud)

haml

6
推荐指数
1
解决办法
1354
查看次数

在ruby HAML中指定过滤器的选项

有没有办法向HAML过滤器添加选项(HTML属性)?

我想做这样的事情:

:javascript{:'data-turbolinks-eval' => 'false', :foo => 'bar'}
  if(someCondition){
    doSomething();
  }
Run Code Online (Sandbox Code Playgroud)

结果将是:

<script 'data-turbolinks-eval'='false' 'foo'='bar'>
  if(someCondition){
    doSomething();
  }
</script>
Run Code Online (Sandbox Code Playgroud)

我能得到的最接近的是:

%script{:'data-turbolinks-eval' => 'false', :foo => 'bar'}
  if(someCondition){
  doSomething();
  }
Run Code Online (Sandbox Code Playgroud)

缺点是你不能在HAML中缩进你的JS,除非你使用:javascript过滤器.它可以用几行,但它很快就会变得混乱.

我很清楚,在大多数情况下,如果你最终在HAML模板中使用复杂的脚本,这意味着你做错了什么,而这不是我正在寻找的答案.

javascript ruby haml indentation filter

6
推荐指数
1
解决办法
1000
查看次数

在开头插入额外锚点标记(作为第一个列出项目的子项)

我有以下Rails Haml代码:

  %a.dropdown-toggle{ data: { toggle: "#{'dropdown'}"}, href: "#"}
    %span
      %i.glyphicon.glyphicon-filter
      Filter
      %i.icon-caret-down
    %ul.dropdown-menu
      %li.dropdown
        %a{:href => "#"}
          %input{:type => "checkbox", "ng-model" => "search", "ng-true-value" => "a", "ng-false-value" => ""}/
          %span.lbl a
      %li.dropdown
        %a{:href => "#"}
          %input{:type => "checkbox", "ng-model" => "search", "ng-true-value" => "b", "ng-false-value" => ""}/
          %span.lbl b
      %li.divider
      %li.dropdown
        %a{:href => "#"}
          %input{:type => "checkbox", "ng-model" => "search", "ng-true-value" => "c", "ng-false-value" => ""}/
          %span.lbl c
      %li.dropdown
        %a{:href => "#"}
          %input{:type => "checkbox", "ng-model" => "search", "ng-true-value" …
Run Code Online (Sandbox Code Playgroud)

html haml twitter-bootstrap

6
推荐指数
1
解决办法
126
查看次数

非法嵌套:在纯文本中嵌套是非法的

我是HAML的新手,我有一个错误:Illegal nesting: nesting within plain text is illegal..目前,我正在尝试将我的erb更改为haml,但它无法正常工作.这是我的问题.

<script src="https://js.braintreegateway.com/v2/braintree.js"></script>
<h2 class="mbs">New Subscription
</h2>
<%= simple_form_for :subscription, :url => subscribe_subscription_path(@plan.id), :id => "checkout-form" do |f| %>
  <% if current_user and !current_user.has_payment_info? %>
    <%= render 'customer_form'%>
  <% end %>
  <br/>
  <p> Please enter payment details: </p>
  <div id="payment-form"></div>
  <div id="coinbase-container-id"></div>
  <div class="form-actions">
    <%= f.submit t(:subscribe), :class => 'btn btn-primary' %>
  </div>
  <script charset="utf-8" type="text/javascript">
    var clientToken = "<%= @client_token %>";
    braintree.setup(clientToken, "dropin", {
      container: "payment-form",
      coinbase: { container: "coinbase-container-id" …
Run Code Online (Sandbox Code Playgroud)

haml ruby-on-rails

6
推荐指数
1
解决办法
4053
查看次数

带有HAML的条件标签

我有这个haml:

.kudobox
  %div.kudos= number_to_human_size_not_bytes kudos
  %div= (kudos == 1 || kudos == -1) ? "kudo" : "kudos"
Run Code Online (Sandbox Code Playgroud)

现在,我想.kudobox有一个positive,negativezero类,根据荣誉的数量:

-# < 0 kudos
<div class="kudobox negative">

-# == 0 kudos
<div class="kudobox zero">

-# > 0 kudos
<div class="kudobox positive">
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?谢谢.


我知道我可以

%div{ :class => ( kudos < 0 ? "kudobox negative" : ( kudos == 0 ? "kudobox zero" : ( kudos > 0 ? "kudobox positive" : "kudobox impossible" ) ) …
Run Code Online (Sandbox Code Playgroud)

haml ruby-on-rails view

5
推荐指数
1
解决办法
2695
查看次数