WikiDer > Haml
Эта статья содержит контент, который написан как Реклама. (Июль 2017 г.) (Узнайте, как и когда удалить этот шаблон сообщения) |
Парадигма | Шаблонизатор |
---|---|
Разработано | Хэмптон Кэтлин |
Разработчики | Натали Вайценбаум (прошлый), Норман Кларк, Мэтт Вильдиг, Акира Мацуда, Ти Пархэм[1] |
Стабильный выпуск | 5.1.2 / 6 августа 2019 г.[2] |
Язык реализации | Рубин |
Операционные системы | Кроссплатформенность |
Лицензия | Лицензия MIT и Unspace Interactive[1] |
Расширения имени файла | .haml |
Интернет сайт | хамл |
Haml (HTML Abstraction Markup Language) - это система шаблонов, которая разработана, чтобы избежать написания встроенного кода в веб-документе и сделать HTML чище. Haml дает возможность иметь динамический контент в HTML. Подобно другим сеть языки как PHP, ASP, JSP и системы шаблонов, такие как eRubyHaml также встраивает некоторый код, который запускается во время выполнения и генерирует 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
должен включать эту строку:
драгоценный камень 'хамл'
Похожий на eRubyHaml также может обращаться к локальным переменным (объявленным в том же файле в коде 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:
- Рубин: хамлит
- PHP: Фаммель, pHAML, phamlp, phpHaml (PHP 5), HAML-TO-PHP (PHP 5), Многоцелевой HAML (PHP 5.3)
- Javascript: haml-js
- Python: HamlPy
- ASP.NET: MonoRail NHaml
- Общий Лисп: cl-haml
- Дротик: Харт
- Ява: JHaml
- Lua: LuaHaml
- .СЕТЬ: NHaml
- Perl: Текст :: Haml
- Скала: Масштабировать
Смотрите также
- BBCode
- eRuby
- Маркаби
- Рубин
- Рубин на рельсах
- YAML
- Sass - аналогичная система для CSS, также разработанный Кэтлином.
- Мета-язык веб-сайта - еще один язык шаблонов с аналогичными функциями
- Веб-шаблон - общая концепция шаблона для HTML расширение
Рекомендации
- ^ а б c "GitHub". Получено 28 апреля 2018.
- ^ а б c d "Журнал изменений". Получено 28 апреля 2018.
- ^ «Кодировка». Получено 29 января 2016.
- ^ "Кодировки UTF". Получено 7 февраля 2016.
- ^ а б c d "О". Получено 28 апреля 2018.
- ^ «Вариант трассировки в Haml». Получено 16 февраля 2016.
- ^ "Использование Haml". Получено 7 февраля 2016.
внешняя ссылка
- Официальный веб-сайт
- Изучите Haml (базовый уровень)
- Haml на GitHub
- phpHaml, Реализация Haml для PHP
- Haml Google Group
- Haml 1.0, объявление в официальном блоге Ruby on Rails