Эта статья содержит контент, который написан как реклама . ( Июль 2017 г. ) ( Узнайте, как и когда удалить этот шаблон сообщения ) |
Парадигма | Движок шаблонов |
---|---|
Разработано | Хэмптон Кэтлин |
Разработчики | Натали Вайзенбаум (в прошлом), Норман Кларк , Мэтт Уилдиг , Акира Мацуда , Ти Пархэм [1] |
Стабильный выпуск | 5.1.2 / 6 августа 2019 г . [2] |
Язык реализации | Рубин |
Операционные системы | Кроссплатформенность |
Лицензия | Лицензия MIT и Unspace Interactive [1] |
Расширения имени файла | .haml |
Веб-сайт | haml |
Haml ( HTML Abstraction Markup Language) - это система шаблонов, предназначенная для того, чтобы избежать написания встроенного кода в веб-документе и сделать HTML более чистым. Haml дает возможность иметь динамический контент в HTML. Подобно другим веб- языкам, таким как PHP , ASP , JSP, и системам шаблонов, таким как eRuby , Haml также встраивает некоторый код, который выполняется во время выполнения, и генерирует HTML-код для предоставления некоторого динамического содержимого. Для запуска кода Haml файлы должны иметь расширение .haml . Эти файлы похожи на файлы .erb или eRuby, которые также помогают встраивать код Ruby при разработке веб-приложения..
При анализе комментариев кода Haml использует те же правила, что и Ruby 1.9 или новее. Haml понимает только ASCII- совместимые кодировки, такие как UTF-8, но не UTF-16 или UTF-32, потому что они несовместимы с ASCII . [3] [4]
Haml можно использовать в командной строке , как отдельный модуль Ruby или в приложении Ruby on Rails, что делает Haml подходящим для широкого круга приложений.
История [ править ]
Первоначально Haml был представлен Хэмптоном Кэтлином с его первоначальным выпуском в 2006 году, и его работа была продолжена несколькими другими людьми. [5] Его мотивом было сделать HTML проще, чище и проще в использовании. С 2006 года он несколько раз пересматривался и выходили новые версии. До 2012 года Натали Вайзенбаум была основным сопровождающим Haml, а затем Норман Кларк до 2015 года. [5] Натали работала над тем, чтобы сделать Haml пригодным для использования в приложениях Ruby , а брендинг и дизайн выполнял Ник Уолш. [5] В команду техобслуживания в настоящее время входят Мэтт Вильдиг, Акира Мацуда, Ти Пархам и Такаши Кокубун. [1]
История версий [ править ]
Версия 2.2.0 была выпущена в июле 2009 года с поддержкой Ruby 1.9 и Rails 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]
Удобная разметка [ править ]
Язык разметки удобен для пользователя, если он соответствует следующим характеристикам:
- Легко понять язык
- Простота использования (реализация)
СУХОЙ [ править ]
Язык разметки должен соответствовать принципу «Не повторяйся» ( DRY ). Должно:
- Избегайте ненужных повторений
- Сосредоточьтесь на чистом коде
С хорошим отступом [ править ]
Язык разметки с хорошим отступом улучшает внешний вид, упрощает чтение для читателей, а также позволяет определить, где данный элемент начинается и заканчивается.
Четкая структура [ править ]
Язык разметки с четкой структурой поможет в сопровождении кода и логическом понимании конечного результата. Неясно, предлагает ли Haml какое-либо дифференциальное преимущество в этом отношении.
Примеры [ править ]
Разметка Haml по синтаксису похожа на CSS . Например, Haml имеет то же .
представление классов через точку, что и CSS, что упрощает разработчикам использование этой разметки.
"Привет мир!" [ редактировать ]
Haml как инструмент командной строки [ править ]
Следующее эквивалентно, поскольку HAML распознает селекторы CSS :
% р { : класс => "образец" , : идентификатор => "Добро пожаловать" } Hello, World!
% p .sample #welcome Hello, World!
Они преобразуются в следующий HTML- код:
< p class = "sample" id = "welcome" > Привет, мир! </ p >
Haml как надстройка для Ruby on Rails [ править ]
Чтобы использовать Haml с Ruby , Ruby Gemfile
должен включать эту строку:
драгоценный камень 'хамл'
Подобно eRuby , Haml также может обращаться к локальным переменным (объявленным в том же файле в коде Ruby). В этом примере используется образец файла контроллера Ruby. [7]
- файл:
app/controllers/messages_controller.rb
class MessagesController < ApplicationController def index @message = "Hello, World!" конец конец
- файл:
app/views/messages/index.html.haml
# добро пожаловать % p = @message
Это дает:
< div id = "welcome" > < p > Привет, мир! </ p > </ div >
Haml как модуль Ruby [ править ]
Чтобы использовать Haml независимо от Rails и ActionView , установите haml
gem , включите его Gemfile
и просто импортируйте [Usage: require 'haml']
в сценарий Ruby или вызовите интерпретатор Ruby с -rubygems
флагом.
добро пожаловать = Haml :: Engine . new ( "% p Hello, World!" ) добро пожаловать . оказывать
Выход:
< p > Привет, мир! </ p >
Haml :: Engine - это класс Haml.
Базовый пример [ править ]
Haml использует отступы (два пробела) для вложения тегов и области видимости. Это действует как замена пар открытых тегов, делая его СУХИМ и чище. В следующем примере сравниваются синтаксисы Haml и eRuby (Embedded Ruby) вместе с выводом HTML.
Haml | ЕРБ | HTML |
---|---|---|
% div .category % div .recipes % h1 = рецепт . имя % h3 = рецепт . категория % div % h4 = рецепт . описание | < div class = "category" > < div class = "recipes" > < h1 > <% = recipe . name %> </ h1 > < h3 > <% = recipe . category %> </ h3 > </ div > < div > < h4 > <% = recipe . описание %> </ h4 > </ div ></ div > | < div class = "category" > < div class = "recipes" > < h1 > Печенье </ h1 > < h3 > Десерты </ h3 > </ div > < div > < h4 > Сделано из теста и сахара. Обычно круглой формы и содержит около 400 калорий. </ h4 > </ div > </ div > |
Ключевые отличия:
- У Haml нет начала и конца для каждого элемента, такого как eRuby.
- Синтаксис eRuby очень похож на HTML и поэтому больше похож на HTML, тогда как Haml больше похож на CSS .
- Haml использует отступы для вложения элементов тегов, тогда как eRuby использует то же представление HTML.
- В Haml такие свойства, как
class
,id
могут быть представлены.
,#
соответственно, вместо обычногоclass
иid
ключевыми словами. Haml также использует%
для обозначения элемента HTML, а не<>
как в eRuby.
Пример со встроенным кодом Ruby [ править ]
Примечание. Это простой пример предварительного просмотра, который может не отражать текущую версию языка.
!!! % HTML { : XMLNS => "http://www.w3.org/1999/xhtml" , : языки => "ен" , "XML: Lang" => "ан" } % голову % название BoBlog % мета { "HTTP-эквив" => "Content-Type" , : содержание => "текст / HTML, кодировка = UTF-8" } % ссылка { "отн" => "таблицы стилей" , "HREF" => «main.css " , " тип " => "text / css " } % body # header % h1BoBlog % h2 Блог Боба #content - @entries . каждый делать | запись | .entry % h3 .title = запись . title % p .date = запись . опубликовал . strftime ( "% A,% B% d,% Y" ) % p .body = entry . body # footer % p Авторские права на все содержание принадлежат Бобу.
Вышеупомянутый Haml создаст этот XHTML :
<! DOCTYPE html PUBLIC "- // W3C // DTD XHTML 1.0 Transitional // EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> < html lang = 'ru ' xml: lang = ' en ' xmlns = ' http://www.w3.org/1999/xhtml ' > < head > < title > BoBlog </ title > < meta content = ' text / html; charset = utf-8 ' http-Equiv = ' Content-Type ' /> < link href = "/stylesheets/main.css" media = "экран" rel = "Таблица стилей" type = "text / css" /> </ head > < body > < div id = 'header' > < h1 > BoBlog </ h1 > < h2 > Блог Боба </ h2 > </ div > < div id = 'content' > < div class = 'entry' > <h3 class = 'title' >Хэллоуин </ h3 > < p class = 'date' > вторник, 31 октября 2006 г. </ p > < p class = 'body' > С Хеллоуином, славные читатели! Я собираюсь сегодня вечером на вечеринку ... Я очень взволнован. </ p > </ div > < div class = 'entry' > < h3 class = 'title' > Новый механизм шаблонов Rails </ h3 > < p class = 'date' > Пятница, 11 августа 2006 г. </ p > < p class = 'body' > Для Ruby on Rails выпущен очень крутой новый движок шаблонов. Это называется Хамл. </ p > </ div > </ div > < div id = 'footer' > < p > Авторские права на все содержание принадлежат Бобу. </ p > </ div > </ body > </ html >
Реализации [ править ]
Официальная реализация Haml была создана для Ruby с плагинами для Ruby on Rails и Merb , но реализация Ruby также работает независимо. Haml можно легко использовать вместе с другими языками. Ниже приведен список языков, на которых есть реализации Haml:
- Рубин: хамлит
- PHP: Fammel , pHAML , phamlp , phpHaml (PHP 5), HAML-TO-PHP (PHP 5), многоцелевой HAML (PHP 5.3)
- Javascript: haml-js
- Python: HamlPy
- Общий Лисп: cl-haml
- Дротик: Харт
- Java: JHaml
- Lua: LuaHaml
- .NET: NHaml
- ASP.NET: MonoRail NHaml
- Perl: Text :: Haml
- Scala: масштабировать
См. Также [ править ]
- BBCode
- eRuby
- Маркаби
- Рубин
- Рубин на рельсах
- YAML
- Sass - аналогичная система для CSS , также разработанная Кэтлином.
- Мета-язык веб-сайтов - еще один язык шаблонов с аналогичными функциями
- Веб-шаблон - общая концепция шаблона для расширения HTML
Ссылки [ править ]
- ^ a b c "GitHub" . Проверено 28 апреля 2018 . CS1 maint: обескураженный параметр ( ссылка )
- ^ a b c d "Список изменений" . Проверено 28 апреля 2018 . CS1 maint: обескураженный параметр ( ссылка )
- ^ «Кодировка» . Проверено 29 января +2016 . CS1 maint: обескураженный параметр ( ссылка )
- ^ "Кодировки UTF" . Проверено 7 февраля +2016 . CS1 maint: обескураженный параметр ( ссылка )
- ^ a b c d "О" . Проверено 28 апреля 2018 . CS1 maint: обескураженный параметр ( ссылка )
- ^ «Вариант трассировки в Haml» . Проверено 16 февраля +2016 . CS1 maint: обескураженный параметр ( ссылка )
- ^ "Использование Haml" . Проверено 7 февраля +2016 . CS1 maint: обескураженный параметр ( ссылка )
Внешние ссылки [ править ]
- Официальный веб-сайт
- Haml учебник
- Выучить Haml (базовый уровень)
- Haml на GitHub
- phpHaml , реализация Haml для PHP
- Haml Google Group
- Haml 1.0 , объявление в официальном блоге Ruby on Rails