Jump to content

ветчина

ветчина
Парадигма Шаблонизатор
Разработано Хэмптон Кэтлин
Разработчики Натали Вайзенбаум (в прошлом), Норман Кларк , Мэтт Уилдиг , Акира Мацуда , Ти Парэм [1]
Стабильная версия
6.3.0 [2]  Отредактируйте это в Викиданных / 10 декабря 2023 г .; 7 месяцев назад ( 10 декабря 2023 г. )
Язык реализации Руби
ТЫ Кросс-платформенный
Лицензия Лицензия MIT и Unspace Interactive [1]
Расширения имен файлов .ветчина
Веб-сайт часто .информация

Haml ( язык абстракционной разметки HTML ) — это система шаблонов , разработанная для того, чтобы избежать написания встроенного кода в веб-документе и сделать HTML более чистым. Подобно другим системам шаблонов, таким как 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 был первоначально представлен Hampton Catlin с его первым выпуском в 2006 году, и его работу подхватили еще несколько человек. [5] Его целью было сделать HTML более простым, понятным и удобным в использовании. С 2006 года он несколько раз пересматривался и выпускались новые версии. До 2012 года основным сопровождающим Haml была Натали Вайценбаум, а до 2015 года ее сменил Норман Кларк. [5] Натали работала над тем, чтобы сделать Haml пригодным для использования в приложениях Ruby , а брендингом и дизайном занимался Ник Уолш. [5]

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

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

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

[ редактировать ]

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

%p{:class => "sample", :id => "welcome"} Hello, World!
%p.sample#welcome Hello, World!

Они визуализируются в следующий HTML- код:

<p class="sample" id="welcome">Hello, World!</p>

Haml как дополнение к Ruby on Rails

[ редактировать ]

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

  • файл: app/controllers/messages_controller.rb
    class MessagesController < ApplicationController
      def index
        @message = "Hello, World!"
      end
    end
    
  • файл: app/views/messages/index.html.haml
    #welcome
        %p= @message
    

Это означает:

<div id="welcome">
    <p>Hello, World!</p>
</div>

Haml как модуль Ruby

[ редактировать ]

Haml также можно использовать независимо как библиотеку Ruby .

welcome = Haml::Engine.new("%p Hello, World!")
welcome.render

Выход:

<p>Hello, World!</p>

Haml::Engine — это класс Haml.

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

[ редактировать ]

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

ветчина Еврорадио HTML
%div.category
    %div.recipes
        %h1= recipe.name
        %h3= recipe.category
    %div
        %h4= recipe.description
<div class="category">
    <div class="recipes">
        <h1><%= recipe.name %></h1>
        <h3><%= recipe.category %></h3>
    </div>
    <div>
        <h4><%= recipe.description %></h4>
    </div>
</div>
<div class="category">
    <div class="recipes">
        <h1>Cookie</h1>
        <h3>Desserts</h3>
    </div>
    <div>
        <h4>Made from dough and sugar. Usually circular in shape and has about 400 calories.</h4>
    </div>
</div>

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

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

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

[ редактировать ]
!!!
%html{ :xmlns => "http://www.w3.org/1999/xhtml", :lang => "en", "xml:lang" => "en"}
  %head
    %title BoBlog
    %meta{"http-equiv" => "Content-Type", :content => "text/html; charset=utf-8"}
    %link{"rel" => "stylesheet", "href" => "main.css", "type" => "text/css"}
  %body
    #header
      %h1 BoBlog
      %h2 Bob's Blog
    #content
      - @entries.each do |entry|
        .entry
          %h3.title= entry.title
          %p.date= entry.posted.strftime("%A, %B %d, %Y")
          %p.body= entry.body
    #footer
      %p
        All content copyright © Bob

Вышеупомянутый Haml создаст этот XHTML :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang='en' 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="screen" rel="Stylesheet" type="text/css" />
  </head>
  <body>
    <div id='header'>
      <h1>BoBlog</h1>
      <h2>Bob's Blog</h2>
    </div>
    <div id='content'>
      <div class='entry'>
        <h3 class='title'>Halloween</h3>
        <p class='date'>Tuesday, October 31, 2006</p>
        <p class='body'>
          Happy Halloween, glorious readers! I'm going to a party this evening... I'm very excited.
        </p>
      </div>
      <div class='entry'>
        <h3 class='title'>New Rails Templating Engine</h3>
        <p class='date'>Friday, August 11, 2006</p>
        <p class='body'>
          There's a new Templating Engine out for Ruby on Rails. It's called Haml.
        </p>
      </div>
    </div>
    <div id='footer'>
      <p>
        All content copyright © Bob
      </p>
    </div>
  </body>
</html>

Реализации

[ редактировать ]

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

См. также

[ редактировать ]
  1. ^ Jump up to: а б «ГитХаб» . Гитхаб . Проверено 28 апреля 2018 г.
  2. ^ «Выпуск 6.3.0» . 10 декабря 2023 г. Проверено 19 декабря 2023 г.
  3. ^ «Кодировка» . Проверено 29 января 2016 г.
  4. ^ «Кодировки UTF» . Гитхаб . Проверено 7 февраля 2016 г.
  5. ^ Jump up to: а б с "О" . Проверено 28 апреля 2018 г.
  6. ^ Jump up to: а б с «Журнал изменений» . Гитхаб . Проверено 28 апреля 2018 г.
  7. ^ «Опция трассировки в Haml» . Проверено 16 февраля 2016 г.
  8. ^ «Использование Haml» . Проверено 7 февраля 2016 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 4bc41a6bb229dd3b59ab7a26fb0136c4__1716851520
URL1:https://arc.ask3.ru/arc/aa/4b/c4/4bc41a6bb229dd3b59ab7a26fb0136c4.html
Заголовок, (Title) документа по адресу, URL1:
Haml - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)