|
Давно хотів написати статтю про Haml, та все ніяк не доходили руки. Починаючи з 1.2 Sinatra підтримує новий шаблонізатор Slim. Вирішив познайомитися з ним, і він мені відразу сподобався. Slim взяв найкраще від Haml, і основне його завдання - зменшити об'єм коду.
Шаблони Slim можуть виглядати як Haml, використовуючи ярлики id і class, але їх використання не є обов'язковим. Як і в Haml форматування тут відбувається відступами.
|
Ось так виглядає приклад шаблону з використанням
Slim:
Якщо Haml – це HTML на стероїдах, тоді Slim – це Haml на дієті.
Інсталяція:
$ gem install slim
Список операторів:
| |
Вертикальна риска повідомляє шаблонізатору, що потрібно просто вивести текст. При цьому всі "небезпечні" символи фільтруються. |
' |
Одинарна лапка працює як і попередній оператор, але додає в кінці пробіл. |
- |
Дефіс працює як в Haml, використовується для циклів, умов та іншого. |
= |
Знак рівності використовується для виводу результату виконання коду Ruby в html. |
=' |
Працює як і попередній оператор, але додає в кінці пробіл. |
== |
Працює як і знак рівності, але виводить текст "як є", без обробки методом escape_html |
==' |
Працює як і попередній оператор, але додає в кінці пробіл. |
/ |
Код не буде виконуватись і не потрапить в html взагалі. |
/! |
Знак для html коментарів (<!-- -->), які потраплять у вивід. |
Атрибути та коментарі.
Позначати
id і
class можна ось так:
Для порівняння в
Haml:
Крім того, Slim допускає кілька варіантів синтаксису:
Допускається на вибір використання наступних обгорток для атрибутів:
{...}, [...], (...)
Ще одна приємна штука - динамічний контент в атрибуті. Якщо в атрибуті не вказані лапки, буде використана змінна.
Подобається, як працюють коментарі. Якщо є блок коду, який потрібно закоментувати, достатньо додати всього один рядок, що вплине на весь блок:
Завдяки
Tilt,
Slim має підтримку інших шаблонізаторів:
Двигун | Фільтр | Необхідні бібліотеки |
Ruby | ruby: | none |
Javascript | javascript: | none |
CSS | css: | none |
ERB | erb: | none |
Haml | haml: | haml |
Sass | sass: | haml/sass |
Scss | scss: | haml/sass |
LessCSS | less: | less |
Builder | builder: | builder |
Liquid | liquid: | liquid |
RDiscount | markdown: | rdiscount/kramdown |
RedCloth | textile: | redcloth |
RDoc | rdoc: | rdoc |
Radius | radius: | radius |
Markaby | markaby: | markaby |
Nokogiri | nokogiri: | nokogiri |
CoffeeScript | coffee: | coffee-script (+node coffee) |
На сам кінець кілька слів про продуктивність. Інформація взята з офіційної сторінки автора
stonean.com/slim-update:
user system total real
erb 0.560000 0.010000 0.570000 ( 0.574373)
erubis 0.480000 0.000000 0.480000 ( 0.501512)
fast erubis 0.470000 0.000000 0.470000 ( 0.481918)
slim 0.610000 0.000000 0.610000 ( 0.612794)
haml 3.930000 0.010000 3.940000 ( 3.939419)
haml ugly 3.790000 0.010000 3.800000 ( 3.798528)
erb (cached) 0.190000 0.000000 0.190000 ( 0.188593)
erubis (cached) 0.160000 0.000000 0.160000 ( 0.159869)
fast erubis (cached) 0.140000 0.000000 0.140000 ( 0.135476)
slim (cached) 0.150000 0.000000 0.150000 ( 0.153698)
haml (cached) 0.430000 0.000000 0.430000 ( 0.436980)
haml ugly (cached) 0.370000 0.000000 0.370000 ( 0.372770)
Корисні посилання:
Немає коментарів:
Дописати коментар