Haml - Haml

Haml
ПарадигмаШаблонизатор
РазработаноХэмптон Кэтлин
РазработчикиНатали Вайценбаум (прошлый), Норман Кларк, Мэтт Вильдиг, Акира Мацуда, Ти Пархэм[1]
Стабильный выпуск
5.1.2 / 6 августа 2019 г.; 15 месяцев назад (2019-08-06)[2]
Язык реализацииРубин
Операционные системыКроссплатформенность
ЛицензияЛицензия MIT и Unspace Interactive[1]
Расширения имени файла.haml
Интернет сайтхамл.Информация

Haml (HTML Abstraction Markup Language) - это система шаблонов, которая разработана, чтобы избежать написания встроенного кода в веб-документе и сделать HTML чище. Haml дает возможность иметь динамический контент в HTML. Подобно другим сеть языки как PHP, ASP, JSP и системы шаблонов, такие как eRuby Haml также встраивает некоторый код, который запускается во время выполнения и генерирует HTML-код, чтобы предоставить некоторый динамический контент. Для запуска кода Haml файлы должны иметь .haml расширение. Эти файлы похожи на файлы .erb или eRuby, которые также помогают встраивать Рубин код при разработке веб приложение.

При анализе комментариев кода Haml использует те же правила, что и Ruby 1.9 или новее. Хамл понимает только ASCII совместимые кодировки, такие как UTF-8 но нет UTF-16 или UTF-32 потому что они несовместимы с ASCII.[3][4]

Haml можно использовать в командная строка, как отдельный модуль Ruby или в Рубин на рельсах приложение, делающее Haml подходящим для широкого круга приложений.

История

Haml был первоначально представлен Хэмптон Кэтлин с его первым выпуском в 2006 году, и его работа была продолжена несколькими другими людьми.[5] Его мотивом было сделать HTML проще, чище и проще в использовании. С 2006 года он несколько раз пересматривался и выходили новые версии. До 2012 года Натали Вайценбаум была основным сопровождающим Haml, за ней следовал Норман Кларк до 2015 года. [5] Натали работала над тем, чтобы Haml можно было использовать в Рубин приложений, а брендинг и дизайн были выполнены Ником Уолшем.[5] В группу технического обслуживания в настоящее время входят Мэтт Уилдиг, Акира Мацуда, Ти Пархам и Такаши Кокубун.[1]

История версий

Версия 2.2.0 была выпущена в июле 2009 года с поддержкой Ruby 1.9 и Рельсы 2.0 или выше.[2] Версия 3.0.0 была выпущена в мае 2010 года, добавив поддержку Rails 3 и некоторые улучшения производительности. Четвертая основная версия нарушила совместимость с предыдущими версиями, поддерживая только Rails 3 и Ruby 1.8.7 или выше, и ознаменовала переход на семантическое управление версиями. Несколько поправок, таких как повышение производительности, исправление нескольких предупреждений, совместимость с последними версиями Rails, исправления в документации и многое другое, были внесены в серию Haml 4.[2] Версия 5.0.0 была выпущена в апреле 2017 года. Она поддерживает Ruby 2.0.0 или выше и не поддерживает совместимость с Rails 3.[2] А 'след '[6] добавлена ​​опция, которая помогает пользователям выполнять трассировку по шаблону Haml.

Функции

При разработке Haml были задействованы четыре принципа.[5]

Удобная разметка

Язык разметки удобен в использовании, если соответствует следующим характеристикам:

  • Легко понять язык
  • Простота использования (реализация)

СУХОЙ

Язык разметки должен соответствовать принципу "Не повторяться" (СУХОЙ ) принцип. Должно:

  • Избегайте ненужных повторений
  • Сосредоточьтесь на чистом коде

С хорошим отступом

Язык разметки с хорошим отступ улучшает внешний вид, позволяет читателям легко читать, а также определять, где данный элемент начинается и заканчивается.

Четкая структура

Язык разметки с четкой структурой поможет в сопровождении кода и логическом понимании конечного результата. Неясно, предлагает ли Haml какое-либо дифференциальное преимущество в этом отношении.

Примеры

Разметка Haml похожа на CSS в синтаксисе. Например, у Haml такая же точка . представление классов, как это делает CSS, что упрощает разработчикам использование этой разметки.

"Привет, мир!"

Хамл как инструмент командной строки

Следующее эквивалентно, как распознает HAML Селекторы CSS:

%п{:учебный класс => "образец", :я бы => "добро пожаловать"} Привет мир!
%п.образец#Добро пожаловать Привет мир!

Они приводят к следующему HTML код:

<п класс="образец" я бы="добро пожаловать">Привет мир!</п>

Haml как дополнение к Рубин на рельсах

Чтобы использовать Haml с Рубин, Рубин Gemfile должен включать эту строку:

драгоценный камень 'хамл'

Похожий на eRuby Haml также может обращаться к локальным переменным (объявленным в том же файле в коде Ruby). В этом примере используется образец файла контроллера Ruby.[7]

  • файл: приложение / контроллеры / messages_controller.rb
    класс MessagesController < ApplicationController  def показатель    @сообщение = "Привет, мир!"  конецконец
  • файл: приложение / просмотры / сообщения / index.html.haml
    #Добро пожаловать    %п= @сообщение

