All Versions
Latest Version
Avg Release Cycle
171 days
Latest Release
666 days ago

Changelog History
Page 1

  • v5.2.1 Changes

    November 30, 2020

    It's time to face the facts that the last release was a LIE. I said we weren't going to release another version of Haml 5.x... and yet, here we are again.

    πŸ’» "What's this all about?!?!", you must be screaming at your computer.

    πŸ‘ Well, our wonderful @k0kubun has given all of us a wonderful present– which is proper multiline-attributes support for Haml. No longer are we forced to either have super long lines or have kinda wonky spacing on our attributes.

    How it started:

      .messages-overflow-container{"data-simplebar": true}
        .messages{data: {controller: "chat-messages"}}
      .like-notification{data: {controller: "reaction-notification"}}
      - unless video.finished?
        .message-write{data: { "controller": "chat", "show-when-logged-in": true }}
            .write-area{placeholder: 'Send a message', contenteditable: true, role: "textbox", data: {action: "keydown->chat#chatBoxKeyDown", target: "chat.messageInput"}}
            = render "shared/reaction_button"
        .message-login-prompt{data: { "show-when-logged-out": true }}
          %button{data: {action: "authentication#showModal"}} Login To Chat

    How it's going:

      .messages-overflow-container{"data-simplebar": true}
          data: { controller: "chat-messages" }
        data: { controller: "reaction-notification" } }
      - unless video.finished?
          data: { 
            "controller": "chat", 
            "show-when-logged-in": true 
              placeholder: 'Send a message', 
              contenteditable: true, 
              role: "textbox", 
              data: {
                action: "keydown->chat#chatBoxKeyDown", 
                target: "chat.messageInput"
            = render "shared/reaction_button"
        .message-login-prompt{data: { "show-when-logged-out": true }}
            data: {
              action: "authentication#showModal"
          } Login To Chat

    How about THAT! I don't know about you, but this is going to improve my markup by a huge margin. I am super thrilled to get this into our code at @veuelive!

  • v5.2 Changes

    πŸš€ Released on September 28, 2020 (diff).

    • πŸ›  Fix crash in the attribute optimizer when #inspect is overridden in TrueClass / FalseClass #972
    • Do not HTML-escape templates that are declared to be plaintext #1014 (Thanks @cesarizu)
    • Class names are no longer ordered alphabetically, and now follow a new specification as laid out in REFERENCE #306
  • v5.1.2 Changes

    August 06, 2019

    πŸš€ Released on August 6, 2019 (diff).

    • πŸ›  Fix crash in some environments such as New Relic by unfreezing string literals for ParseNode#inspect. #1016 (thanks Jalyna)
  • v5.1.1 Changes

    May 25, 2019

    πŸš€ Released on May 25, 2019 (diff).

    • πŸ›  Fix NameError bug that happens on ruby 2.6.1-2.6.3 + haml 5.1.0 + rails < 5.1 + erubi. (Akira Matsuda)
  • v5.1.0 Changes

    May 16, 2019

    πŸš€ Released on May 16, 2019 (diff).

    • πŸš… Rails 6 support #1008 (thanks Seb Jacobs)
    • Add escape_filter_interpolations option for backwards compatibility with haml 4 defaults #984 (thanks Will Jordan)
    • πŸ›  Fix error on empty :javascript and :css filter blocks #986 (thanks Will Jordan)
    • 0️⃣ Respect changes in Haml::Options.defaults in Haml::TempleEngine options (Takashi Kokubun)
    • Un-freeze TempleEngine precompiled string literals #983 (thanks Will Jordan)
    • 🐎 Various performance/memory improvements #965, #966, #963 (thanks Dillon Welch)
    • Enable frozen_string_literal magic comment for all .rb files #967 (thanks Dillon Welch)
  • v5.0.4 Changes

    October 13, 2017

    πŸš€ Released on October 13, 2017 (diff).

    • πŸ›  Fix haml -c --stdin regression in 5.0.2. #958 (thanks Timo GΓΆllner)
    • πŸ’Ž Ruby 2.5 support (it wasn't working due to Ripper API change). (Akira Matsuda)
  • v5.0.3 Changes

    September 07, 2017

    πŸš€ Released on September 7, 2017 (diff).

    • πŸ‘‰ Use String#dump instead of String#inspect to generate string literal. (Takashi Kokubun)
    • πŸ›  Fix Erubi superclass mismatch error. #952 (thanks Robin Daugherty)
  • v5.0.2 Changes

    August 01, 2017

    πŸš€ Released on August 1, 2017 (diff).

    • πŸ’Ž Let haml -c fail if generated Ruby code is syntax error. #880 (Takashi Kokubun)
    • πŸ›  Fix NoMethodError bug caused with Sprockets 3 and :sass filter. #930 (thanks Gonzalez Maximiliano)
    • πŸ›  Fix list_of helper with multi-line content. #933 (thanks Benoit Larroque)
    • 🐎 Optimize rendering performance by changing timing to fix textareas. #941 (Takashi Kokubun)
    • πŸ›  Fix TypeError with empty :ruby filter. #942 (Takashi Kokubun)
    • πŸ›  Fix inconsistent attribute sort order. (Takashi Kokubun)
  • v5.0.1 Changes

    May 03, 2017

    πŸš€ Released on May 3, 2017 (diff).

    • πŸ›  Fix parsing attributes including string interpolation. #917 #921
    • 🏁 Stop distributing test files in gem package and allow installing on Windows.
    • πŸ‘‰ Use ActionView's Erubi/Erubis handler for erb filter only on ActionView. #914
  • v5.0.0 Changes

    April 27, 2017

    πŸš€ Released on April 26, 2017 (diff).

    πŸ’₯ Breaking Changes

    • πŸ’Ž Haml now requires Ruby 2.0.0 or above.
    • πŸš… Rails 3 is no longer supported, matching the official Maintenance Policy for Ruby on Rails. Use Haml 4 if you want to use Rails 3. (Tee Parham)
    • βœ‚ Remove :ugly option (#894)
    • The haml command's debug option (-d) no longer executes the Haml code, but rather checks the generated Ruby syntax for errors.
    • ⬇️ Drop parser/compiler accessor from Haml::Engine. Modify Haml::Engine#initialize options or Haml::Template.options instead. (Takashi Kokubun)
    • Drop dynamic quotes support and always escape ' for escape_html/escape_attrs instead. Also, escaped results are slightly changed and always unified to the same characters. (Takashi Kokubun)
    • Don't preserve newlines in attributes. (Takashi Kokubun)
    • HTML escape interpolated code in filters. #770 (Matt Wildig)

        #{JSON.generate(foo: "bar")}
      Haml 4 output: {"foo":"bar"}
      Haml 5 output: {&quot;foo&quot;:&quot;bar&quot;}

    βž• Added

    • βž• Add a tracing option. When enabled, Haml will output a data-trace attribute on each tag showing the path to the source Haml file from which it was generated. Thanks Alex Babkin.
    • 🏷 Add haml_tag_if to render a block, conditionally wrapped in another element (Matt Wildig)
    • πŸ‘Œ Support Rails 5.1 Erubi template handler.
    • πŸ‘Œ Support Sprockets 3. Thanks Sam Davies and Jeremy Venezia.
    • 🐎 General performance and memory usage improvements. (Akira Matsuda)
    • Analyze attribute values by Ripper and render static attributes beforehand. (Takashi Kokubun)
    • ⚑️ Optimize attribute rendering about 3x faster. (Takashi Kokubun)
    • βž• Add temple gem as dependency and create Haml::TempleEngine class. Some methods in Haml::Compiler are migrated to Haml::TempleEngine. (Takashi Kokubun)

    πŸ›  Fixed

    • πŸ›  Fix for attribute merging. When an attribute method (or literal nested hash) was used in an old style attribute hash and there is also a (non-static) new style hash there is an error. The fix can result in different behavior in some circumstances. See the commit message for detailed info. (Matt Wildig)
    • πŸ‘‰ Make escape_once respect hexadecimal references. (Matt Wildig)
    • πŸ”€ Don't treat the 'data' attribute specially when merging attribute hashes. (Matt Wildig and Norman Clarke)
    • πŸ›  Fix #@foo and #$foo style interpolation that was not working in html_safe mode. (Akira Matsuda)
    • πŸ‘ Allow @ as tag's class name. Thanks Joe Bartlett.
    • Raise Haml::InvalidAttributeNameError when attribute name includes invalid characters. (Takashi Kokubun)
    • Don't ignore unexpected exceptions on initializing ActionView::OutputBuffer. (Takashi Kokubun)