Haml
http://haml.hamptoncatlin.com/
今天花了点时间读了遍Reference:http://haml.hamptoncatlin.com/docs/rdoc/classes/Haml.html
对haml的印象彻底改变了,说句老实话,之前懒得看这个东西,一直认为它没啥意思,今天才发现,使用他,代码简洁多了,而且很容易上手,成本比较低。
!!! XML
!!!
%html
%head/
%body
#main
.articles
.article.title
Hello World
.article.date
2008-8-12 14:10:58
.article.content
Content goes here
生成如下的代码:
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head />
<body>
<div id='main'>
<div class='articles'>
<div class='article title'>
Hello World
</div>
<div class='article date'>
2008-8-12 14:10:58
</div>
<div class='article content'>
Content goes here
</div>
</div>
</div>
</body>
</html>
在haml中,我们还可以直接写textile文本,如
#main
.articles
.article.title
:redcloth
h2. Hello World
.article.date
:markdown
_2008-8-12 14:10:58_
生成
<div id='main'>
<div class='articles'>
<div class='article title'>
<h2>Hello World</h2>
</div>
<div class='article date'>
<p><em>2008-8-12 14:10:58</em></p>
</div>
</div>
</div>
资料:
http://redcloth.org/
http://www.rubyinside.com/redcloth-4-released-962.html
来个更复杂点的内容(来自Radiant的application.html.haml):
!!!
%html{html_attrs}
%head
%meta{"http-equiv"=>"Content-type", :content=>"text/html; charset=utf-8"}/
%title= @page_title || default_page_title
- @stylesheets.uniq.each do |stylesheet|
= stylesheet_link_tag stylesheet
- @javascripts.uniq.each do |javascript|
= javascript_include_tag javascript
/[if lt IE 7]
%script{:type=>"text/javascript", :src=>"/admin/javascripts/pngfix.js"}
- if @content_for_page_scripts
= javascript_tag @content_for_page_scripts
- if @content_for_page_css
%style{:type => "text/css"}= @content_for_page_css
%body
#page
#header
#site-title= link_to_unless_current title, admin_url
#site-subtitle= subtitle
- if logged_in?
#navigation= links_for_navigation
%hr{:class=>"hidden"}/
#main
- if flash[:notice]
#notice
%p= flash[:notice]
- if flash[:error]
#error
%p= flash[:error]
#content
= find_and_preserve(yield)
%hr{:class=>"hidden"}/
#footer
%p
This site was made with Ruby and is powered by
%a{:href=>"http://radiantcms.org"} Radiant CMS
version
= Radiant.loaded_via_gem? ? "#{Radiant::Version} (gem)." : "#{Radiant::Version}."
%p#site-links
- if logged_in?
- if admin?
= nav_link_to 'Users', user_index_url
%span.separator=" | "
= nav_link_to 'Extensions', extension_index_url
- else
= nav_link_to 'Preferences', user_preferences_url
%span.separator=" | "
= nav_link_to 'Log Out', logout_url
%span.separator=" | "
= link_to image('view-site.gif', :alt => "View Site", :title => ''), homepage_url
- if @content_for_popups
#popups
= yield :popups
Radius
http://radius.rubyforge.org/
Radius 是一个强大的基于标签的模板语言。
我们引用下文档中的示例:
require 'radius'
context = Radius::Context.new do |c|
c.define_tag 'hello' do
'Hello world'
end
c.define_tag 'repeat' do |tag|
number = (tag.attr['times'] || '1').to_i
result = ''
number.times { result << tag.expand }
result
end
end
在页面中,我们编写如下代码:
<radius:repeat times="3">
* <radius:hello />!
</radius:repeat>
生成
引用
* Hello world!
* Hello world!
* Hello world!
有人问,这个东西和helper不一样吗?
恩... 差不多,但是如果你的应用程序涉及到客户编码的话,那么提供这一堆tag应该还是不个不错的主意,譬如最常见的,用户自定义模板、皮肤等,现在的博客仅仅是规定死的布局和内容,无法用户完全自定义的。
分享到:
相关推荐
Haml2Html 一个易于使用的编译器,用于使用Haml&Sass开发静态页面。要求需要以下内容:安装将存储库克隆到本地计算机。 在您的终端中,导航到/haml2html 。 跑步 ./install这将检查需求并安装未安装的需求。用法将...
标题“为什么要使用HAML和SASS”涉及到的是前端开发中的两个重要工具——HAML(HTML Abstraction Markup Language)和SASS(Syntactically Awesome Style Sheets)。这两个工具都是为了提高HTML和CSS编码的效率和...
$haml = new Haml(); $html = $haml->render('path/to/your/file.haml'); echo $html; ``` `MtHaml` 提供了一些自定义配置选项,如设置输出的 HTML 版本、开启或关闭 CSS 选择器支持等。通过调整这些配置,你可以...
Haml是Ruby社区广泛采用的模板语言之一,因其简洁的缩进式语法而受到青睐。 **Haml的基本语法** 1. **缩进表示嵌套**:Haml中的元素通过空格或制表符来表示层级关系,与Python或Git的代码风格类似。每增加一个元素...
这个项目的目标是帮助前端开发者在浏览器端直接编译Haml模板,以实现更高效、更简洁的前端代码编写。 Haml是一种预处理语言,旨在提高HTML代码的可读性和简洁性。它通过缩进和简化的语法减少HTML的冗余,使得代码...
你可能需要在`app/views/scaffolds`目录下创建Haml版本的模板文件,如`index.haml`, `show.haml`, `new.haml`, `edit.haml`等,以便脚手架可以使用这些模板。 4. **使用插件**:有些Rails插件,如`haml-rails`,...
ruby -- 在编译时使用haml gem,还有指南针 安装 安装haml & sass gem: gem install haml gem install compass 安装依赖: cd angular_c3_nvd3_crossfilter npm install bower install 测试(业力) grunt ...
使用 Ryby 的最小 Http 服务器类:Haml & Coffeescript & SSE & AJAX——不到 200 行代码! 服务器将运行它自己的线程,而不会弄乱您的代码任何额外的 EventMachine 样式的依赖项。 您可以使用 AJAX 和 SSE 轻松...
$haml = new \MTHaml\Haml(); $html = $haml->render('path/to/your/template.haml'); ``` ## 4. MtHaml与其他模板引擎的比较 - **与HTML模板比较**:HAML和 MtHaml 提供了更简洁的语法,减少了模板文件的体积,...
**Laravel 开发:深入理解 Laravel Blade 和 HAML** 在 Laravel 框架中,Blade 是一个强大的模板引擎,它允许开发者以简洁且可读性强的语法编写视图。Blade 提供了 PHP 代码与 HTML 的无缝集成,使得在处理复杂的...
用于Webpack的Ruby Haml加载程序 将Haml文件作为模块导入Webpack项目中。 返回渲染的模板。 这很慢。 它是为临时使用而创建的,直到转换为Jade。 此自述文件基于自述文件。 设置 添加到您的webpack配置模块....
将Haml与Rails一起使用要将Haml与Rails一起使用,只需将Haml添加到您的Gemfile中并运行bundle 。 gem 'haml' 如果您想用Haml替换基于Rails基于Erb的生成器,请将也添加到您的Gemfile中。格式化Haml的最基本元素是...
编写类似于ruby的haml实现的代码 在错误的标签嵌套上失败,例如table> td> tr 图书馆支持 请参阅如果您将对haml-to-php.com的支持添加到框架中,我想参考您的工作。 我知道的相关工作 请参阅此处。 最引人注目。 ...
除草剂 用Haskell编写的HAML到ERB转换器。 该程序将模板转换为 。 为什么 很多人更喜欢HAML而不是ERB。 但不是每个人,也不是每个情况都如此。...但是,使用Haskell,可以为HAML标记编写一个相当不错的解析器-翻
"前端开源库-ewg-haml-coffee-gulp"是一个专为前端开发者设计的项目,它整合了三个重要的技术: EWG HAML、CoffeeScript 和 Gulp。 首先,让我们深入了解一下这三个核心组件: 1. **EWG HAML**: EWG HAML是一种...
《哈姆雷特编译器:Haml的形式化语法详解》 在Web开发领域,HTML作为标记语言,一直是构建网页的基础。然而,随着技术的发展,为了提高开发效率和代码的可读性,出现了许多预处理器,如Haml...
"s-ublime-text-haml-sass-master.zip"这个压缩包文件显然是为Sublime Text 2设计的一个扩展资源,目的是为了增强其对HAML和SASS这两种语言的支持。 HAML(HTML Abstraction Markup Language)是一种简洁、清晰的...
本项目是基于Ruby的Haml模板引擎设计源码,包含149个文件,主要文件类型为rb、haml、xhtml、erb、x、md、gitignore、gitmodules、yml和yardopts。该项目适用于Haml模板引擎的开发和设计,为用户提供了一个丰富的资源...
Yii 框架的 HAML 视图渲染器 yii-haml是扩展,它为您的视图带来了功能。 基于项目的分支。 使用 Composer 安装 将此添加到您的composer.json : " repositories " : [ { " type " : " composer " , " url " : ...
gulp-ruby-haml 这是一个,将使用该插件haml命令行脚本编译Haml的文件转换成HTML。 您需要同时安装Ruby和Haml才能使用此功能。 尝试gem install haml 。 如果使用 ,请将gem 'haml'添加到Gemfile中,然后运行bundle...