рдореИрдВ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рд╣реЗрдорд▓ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рд╕рдордп рдирд╣реАрдВ рдерд╛ред рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдПрдХ рдирдП рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди рдХреА рдЦреЛрдЬ рдХреА, рдЬреЛ рдореБрдЭреЗ рддреБрд░рдВрдд рдкрд╕рдВрдж рдЖрдпрд╛ред рд░рдЪрдирд╛рдХрд╛рд░реЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЙрдиреНрд╣реЛрдВрдиреЗ рдЬреЗрдб рдФрд░ рд╣реЗрдорд▓ рд╕реЗ рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рд▓рд┐рдпрд╛ред рдореБрдЦреНрдп рдХрд╛рд░реНрдп рдХреЛрдб рдХреА рдорд╛рддреНрд░рд╛ рдХреЛ рдХрдо рдХрд░рдирд╛ рд╣реИ, рдЬрдмрдХрд┐ рдпрд╣ рдбрд░рд╛рд╡рдирд╛ рдФрд░ рд╕рдордЭ рд╕реЗ рдмрд╛рд╣рд░ рдирд╣реАрдВ рд╣реИред
рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд╕реНрд▓рд┐рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рджрд┐рдЦрддрд╛ рд╣реИ:
doctype html html head title Slim Examples meta name="keywords" content="template language" body h1 Markup examples
рд╣реИрдо рдореЗрдВ, рдЖрдЙрдЯрдкреБрдЯ рд╕реНрд╡рд░реВрдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрдЬрд╛рдп
<% =%> ,
= рдЪрд┐рд╣реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред Html рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рдмрд┐рдирд╛ рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
рдпрджрд┐ рдФрд░ рдХреЗ
рд▓рд┐рдП ),
- рд╕рд╛рдЗрди рд▓рдЧрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
Haml рдХреЗ рд╡рд┐рдкрд░реАрдд, рдХреЛрдИ% рд╕рдВрдХреЗрдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреМрди рд╕реЗ рдЯреИрдЧ рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВред рдЙрдиреНрд╣реЗрдВ рддреБрд░рдВрдд рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ, рдпрд╣ <> рдХреЛрд╖реНрдардХ рдХреЗ рдмрд┐рдирд╛ рд╕рд┐рд░реНрдл HTML рд╣реИ, рдЬреЛ рдиреЗрд╕реНрдЯреЗрдб рддрддреНрд╡реЛрдВ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреИрдбрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рд╡реИрд╕реЗ, рдЗрдВрдбреЗрдВрдЯреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рдЖрдкрдХреА рдкрд╕рдВрдж рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд╕реЗ рдХрдо рдирд╣реАрдВред
рд╕рднреА рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреА рд╕реВрдЪреА:
| , . "" . ' , . - Haml, , , <% ... %> = <%= ... %>, html =' , . == , " ", escape_html ==' , , . / . html . /! html (<!-- -->), .
рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рдФрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ
рдЖрдк рдЖрдИрдбреА рдФрд░ рдХрдХреНрд╖рд╛ рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдирд╛рдорд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
blockquote id="quote-#{@quote.id}" class="quote" p class="title" = @quote.title p style="padding:1em;" = @quote.body
Haml рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХреЗ рд▓рд┐рдП:
%blockquote{:id => "quote-#{@quote.id}", :class => "quote"} %p{:class="title"}= @quote.title %p{:style => "padding:1em;"}= @quote.body
рд╕реНрд▓рд┐рдо рднреА рдХрдИ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:
/ . , , Haml' #nav.top div id="nav" class="top" / h1 class=page_header_class = page_header h1{class=page_header_class} = page_header h1[class=page_header_class] = page_header h1(class=page_header_class) = page_header
рдПрдХ рдФрд░ рдЕрдЪреНрдЫреА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдпрджрд┐ рд╡рд┐рд╢реЗрд╖рддрд╛ рдореЗрдВ рдЙрджреНрдзрд░рдг рдЪрд┐рд╣реНрди рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдПрдХ рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рд╕реЗ рдКрдкрд░ рдХреА рдХреБрдЫ рдкрдВрдХреНрддрд┐рдпрд╛рдБ, рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЪрд░
page_header_class рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ред
рдпрджрд┐ рдлрд╝рдВрдХреНрд╢рди рдЧрд▓рдд рдЖрддрд╛ рд╣реИ, рддреЛ HTML рдореЗрдВ рд╡рд┐рд╢реЗрд╖рддрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рдХреА рдЬрд╛рдПрдЧреА (Haml рдореЗрдВ):
option value="Slim" selected=option_selected?("Slim")
рд░реВрдмреА рддрд╛рд░ рдореЗрдВ рдЖрдк рдкреНрд░рдХреНрд╖реЗрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
body h1 ,
рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдЯрд┐рдкреНрдкрдгреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реВрдВред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЯрд┐рдкреНрдкрдгреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХрд╛ рдПрдХ рдмреНрд▓реЙрдХ рд╣реИ, рддреЛ рдмрд╕ рдПрдХ рдкрдВрдХреНрддрд┐ рдЬреЛрдбрд╝реЗрдВ, рдЬреЛ рдкреВрд░реЗ рдмреНрд▓реЙрдХ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░реЗрдЧрд╛ред
рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рд░реЗрдВрдбрд░ рд╡рд┐рдзрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рд╕рд╛рдордиреЗ рдПрдХ рдбрдмрд▓ рдмрд░рд╛рдмрд░ рдЪрд┐рд╣реНрди рд▓рдЧрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдПрд╕реНрдХреЗрдк_рдПрдЪрдПрдирдЬреА рджреЛ рдмрд╛рд░ рдХрд╛рдо рди рдХрд░реЗред
рд▓реЙрдЬрд┐рдХ-рдХрдо рдореЛрдб
Slim::Engine.set_default_options :sections => true
рдФрд░ рдпрд╣рд╛рдБ рдЖрдк рдЗрд╕рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
/ false empty?, h1 - article h1 = title
/ , article false empty? -! article p
рд╢рд╛рдпрдж, рдкрд╣рд▓рд╛ рдЙрджрд╛рд╣рд░рдг рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рд╕рд╡рд╛рд▓ рд╣реИ - рдЪрд░ 'рд╢реАрд░реНрд╖рдХ' рдХрд╣рд╛рдВ рд╕реЗ рдЖрддрд╛ рд╣реИ? рд╕реНрд▓рд┐рдо рдЦреБрдж рдЙрд╕реЗ рдХрдИ рддрд░реАрдХреЛрдВ рд╕реЗ рдЦреЛрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИред
/ If article.respond_to?(:title) - article / article.send(:title) h1 = title
/ If article.respond_to?(:has_key?) and article.has_key?(:title) - article / article[:title] h1 = title
/ If article.instance_variable_defined?(@title) - article / article.instance_variable_get @title h1 = title
рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореБрдЭреЗ рдпрд╣ рд╡рд┐рдзрд╛ рдкрд╕рдВрдж рдирд╣реАрдВ рдЖрдИ, рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рдЖрдк рдЗрд╕реЗ рдкрд╕рдВрдж рдХрд░реЗрдВрдЧреЗред
рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛
рд░реЗрд▓ рдореЗрдВ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреИрд╢реНрдб рд╣реЛрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╡реЗ рдорд╛рдирдХ рдПрд░реНрдм рд╕реЗ рдкрд╣рд▓реЗ рдЧрддрд┐ рдореЗрдВ рд╣реА рдкрд┐рдЫрдбрд╝ рдЬрд╛рдПрдВрдЧреЗ, рдЬрдм рд╡реЗ рдкрд╣рд▓реА рдмрд╛рд░ рдкрд╣реБрдВрдЪ рдЬрд╛рдПрдВрдЧреЗред рдпрд╣рд╛рдВ рдПрдХ рддреБрд▓рдирд╛ рдЪрд╛рд░реНрдЯ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рд╕реНрд▓рд┐рдо рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЖрдкрдХреЗ рдЖрд╡реЗрджрди рдореЗрдВ рдЕрдбрд╝рдЪрди рдирд╣реАрдВ рд╣реЛрдЧрд╛:
рдХреИрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
2 рд╡рд┐рдХрд▓реНрдк рд╣реИрдВред рдкрд╣рд▓рд╛ - рдмрд┐рдирд╛ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдЬрдирд░реЗрдЯрд░ рдЬреЛрдбрд╝рдиреЗ (рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдордЪрд╛рди)ред рджреВрд╕рд░рд╛ - рдЬрдирд░реЗрдЯрд░ рдХреЗ рд╕рд╛рдеред
рдлрд┐рд░ рдЖрдкрдХреЛ рдЪрдпрдирд┐рдд рд░рддреНрдиреЛрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдВрд╕реЛрд▓ рдореЗрдВ
рдмрдВрдбрд▓ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдпрд╣ рдордд рднреВрд▓реЛ рдХрд┐ рд╕реНрд▓рд┐рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЕрд░реНрдерд╛рдд,
index.html.erb рдлрд╝рд╛рдЗрд▓ рдХреЛ Erb рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди рджреНрд╡рд╛рд░рд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░
index.html.slim рдлрд╝рд╛рдЗрд▓ рдХреНрд░рдорд╢рдГ рд╕реНрд▓рд┐рдо рд╣реЛрдЧреАред
рдЙрдкрдпреЛрдЧреА рд▓рд┐рдВрдХ
slim-lang.com - рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдкреГрд╖реНрда
github.com/stonean/slim -
рдЬреАрдердм рдкрд░ рдкреГрд╖реНрда
github.com/fredwu/haml2slim - рд╕реНрд▓рд┐рдо рдХрдиреНрд╡рд░реНрдЯрд░ рдХреЛ рд╣реИрдо
github.com/fredwu/ruby-slim-tmbundle - TextMate рдХреЗ рд▓рд┐рдП рдмрдВрдбрд▓
github.com/bbommarito/vim-slim - рд╡рд┐рдо рдХреЗ рд▓рд┐рдП рдлрд╛рдЗрд▓реЗрдВ