Шаблонізатор Slim

Давно хотів спробувати Haml, але не було часу. Але нещодавно виявив новий шаблонизатор, який мені відразу сподобався. За словами творців, він взяв найкраще від Jade та Haml. Основне завдання – скоротити обсяг коду, при цьому не роблячи його страшним та незрозумілим.

Ось так виглядає шаблон із використанням Slim:

Як і в Haml, форматування виводу йде по відступах. Замість конструкції використовується знак =. Для обчислень без виводу в HTML (наприклад, для if і for), ставиться знак -.

На відміну від Haml'a, тут немає символу %, яким виділяються теги. Їх можна одразу писати як є. По суті це просто HTML без <> дужок, у якому використовуються відступи для позначення вкладених елементів. До речі, кількість відступів на ваш вибір, але не менше одного.

Список усіх операторів:

Для порівняння з Haml:

Крім того, Slim допускає кілька варіантів синтаксису:

Ще одна приємна штука — якщо в атрибуті не вказано лапки, буде використано змінну. З прикладу парою рядків вище можна побачити, що використовується змінна page_header_class.

Якщо функція повертає false, атрибут взагалі не буде виведений у html (як і Haml):

Можна використовувати інтерполяцію як у рядках Ruby:

Варто врахувати, що метод render за умовчанням фільтрує висновок, тому перед ним треба ставити подвійний знак рівності, щоб escape_html не спрацював двічі.

Режим Logic-less

Можливо, прочитавши перший приклад, у вас виникло питання – звідки береться змінна 'title'? Slim сам намагається її знайти кількома способами.

Особисто мені такий режим не сподобався, але може саме вам він сподобається.

Що щодо продуктивності
Як встановити

Потім потрібно прописати в консолі bundle install для встановлення вибраних гемів.

Не слід забувати, що для використання Slim ваші файли повинні мати розширення .slim. Тобто, файл index.html.erb буде виконаний шаблонізатором Erb, а index.html.slim відповідно Slim.

Корисні посилання

А у нас тут можна отримати грант на тестовий період Яндекс.Хмари. Варто лише у полі «секретний пароль» запровадити «Хабр»