- Fix attribute escaping of html_safe string
- Drop Ruby 2.0.0 support
- Ruby 2.0.0 is End of Life http://www.ruby-lang.org/en/news/2016/02/24/support-plan-of-ruby-2-0-0-and-2-1/
- Fix build error when
$CXXFLAGSis unavailable - Fix StaticHashParser for parser 2.3.0.0
- Improve AttributeBuilder performance
- Replace std::ostringstream with std::string
- Fix compile error in some platforms
- Fix compiler options for old compilers
- Rewrite AttributeBuilder in C++
- It improves performance, memory usage, and readability
- Delete falsey values after merging all attributes
%span(foo=true){foo: false}now renders<span></span>, because old attributes have priority even if the value is falsey.- #43
- Fix duplicated attribute in dynamic attribute
%span{foo: 1, 'foo' => 1+1}now renders<span foo='2'></span>correctly- #45
- Flatten
idandclassattributes
- Remove duplicated class in runtime attribute case
%span.foo{h}whereh = { class: 'foo bar' }now renders<span class='bar foo'></span>.%span.foo{class: 'foo bar'}renders<span class='bar foo'></span>since v0.2.12 .
- Fix data-id and data-class attribute
- #39
- It's regression in v0.6.1
- Fix handling duplicated old attributes and new attributes
- #37
%span{class: 1}(class: 2)now renders<span class='1 2'></span>.classandidare correctly merged.%span{foo: 1}(foo: 2)now renders<span foo='1'></span>. Old attributes has priority over new attributes.
- Disable Faml::Helpers by default
- #35
- Set
Faml::Engine.options[:extend_helpers] = trueto enablepreservehelper method
- Fix id ordering of object reference
- Support object reference syntax
- Fix CLI slow startup
- Fix "end" insertion for
rescueandensurecases- It's regression in v0.4.0
- Fix "end" insertion for empty else clause
= #31
- It also requires haml_parser v0.2.0 or above.
- Fix attribute escape on forward slashes
- #30
- It's regression in v0.3.2
- Fix empty class or id rendering
- It's a regression in v0.3.4.
- Ignore falsey elements in class or id array
- For compatibility with haml
%span{class: [1, nil, false, true]}now renders<span class='1 true'></span>.
- Support array, rational and complex literal optimization
- Now
%div{class: %w[foo bar], data: { foo: 1i, bar: 2r }}is compiled into string literal.
- Now
- Remove
Kernel#evalfrom compiler - Improve
faml statssubcommand- Show more detailed attribute information
- Fix several bugs
- Improve
Faml::AttributeBuilder.buildperformance- Optimize string conversions
- Fix handling true/false/nil values in data attribute
- Add
statssubcommand- Currently, it shows AST ratio and element attribute's ratio.
- Fix illegal constant name
- Use
require_relativeif possible- It improves loading performance a little especially when there's long
$LOAD_PATHby Bundler.
- It improves loading performance a little especially when there's long
- Improve
Faml::AttributeBuilder.buildperformance- Call
escape_htmlC-API (vmg/houdini) directly. - Avoid
String#gsubfor performance
- Call
- Allow NUL characters in attribute keys
- You should not include NUL characters, of course.
- Improve
Faml::AttributeBuilder.buildperformance- Reduce String allocations
- Move Haml parser and AST definition to haml_parser
- https://github.com/eagletmt/haml_parser
- Remove
faml parsesubcommand
- Fix incompatibility to tilt 2.x
- Improve compatibility of tilt filter indentations
- Raise error when ids or classes don't have values
- Check indent size consistency for compatibility with Haml
- Intentionally prohibit indentations with hard tabs
- Fix attribute rendering in non-html format when the value is true
- Fix Faml::Engine constructor to allow user to set options via
Faml::Engine.options
- Remove duplicated class values
- For compatibility
- Add
versionsubcommand - Add
--formatoption to cli
- Keep code newlines within multiline in HTML-style attribute list
- Keep code newlines within Ruby multiline
- Keep code newlines with multiline
- Disable haml multiline syntax within filter
- Fix
__LINE__and__FILE__in attribute lists
- Allow empty silent script body
- For compatibility with haml
- #16
- Fix parse error at multiline in attribute list
- Improve backtrace of compile time errors
- Annotate Faml::Ast with filename and line number (internal)
- Fix error with tilt 1.x.
- Fix dependency on temple
- Improve backtrace when syntax error is raised
- Fix parser when parsing attributes in
{'foo': 'bar'}form- The syntax was introduced in Ruby 2.2.
- Fix parser when parsing
>or<after attribute lists%div{foo: :bar} <br>was incorrectly parsed as%div{foo: :bar}< br>.
- Always escape texts in :escape filter
- It was not escaped when used in Rails
preservehelper returns html_safe string in Rails- For compatibility with haml's Haml::Helpers::XssMods
- Fix attribute rendering when the key is in
:'foo-bar'form - Provide
preservemethod in view contexts- For compatibility with haml's Haml::Helpers
- Allow double rmnl
- simply ignore the second rmnl
- Rename from fast_haml to faml
- Allow .faml extension
- Fix ruby filter to not generate newlines
- Support markdown filter
- Refactor script parser (internal)
- Fix newline generation with filters
- Support sass, scss and coffee filter
- Fix whitespace removal (
<and>) behavior- Internally, new instructions
mknlandrmnlare added.
- Internally, new instructions
- Fix attribute rendering with falsey values
- Fix minor newline generation bug with Haml comment
- Fix newline generation around empty lines
- Internal: introduce Ast::Empty and remove LineCounter
- Fix internal compiler error when
>is used - Fix newline generation at Ast::Element case
- Keep newlines for better backtrace (#4)
- Fix attribute parsing with
%span {foo}or%span (foo)cases. - Fix comparison with statically-compilable class attributes like
%span.foo{class: bar}.
- Initial release