标签: haml

在Rails之外的HAML中渲染HAML部分

我正在使用HAML为网站生成一些静态html页面,我想将常见组件拆分为可以包含在多个页面中的部分,就像在Rails中一样.但是我不想使用整个Rails堆栈来执行此操作,因为它看起来有点矫枉过正.

我在互联网上环顾四周,但没有找到任何东西,比做以下事情更好:

Haml::Engine.new(IO.read("header.haml")).render
Run Code Online (Sandbox Code Playgroud)

是否有更好的方法在HAML中包含所谓的部分内容?我缺少的现有过滤器或命令?

ruby haml

9
推荐指数
1
解决办法
4215
查看次数

使用Rails 3和Haml 3,如何配置Haml?

我正在使用Rails 3.0.0.beta3和Haml 3.0.0.rc.2,我无法找到我需要为Haml放置配置行的地方(也不是新版本中的内容,就此而言) .使用Rails 2.3.5和Haml 2,我会这样做

Haml::Template.options[:format] = :html5
Run Code Online (Sandbox Code Playgroud)

在environment.rb中.或者,在Sinatra,

set :haml, {:format => :html5}
Run Code Online (Sandbox Code Playgroud)

在我的主文件中.但是在Rails 3中,一切都被改变了,无论我把配置线放在哪里,我都会得到一个未定义的方法或未定义的对象错误.

haml ruby-on-rails ruby-on-rails-3

9
推荐指数
2
解决办法
4127
查看次数

在haml部分模板处理中缺少keyword_end

因为我对HTML标签感到恼火,所以我开始将我的项目转换为HAML,因为它的结构更好.我很高兴安装提供了html2haml帮助我的工具.

虽然在语法上是正确的,处理文件给我一个奇怪的错误,我不太明白:

/stories/_story.html.haml:28: syntax error, unexpected keyword_ensure, expecting keyword_end
...:Util.html_safe(_erbout);ensure;@haml_buffer = @haml_buffer....
...                               ^
/stories/_story.html.haml:31: syntax error, unexpected $end, expecting keyword_end
Run Code Online (Sandbox Code Playgroud)

我的haml源只有27行,因为我对此很新,我不知道它出错了...这里是代码:

%h1= story.title
%center
  %i
    by #{link_to story.user.name, story.user}
#story-short= story.short_desc
- if logged_in? and @current_user.id == story.user_id
  .list-buttons
    %center
      = link_to 'Edit', edit_story_path(story)
      |
      \#{link_to 'Delete', story, :method => 'delete', :confirm => 'Are you really sure?'}
#story-body
  - story.body.split("\n").each do |line|
  - if line.strip.empty?
    %hr/
  - else
    %p= line.strip
#comments
  %p{:onclick => "$('#comments').find('dl').slideToggle();"} Comments to this …
Run Code Online (Sandbox Code Playgroud)

haml ruby-on-rails

9
推荐指数
1
解决办法
8745
查看次数

为什么要使用HTML而不是HAML?

在各种论坛和博客中,我看到一些人宣传HAML,一些人宣传HTML.使用HAML与HTML有什么优缺点?

如果我使用HAML支持HTML(如果有的话),我只想了解我错过了什么.

html haml

9
推荐指数
4
解决办法
8330
查看次数

partial_for vs partials中的yield

在带有HAML(3.1.4)的rails 3.0中,我有

  1. 一些类似模板的部分,如_template.html.haml:

    .panel.top
      = yield :panel_top
    
    .content
      = yield
    
    Run Code Online (Sandbox Code Playgroud)
  2. 另一个部分将使用prev模板显示(所有这些东西都是使用AJAX渲染的,但这没关系)

    - content_for :panel_top do
     .title.left
       = title
    
    content text
    
    Run Code Online (Sandbox Code Playgroud)

这就像Rails 3.0中的魅力一样

但是,升级到3.2后这个失败了!Yiels只是产生"内容文本",所以我有两次"内容文本",根本没有标题

只有改变= yield :panel_top= content_for :panel_top作品为3.2

我不确定这个解决方案是否正常,如果它是稳定的或推荐的,我找不到任何关于yield处理和Rails 3.1发行说明中的变化的注释,也没有找到3.2中的注释.

你能帮助组织yield内部部分的最佳方法吗?

haml ruby-on-rails ruby-on-rails-3

9
推荐指数
1
解决办法
3485
查看次数

Rails&Haml:无法获得表格

我有一个表格:

  %form{:action:method => "post"}
    %fieldset
      %label{:for => "title"} Title:
      %input{:name => "title", :type => "text", :value => ""}/
      %label{:for => "notes"} Notes:
      %input{:name => "notes", :type => "text", :value => ""}/
    %a.finish{:href => "/rotas", :method => "post"} Finish!
