有没有办法在HAML中实现这一目标?
<h1>Lorem ip<span class="red">sum</span><span class="subtitle">dolor</span></h1>
Run Code Online (Sandbox Code Playgroud)
我用过这个在线工具对话(http://html2haml.heroku.com/)
%h1
Lorem ip
%span.red sum
%span.subtitle dolor
Run Code Online (Sandbox Code Playgroud)
并在HTML中呈现:
<h1>
Lorem ip
<span class='red'>sum</span>
<span class='subtitle'>dolor</span>
</h1>
Run Code Online (Sandbox Code Playgroud)
我试图删除ip和sum之间的空格,但我无法实现它.
谢谢
有没有办法配置rails默认使用haml,即生成脚手架时生成的scaffold_name/index.html.haml是而不是scaffold_name/index.html.erb.
类似于您可以添加config.sass.preferred_syntax = :sass到默认情况config/application.rb并scaffold_name.sass生成的方式.
尝试添加以下内容 config/application.rb
config.generators do |g|
g.template_engine :haml
end
Run Code Online (Sandbox Code Playgroud)
但结果如下
$ rails generate scaffold foo name:string
invoke active_record
create db/migrate/20120208152550_create_foos.rb
create app/models/foo.rb
invoke test_unit
create test/unit/foo_test.rb
create test/fixtures/foos.yml
route resources :foos
invoke scaffold_controller
create app/controllers/foos_controller.rb
error haml [not found]
invoke test_unit
create test/functional/foos_controller_test.rb
invoke helper
create app/helpers/foos_helper.rb
invoke test_unit
create test/unit/helpers/foos_helper_test.rb
invoke assets
invoke coffee
create app/assets/javascripts/foos.js.coffee
invoke sass
create app/assets/stylesheets/foos.css.sass
invoke sass
identical app/assets/stylesheets/scaffolds.css.sass
$ rails …Run Code Online (Sandbox Code Playgroud) 嘿,有没有办法可以用haml做到这一点?
:javascript
var Tab = <%= @tab %>
Run Code Online (Sandbox Code Playgroud)
我可以添加一个助手,我想:
<script>
var Tab = '<%= @tab %>'
</script>
Run Code Online (Sandbox Code Playgroud)
但是使用HAML会很好!
当我说:
%p= item.price + " dollars"
Run Code Online (Sandbox Code Playgroud)
我越来越
50美元
而不是具有不易碎的空间符号.
如何使用HAML插入此特殊符号和其他特殊符号?
有没有为eclipse添加语法高亮和其他细节的插件用于编辑Haml和Sass?谷歌搜索似乎只是指向lucky-dip.net上的一个死项目.
注:这是无礼的话,我最感兴趣的是一种仅使用萨斯(或相近似的什么事情的解决方案.少在Eclipse)将适合我的需要.
此外,我正在使用Eclipse的App Engine插件开发Google App Engine(Java).因此,切换到另一个IDE不是一种选择.
更新:所以我现在使用Pascal的答案进行语法高亮,我已经安装了Ruby和Compass来将sass编译成css.
但是我知道sass的语法会随着2.4而改变,所以我仍然想让Aptana的Haml和Sass编辑器工作.当我尝试使用它们时,它们抛出异常而不显示文件.我有兴趣知道这是因为我错误配置了Aptana还是编辑中的实际错误.
我也对编译与Ecplise集成的Sass的任何方式都非常感兴趣,这样我就不必独立运行它了.(或者将Sass/Compass放入Ecplise构建过程中的方法.)
我进入Backbone.js为我的项目构建javascript代码,我喜欢HAML在后端(rails)进行模板化,所以我喜欢将它用于Backbone Views模板.我知道有几个HAML端口到Javascript,如 https://github.com/creationix/haml-js和骨干支持JST和小胡子轻松.
什么是使用haml模板的最佳方式.
在客户端使用HAML有什么缺点吗?性能,额外的脚本加载时间(由jammit等资产打包工具处理)
我有一个rails create action,它会在文件中发回一些jquery:
create.js.erb
var appearance = $("<%= escape_javascript(render(:partial => @appearance)) %>").effect("highlight", {color: '#E6ff00'}, 2000);
$("#sortable").append(appearance);
$("#new_appearance")[0].reset();
Run Code Online (Sandbox Code Playgroud)
我已经开始使用HAML了,想知道我应该如何转换它.我可以使用js.haml吗?如果是这样,标记应该是什么样的?
在html中,你可以做这样的事情
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent eget
aliquet odio. Fusce id quam eu augue sollicitudin imperdiet eu ac eros.
<em>Etiam nec nisi lorem</em>, ac venenatis ipsum. In sollicitudin,
lectus eget varius tincidunt, felis sapien porta eros, non
pellentesque dui quam vitae tellus.
</p>
Run Code Online (Sandbox Code Playgroud)
这很好,因为文本段落看起来仍然像标记中的段落.在haml中,它看起来像这样
%p
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent eget
aliquet odio. Fusce id quam eu augue sollicitudin imperdiet eu ac eros.
%em Etiam nec nisi lorem
, ac venenatis … 我注意到从插件生成的大多数HTML/XML/HAML使用2个空格而不是1个选项卡.我使用textmate并将标签设置为4个空格用于HAML/HTML/XML和2个空格用于Javascript/Ruby,但我只需按Tab键一次即可获得良好的缩进.按空格键两次并删除两次似乎太多的工作:p.
您是手动键入两个空格,还是将一些中间层转换为两个空格?或者只是你们中的一些人使用标签?
我的最终目标是创建几个静态HTML文件,以便传递给其他人.
但对于我的工作流程,我希望将HAML作为基本源文件.在这样做的时候,我希望至少在我这边干预这个过程.
现在我有很多页面最终将共享一个共同的布局,我想知道如何合并布局.
这是我目前的代码:
#!/usr/bin/env ruby
require 'rubygems'
require 'rake'
require 'haml'
FileList.new('./src/*.html.haml').each do |filename|
if filename =~ /([^\/]+)\.haml$/
File.open($1, 'w') do |f|
f.write Haml::Engine.new(File.read(filename)).render
end
end
end
Run Code Online (Sandbox Code Playgroud)
!!!
%html
%head
%title Yay
%body
= yield
Run Code Online (Sandbox Code Playgroud)
= render :layout => 'header' do
%p This is awesome
Run Code Online (Sandbox Code Playgroud)
现在,这显然不工作,因为渲染方法是未定义出的Rails的背景下,但我希望它得到跨我想要做的地步.
有什么建议?
haml ×10
javascript ×2
ruby ×2
backbone.js ×1
eclipse ×1
html ×1
indentation ×1
jquery ×1
sass ×1
templates ×1
xml ×1