Haml (XHTML Abstraction Markup Language)

Gratka dla osob zaznajomionych z Markaby

http://haml.hamptoncatlin.com/

Przykladowe zastosowanie:

[quote]Rhtml

<%= item.body %>

Haml

%small= item.body[/quote]

[quote]Rhtml

Welcome to our site!

<%= print_information %>

<%= render :partial => "sidebar" %>

Haml

#content
.left.column
%h2 Welcome to our site!
%p= print_information
.right.column= render :partial => “sidebar”[/quote]
Hmm?
Sama przyjemosc, czyz nie?

Faktycznie ladnie wyglada, nawet bardzo. Zawsze mnie przerazaly sprawy typu:


<div <%= "class='unavailable_item'" unless item.available? %> id='item_<%= item.id %>' >

ale teraz to sie robi (simply_helpful i ogolnie nowe Rails):

[code lang=“html”]

<% content_tag_for(:tr, @person) do %>

<%=h @person.first_name %> <%=h @person.last_name %> <% end %>

<% div_for(@person, :class => “foo”) do %>
<%=h @person.name %>
<% end %>[/code]
Dla mnie to sprawa drugorzedna, ale jak z performance w stos do ERb? Bo prace nad ERb sa w toku:
http://weblog.rubyonrails.org/2006/10/2/who-wants-faster-erb-rendering-for-free
http://www.kuwata-lab.com/erubis/

[quote=pawel]ale teraz to sie robi (simply_helpful i ogolnie nowe Rails):

[code lang=“html”]

<% content_tag_for(:tr, @person) do %>

<%=h @person.first_name %> <%=h @person.last_name %> <% end %>

<% div_for(@person, :class => “foo”) do %>
<%=h @person.name %>
<% end %>[/code][/quote]
Tez mysle ze to dobry kierunek.

Uzywanie Erb, Markaby, Haml zawsze bedzie troche kosztowne, mniej lub bardziej.

Mysle, ze problematyka nie lezy po stronie parsowania roznorakich (czyt.: wymyslnych) skladni/markapow.
Bardziej wazne jest co powinno sie robic po.

  1. sposob na przechowywanie htmla sparsowanego, ‘zmieszanego’ z osadzonymi ‘zmarszalowanymi’ obiektami ktore mozna nazwijmy to blokowo podmieniac.
    Podoba mi sie rozwiazanie Coda Hale http://blog.codahale.com/2006/04/10/content-only-caching-for-rails/

  2. sparsowany html + memcache + zmarszalowane obiekty + content-only-caching-for-rails

I gdyby tak przemyslec i polaczyc rozwiazania.
Mysle, ze predkosc/wydajnosc lezy w metodach PO sparsowaniu a nie PRZED.

Wolne mysli, z braku czasu tylko na tyle moge sobie pozwolic.

pozdrawiam