Это дает:

<div я бы="добро пожаловать">    <п>Привет мир!</п></div>

Haml как модуль Ruby

Чтобы использовать Haml независимо от Рельсы и ActionView, установить хамл самоцвет, включить его в Gemfile и просто импортировать [Использование: требуется 'haml'] это в скрипте Ruby или вызвать Ruby устный переводчик с -rubygems флаг.

Добро пожаловать = Haml::Двигатель.новый("% p Привет, мир!")Добро пожаловать.оказывать

Выход:

<п>Привет мир!</п>

Haml :: Двигатель является классом Гамла.

Базовый пример

Haml использует отступы (два пробела) для вложения тегов и области видимости. Это действует как замена пар открытых тегов, делая его СУХОЙ и чище. В следующем примере сравниваются синтаксисы Haml и eRuby (Встроенный Ruby) вместе с выводом HTML.

HamlЕРБHTML
% div.category    % div.recipes        % h1= рецепт.имя        % h3= рецепт.категория    % div        % h4= рецепт.описание
<div класс="категория">    <div класс="рецепты">        <h1><%= рецепт.имя %></h1>        <h3><%= рецепт.категория %></h3>    </div>    <div>        <h4><%= рецепт.описание %></h4>    </div></div>
<div класс="категория">    <div класс="рецепты">        <h1>Cookie-файлы</h1>        <h3>Десерты</h3>    </div>    <div>        <h4>Изготовлен из теста и сахара. Обычно круглой формы и содержит около 400 калорий.</h4>    </div></div>


'Ключевые отличия:

  • У Haml нет начала и конца для каждого элемента, например eRuby
  • Синтаксис eRuby очень похож на HTML и, таким образом, более похож на HTML, а Haml - более CSS -любить.
  • Haml использует отступ для вложения элементов тегов, тогда как eRuby использует то же представление HTML
  • В свойствах Haml типа класс, я бы может быть представлен ., # соответственно вместо обычных класс и я бы ключевые слова. Haml также использует % чтобы указать элемент HTML вместо <> как в eRuby.

Пример со встроенным кодом Ruby

Примечание. Это простой пример предварительного просмотра, который может не отражать текущую версию языка.

!!!% html{ : xmlns => "http://www.w3.org/1999/xhtml", : lang => "en", "xml: lang" => "en"}  %голова    %заглавие Боблог %мета{"http-экв" => "Тип содержимого", :содержание => "текст / html; charset = utf-8"}    %связь{"rel" => "таблица стилей", "href" => "main.css", "тип" => "текст / CSS"}  %тело    #header      % h1 Боблог % h2 Блог Боба #содержание      - @entries.каждый делать |Вход|        .Вход          % h3.заглавие= Вход.заглавие          %п.Дата= Вход.опубликовал.strftime("% A,% B% d,% Y")          %п.тело= Вход.тело    #footer      %п        Авторские права на все содержание © Боб

Вышеупомянутый Haml произведет это XHTML:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html язык='en' xml: lang='en' xmlns='http://www.w3.org/1999/xhtml'>  <голова>    <заглавие>Боблог</заглавие>    <мета содержание='text / html; charset = utf-8 ' http-Equiv='Тип содержимого' />    <ссылка на сайт href="/stylesheets/main.css" средства массовой информации="экран" rel="Таблица стилей" тип="текст / CSS" />  </голова>  <тело>    <div я бы='заголовок'>      <h1>Боблог</h1>      <h2>Блог Боба</h2>    </div>    <div я бы='содержание'>      <div класс='Вход'>        <h3 класс='заглавие'>Хэллоуин</h3>        <п класс='Дата'>31 октября 2006 г., вторник</п>        <п класс='тело'>          С Хеллоуином, славные читатели! Я собираюсь сегодня вечером на вечеринку ... Я очень взволнован. </п>      </div>      <div класс='Вход'>        <h3 класс='заглавие'>Новый шаблонизатор Rails</h3>        <п класс='Дата'>Пятница, 11 августа 2006 г.</п>        <п класс='тело'>          Для Ruby on Rails выпущен очень крутой новый движок шаблонов. Это называется Хамл. </п>      </div>    </div>    <div я бы="нижний колонтитул">      <п>        Авторские права на все содержание © Боб </п>    </div>  </тело></html>

Реализации

Официальная реализация Haml была создана для Рубин с плагинами для Рубин на рельсах и Merb, но реализация Ruby также работает независимо. Haml можно легко использовать вместе с другими языками. Ниже приведен список языков, на которых есть реализации Haml:

Смотрите также

Рекомендации

  1. ^ а б c "GitHub". Получено 28 апреля 2018.
  2. ^ а б c d "Журнал изменений". Получено 28 апреля 2018.
  3. ^ «Кодировка». Получено 29 января 2016.
  4. ^ "Кодировки UTF". Получено 7 февраля 2016.
  5. ^ а б c d "О". Получено 28 апреля 2018.
  6. ^ «Вариант трассировки в Haml». Получено 16 февраля 2016.
  7. ^ "Использование Haml". Получено 7 февраля 2016.

внешняя ссылка