`
andyhu1007
  • 浏览: 193960 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Rails每周一题(十九): HAML和Sass

阅读更多

 

  在新项目里使用了Haml -- Html Abstraction Markup Language.

 

  较之于Html,个人感觉Haml有这样几个优点:

 

  1. 对于人来讲,Haml更加规范,更加优美. Html对空格,换行等字符的不敏感对于浏览器来说是好事,但对于人来说并不一定是好事.因为这会放任写代码的人忽略代码的规范,忽略代码的结构,忽略代码的优美.而Haml严谨的格式要求,让代码更加规范,优美. 代码不仅要让机器读懂,更要让人易读.

 

  2. DRY. 这是对Rails DRY原则一个很好的传承. 消除重复,那么也该消除ERB中的重复. Haml依赖于缩进来定义层级关系,消除了Html,ERB中大量的重复:开启tag和关闭tag.

 

  3. Not only markup -- Haml不再仅仅是标记语言. Haml不再是纯粹的标记语言,它可配置,它可以添加注释(不会出现在html中的注释),它可以.... 程序员对之的控制更加方便和强大.

 

  4. 与JavaScript的隔离. Haml的良好结构化,优美和简洁使你不忍心在haml文件上写javascript代码,虽然这是允许的. 它促使你利用事件驱动来更好地隔离标记代码和javascript代码.

 

  任何事情都有两面,Haml具有上面这些好处,但它采用的缩进结构确实使代码的编写和维护更加繁琐,更需要小心.但这种代价明显是值得的.

 

  最后,推荐一下它的孪生兄弟: Sass . 这家伙,带着一个交互shell,甚至可以定义变量...

 

分享到:
评论
7 楼 t0uch 2009-11-17  
cncolder 写道
Sass 不是家伙, 他们是孪生兄妹的关系.
与 Rails 的集成度也不错, 改下设置可以把 .sass 文件放在 app/styles 里, 访问 .css 的时候会自动解析 .sass 编译后放在 public/stylesheets 下面, 保持原有的目录结构, 改动后立即生成, 而且支持缓存.
不过前端不能把 CSS 当成静态文件来过滤了, 因为 Rails 要是接收不到请求, Sass 也没法判断是否需要编译.

所以我觉得lesscss反而好一些
6 楼 t0uch 2009-11-17  
这东西会不会很容易引起性能问题?
相比erb这东西的性能是怎么样的?

看这里http://nex-3.com/posts/87-haml-benchmark-numbers-for-2-2
5 楼 andyhu1007 2009-11-07  
samsam 写道
一直觉得靠缩进开进行逻辑的东西不靠谱,一个地方不小心乱了咋办


这句话跟 "一直觉得靠程序这种严谨的东西不靠谱,一个地方不小心写错了咋办" 具有异曲同工之妙
4 楼 samsam 2009-11-06  
一直觉得靠缩进开进行逻辑的东西不靠谱,一个地方不小心乱了咋办
3 楼 ntyangxd 2009-11-06  
haml 很简洁,但对于缩进,一不留神就会出错.

另外,如果有现成的html,可以很方便的转成haml,命令是html2haml 源文件名 [目标文件名].

想ERB转成haml的话,可以先转为html,再转haml.
2 楼 cncolder 2009-11-02  
Sass 不是家伙, 他们是孪生兄妹的关系.
与 Rails 的集成度也不错, 改下设置可以把 .sass 文件放在 app/styles 里, 访问 .css 的时候会自动解析 .sass 编译后放在 public/stylesheets 下面, 保持原有的目录结构, 改动后立即生成, 而且支持缓存.
不过前端不能把 CSS 当成静态文件来过滤了, 因为 Rails 要是接收不到请求, Sass 也没法判断是否需要编译.
1 楼 saberma 2009-11-02  
一直在使用haml,视层间代码也可以很简洁了
Rails对haml的支持也是很完善,erb后缀相当于换成haml就可以了

如果你没使用过,haml学习成本并没有想像中的高
只要多看看这个官方说明,边写边学,半天就可以熟悉了

http://haml-lang.com/docs/yardoc/HAML_REFERENCE.md.html

相关推荐

    html5-rails:为您的Rails应用程序生成Html5 Boilerplate!

    gem 'sass-rails' gem 'coffee-rails' gem 'uglifier' gem 'compass-h5bp' end gem 'jquery-rails' gem 'html5-rails' # Optional: to generate haml # gem 'haml-rails' # Optional: to generate slim # gem '...

    foundation-rails:Rails基础

    基金会::铁路 Foundation :: Rails是一颗宝石,可以在即将到来的Rails...运动界面是一个Sass库,用于创建灵活的UI过渡和动画,并且与foundation-rails gem打包在一起。 要使用Motion UI,请取消注释foundation_and_o

    rails_starter:大多数预配置的 Rails 应用程序模板

    这是我自己的 Rails 设置,所以我不在乎您是喜欢 HAML 还是 Slim 或 LESS 到 SASS,我不使用这些工具,所以我没有在此处包含它们。 当前默认值 Ruby版本:2.1.2 Rails 版本:4.1.1 模板语言: 样式表语言:SASS ...

    generator-rails-angular-require:将Angular.js和require.js与Ruby on Rails项目集成的快速方法

    $ gem install haml # for haml 其他依赖 SASS(宝石安装sass) 指南针(宝石安装指南针) Rails 4. *的用法 首先,使用常规的rails命令创建Ruby on Rails项目,但将其跳过: $ rails new app-name --skip-bundle...

    Pinteresting-Clone:基于 12in12 教程使用 Rails 和 Haml 的 Pinterest 克隆,添加了功能和测试

    *** 自定义功能:heroku 的 AWS 托管 *** *** 即将推出:、地理定位、评论部分、测试 *** 使用:Ruby on Rails 4.2.0 with Haml 使用的宝石(到目前为止): 宝石 'haml','~> 4.0.6' gem 'bootstrap-sass', '~> ...

    hierapolis-rails:希拉波利斯Rails Admin主题的宝石

    gem 'haml-rails' gem 'compass-rails' gem 'bootstrap-sass' 将此行添加到您的应用程序的Gemfile中: gem 'hierapolis-rails' 然后执行: $ bundle 或将其自己安装为: $ gem install hierapolis-rails 运行...

    对于Ruby编程语言来说是一个精明的应用程序发展条件

    基于对Ruby和Rails、JavaScript和Coffee Script、ERB和HAML、CSS、Sass和Less的顶级支持,更有效地生成一流的代码,而这仅仅是开始。利用语言明确的注意句子结构和错误特征、代码设计、代码成果和轻快的文档。使用...

    Rails扩展框架Trailblazer.zip

    Trailblazer 是基于 Rails 的一个瘦的封装层,加强了代码的封装使用,更直观的代码结构和面向对象架构。是一种概念驱动的架构模型,项目目录如下: app├── concepts│ ├── comment│ │ ├── cell.rb│ ...

    carnival_devise_views:[不再维护]嘉年华设计意见

    devise_views:install选项文件夹名称 $ rails g carnival_devise_views:install admin_user哈姆尔景观 $ rails g carnival_devise_views:install --haml萨斯 $ rails g carnival_devise_views:install --sass贡献...

    WikiStrain:Ruby on Rails 中的简短 Wiki 应用程序教程

    Logan Graba 的 WikiStrain 自述文件 - 2015 ... Bootstrap SASS: gem 'bootstrap-sass', '~> 3.3.3' 设计:gem '设计','~> 3.4.1' Simple_Form: gem 'simple_form', '~> 3.1.0' 成功(独立于教程视频): 增加对

    rails_plus_hacks_and_threads:(不要使用)Rails 4.x 支持 libhacks 和 libthreads

    什么是预配置导轨 4 后台工作计时码表Rails 应用程序模板 其他包括 rails 应用程序中的凉亭资产来自 ruby​​ 工具箱的 楷模观看次数rails-assets.org其他资产铁轨哈姆勒html2haml sass-rails 萨斯咖啡轨咖啡脚本...

    komponent:基于组件在Ruby on Rails中组织前端代码的一种自以为是的方式

    Komponent基于组件在Ruby on Rails中实现了一种合理的组织前端代码的方式。 :waving_hand: 小心! 目前这种宝石的未来。 请发表您的意见! 每个组件都有其自己的文件夹,其中包含一个Ruby模块,一个部分文件,一个...

    fleamarket_sample_73c

    这是一个跳蚤市场应用程序,用户可以自由列出和购买。 使用的技术/语言 前端(javascript,jQuery,HTML / CSS,HAML,Sass) 后端(Ruby on Rails,外部API) 测试(Rspec) Web服务器(nginx,独角兽) 数据库...

    java8集合源码-links_preview:链接预览

    创建一个链接预览应用程序,以便在用户添加链接后,该应用程序可以返回一个包含图像和网站信息的对象。 创建应用程序 $ rails new link_preview 添加一些我们将要使用的 ruby​​gems 在 Gemfile 中 gem '...

    contact_manager:使用RSpec和Capybara构建的应用

    JumpstartLabs联系人管理器TDD驱动... 您将使用的工具包括: 使用RSpec进行测试以推动开发使用Haml和Sass创建视图模板使用辅助函数和局部函数构建可重用的视图代码重构管理身份验证和授权服务器和客户端验证部署和监控

    fud:2015年《年轻人重布线状态》团队超文本项目的存储库

    该应用程序是使用Rails,Haml,Sass和javascript上的ruby创建的。 ->如果是第一次访问该站点,它将重定向您到登录页面,您可以在其中创建一个新帐户并输入您的仪表板。 ->在仪表板上,任何+链接均可用于添加项目。...

    EmacsConfig:emacs配置

    这是我的emacs配置树,自2000年以来一直在使用和调整,对于其他Emacs用户(尤其是Web开发人员)来说,这可能是一个很好的起点。 如今,它在某种程度上适合OS X,但众所周知,它也可以在Linux和Windows上运行。 ...

    .emacs.d:我的emacs配置文件

    这是我的emacs配置树,自2000年以来一直在使用和调整,对于其他Emacs用户(尤其是Web开发人员)来说,这可能是一个很好的起点。 如今,它在某种程度上适合OS X,但众所周知,它也可以在Linux和Windows上运行。 ...

    猎犬:针对GitHub拉取请求的自动代码审查

    该代码库是的Rails应用程序,该服务是一项托管服务,用于审查GitHub pull请求中是否违反样式指南。 支持的语言: 重击 长生不老药 走 HAML JavaScript CoffeeScript 打字稿 降价促销 PHP Python RubyERB ...

    emacs.d:包含电池的Emacs配置包

    这是我的emacs配置树,自2000年以来一直在使用和调整,对于其他Emacs用户(尤其是Web开发人员)来说,这可能是一个很好的起点。 如今,它在某种程度上适合OS X,但众所周知,它也可以在Linux和Windows上运行。 ...

Global site tag (gtag.js) - Google Analytics