slimrb

slimrb

Преобразование Slim в Erb. slimrb консольная утилита запускается в командной строке. Использование Slim в качестве основного шаблонизатора очень удобно и продуктивно. Но накладывает ограничения на форматирование. Не всегда удобно, когда в команде работают специалисты разного уровня подготовки. Для сложных и объемных страниц может быть сложным. Slim - супер решение, но все же...

Когда наступает момент, что классический HTML лучше и понятней, хоть и многословней, можно применить slimrb для конвертирования.

/ slim
.page
 	h1 Title
    a href="/" home
  	= link_to 'home', '/'   
slimrb -e page.html.slim

 На выходе получим

<div class="page">
  <h1>Title
  </h1>
  <a href="/">home
  </a>
  <%= ::Temple::Utils.escape_html((link_to 'home', '/')) %>
</div>

Чтобы очистить вывод от фильтров Slim, передать опции:

slimrb \
  --option=disable_escape=true \
  --option=use_html_safe=false \
  -e page.html.slim > page.html.erb

на выходе получим HTML/ERB

<div class="page">
<h1>Title
</h1>
<a href="/">home
</a>
<%= link_to 'home', '/' %>
</div>

Опции

-s, --stdin - Читать данные со стандартного ввода
    --trace - Подробный вывод ошибок
-с, --compile - Только компиляция
-e, --erb - Ковертировать в ERB
    --rails - Создавать код, совместимый с Rails (включает --compile)
-r, --require library - Загружать библиотеку или плагин
-p, --pretty - Форматировать HTML
-o, --option name=value - Указать опцию Slim
-l, --locals Hash|YAML|JSON - Установить переменные
-h, --help - Вывод справки 
-v, --version - Вывод версии

Форматирование при конвертирование работает "не очень", но можно применить другие утилиты, например, erb-format

gem install erb-formatter

Затем

slimrb \
  --option="disable_escape=true" \
  --option="use_html_safe=false" \
  --option="tabsize=2" \
  -erb page.html.slim | erb-format --stdin

Все доступные опции SLIM.