Run Code Online (Sandbox Code Playgroud)

但是,链接似乎并不想工作 - 也许我错过了在Haml或Rails中基本的东西.

我在我的routes.rb中有一个:资源rotas,我的控制器有一个def create方法.

任何帮助表示赞赏!谢谢!

顺便说一句.我使用scaffold生成 - 似乎相同的表单用于编辑模型和创建.它如何知道是POST还是PUT?

forms haml ruby-on-rails

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

如何在动态链接中使用HAML?

我正在尝试使用看起来像这样的HAML创建一个链接

=link_to("Last updated on<%=@last_data.date_from.month %>",'/member/abc/def?month={Time.now.month}&range=xyz&year={Time.now.year}')
Run Code Online (Sandbox Code Playgroud)

它没有采用Ruby代码,而是将其显示为字符串

上次更新于<%= @ last_data.date_from.month%>

并在URL中也没有采取功能Time.now.monthTime.now.year.

如何在URL和字符串中传递Ruby代码?

ruby haml ruby-on-rails ruby-on-rails-3

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

可以haml渲染<input type ="text"required>

哈姆可以渲染

%input{:type=>"text"}
Run Code Online (Sandbox Code Playgroud)

<input type="text">
Run Code Online (Sandbox Code Playgroud)

想知道haml应该是什么,所以它在html中呈现为

<input type="text" required>
Run Code Online (Sandbox Code Playgroud)

谢谢

html5 haml ruby-on-rails

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

Angular2与Haml

是否可以在Angular 2中使用HAML作为模板引擎?

在Angular 2(版本2.3.1)中,您可以使用scss/sass而不是css.这是一个给定的选项angular-cli--style.对于模板,cli只允许通过设置在内联模板之间进行更改--inline-template.

除非得到支持,否则我如何配置我的Angular 2 App(由angular-cli版本创建1.0.0-beta.26)来编写HAML,编译HTML并使用HTMLin ?component作为templateUrl

编辑 Angular/cli使用webpack.我不知道如何配置webpack在捆绑所有内容之前将haml渲染为html.我如何haml-loader在Angular中使用?

haml angular-cli angular

9
推荐指数
1
解决办法
1713
查看次数

是什么原因,在ajax中渲染相同的HAML比在浏览器中加载要慢得多

简短说明(我们在浏览器调试器网络选项卡中):

AJAX GET /page/42 takes ~20s
replay/resend this XHR takes ~15s
open this XHR in new tab takes ~1.5s (only!)
replay/resend this XHR takes ~15s (again)
Run Code Online (Sandbox Code Playgroud)
  • 仅在开发中发生

  • 总是(和跨浏览器)重现能力

  • Rails 3.2.22.5

  • HAML失去了时间(非常肯定)

我正在开发一个HTML编辑器来设计打印页面.这个编辑器 - 让我们说 - 全面.

启动时我必须渲染完整的编辑器HAML(~1000行),这需要不到5秒(除非在rails启动后首先).这相当快.

基本结构看起来像这样(伪HAML,每行是部分,数字是〜渲染时间)部分计数(n)通常在10到15左右

editor_layout 
    editor (~5s)
        edit_background (~1.5s)
            the_page (0.1s*n)
                section_1
                .
                .
                section_n
        dialog_1                            
        dialog_2
        .
        .
        dialog_42
Run Code Online (Sandbox Code Playgroud)

打印时(PDF)看起来像

print_layout (~1.5s) 
    the_page (0.1s*n)
        section_1
        .
        .
        section_n
Run Code Online (Sandbox Code Playgroud)

到目前为止,在开发环境中特别好,特别好.

但是当我必须在编辑器中更改页面并使用AJAX调用新页面以获得内部HTML时

no_layout
    edit_background (~15s)
        the_page (1s*n)
            section_1
            .
            .
            section_n
Run Code Online (Sandbox Code Playgroud)

动作需要大约15秒(!).时间来自渲染一个部分现在需要1秒而不是100毫秒.如果我在新的浏览器选项卡中打开相同的URL,我将恢复到通常的1.5秒.

我不知道为什么.

使它更奇怪:

我可以用AJAX重新加载(重新渲染)编辑器的任何(HTML)部分,这看起来像

/page/42/edit?inner-html=background, dialog_1, …
Run Code Online (Sandbox Code Playgroud)

haml ruby-on-rails

9
推荐指数
1
解决办法
309
查看次数

标签 统计

haml ×10

ruby-on-rails ×7

ruby-on-rails-3 ×3

ruby ×2

angular ×1

angular-cli ×1

forms ×1

html ×1

html5 ×1