`
andyhu1007
  • 浏览: 199271 次
  • 性别: 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

相关推荐

    Ruby-Haml是一个HTML的模板引擎

    5. **扩展性**:Haml支持Sass,一个强大的CSS预处理器,共同为开发者提供了一整套优雅的前端开发工具链。 **Haml的使用场景** Haml主要应用于Ruby on Rails项目,但在其他框架和环境中也可以通过适配器使用。它...

    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 '...

    rails 开发手册

    5. **Views与模板引擎**:Rails支持ERB、Haml和Slim等多种视图模板语言。手册将详细介绍如何创建和渲染视图,以及如何使用部分和布局。 6. **Controllers与Actions**:控制器负责处理HTTP请求,并协调模型和视图...

    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 ...

    Ruby on Rails敏捷开发最佳实践源代码

    Ruby on Rails,简称Rails,是基于Ruby语言的一个开源Web应用框架,它遵循MVC(Model-View-Controller)架构模式,旨在提升开发效率和代码可读性,鼓励使用敏捷开发方法。这个压缩包包含了“Ruby on Rails敏捷开发...

    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', '~> ...

    ruby on rails

    Ruby on Rails,简称Rails,是由David Heinemeier Hansson基于Ruby语言开发的一个开源Web应用程序框架,它遵循MVC(Model-View-Controller)架构模式,旨在简化Web应用开发过程,提高开发效率。Rails的核心理念是...

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

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

    rails-yelp-mvp-源码.rar

    Rails是Ruby编程语言的一个流行Web开发框架,以其“约定优于配置”(Convention over Configuration)的理念和丰富的gem库而闻名,它简化了Web应用的开发过程。 在描述中,"rails-yelp-mvp-源码.rar" 提示这是一个...

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

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

    Rails扩展框架Trailblazer.zip

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

    Ruby-Tracks是一个采用RubyonRails构建的GTDWeb应用程序

    9. **前端技术**:Rails默认使用ERB或Haml模板语言,也可能涉及JavaScript(如jQuery)、CSS(Sass/SCSS)等前端技术。 10. **部署与运维**:学习如何将Rails应用部署到Heroku、AWS或其他云平台,以及使用Capistrano...

    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' 成功(独立于教程视频): 增加对

    nisevi-backend:Ruby on Rails博客和产品组合

    NISEVI是一款基于Ruby on Rails框架构建的博客和产品组合应用程序。它提供了一个平台,让用户可以展示个人作品集,同时分享自己的想法和见解,体现了Rails框架的强大功能和灵活性。 **Ruby on Rails框架** Ruby on ...

    ProfessionalRubyonRails教程

    《Professional Ruby on Rails 教程》的压缩包文件名为"softii.com",可能包含一系列的教程章节、源代码示例、练习题和解决方案,这些资源将丰富你的学习体验,帮助你在实践中巩固理论知识。在学习过程中,务必动手...

    源代码:网站制作Railay:整体框架.rar

    Ruby on Rails(简称Rails)是一个开源的Web应用框架,遵循MVC(模型-视图-控制器)架构模式,以其简洁、高效和生产力高而闻名。 2. **MVC架构**: - **模型(Model)**:负责处理业务逻辑和数据管理,通常与...

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

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

Global site tag (gtag.js) - Google Analytics