hamlit 2.9.1-java

Sign up to get free protection for your applications and to get access to all the features.
Files changed (107) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +16 -0
  3. data/.travis.yml +45 -0
  4. data/CHANGELOG.md +666 -0
  5. data/Gemfile +28 -0
  6. data/LICENSE.txt +44 -0
  7. data/README.md +146 -0
  8. data/REFERENCE.md +266 -0
  9. data/Rakefile +117 -0
  10. data/benchmark/boolean_attribute.haml +6 -0
  11. data/benchmark/class_attribute.haml +5 -0
  12. data/benchmark/common_attribute.haml +3 -0
  13. data/benchmark/data_attribute.haml +4 -0
  14. data/benchmark/dynamic_attributes/boolean_attribute.haml +4 -0
  15. data/benchmark/dynamic_attributes/class_attribute.haml +4 -0
  16. data/benchmark/dynamic_attributes/common_attribute.haml +2 -0
  17. data/benchmark/dynamic_attributes/data_attribute.haml +2 -0
  18. data/benchmark/dynamic_attributes/id_attribute.haml +2 -0
  19. data/benchmark/dynamic_boolean_attribute.haml +4 -0
  20. data/benchmark/etc/attribute_builder.haml +5 -0
  21. data/benchmark/etc/real_sample.haml +888 -0
  22. data/benchmark/etc/real_sample.rb +11 -0
  23. data/benchmark/etc/static_analyzer.haml +1 -0
  24. data/benchmark/etc/string_interpolation.haml +2 -0
  25. data/benchmark/etc/tags.haml +3 -0
  26. data/benchmark/etc/tags_loop.haml +2 -0
  27. data/benchmark/ext/build_data.rb +17 -0
  28. data/benchmark/ext/build_id.rb +13 -0
  29. data/benchmark/id_attribute.haml +3 -0
  30. data/benchmark/plain.haml +4 -0
  31. data/benchmark/script.haml +4 -0
  32. data/benchmark/slim/LICENSE +21 -0
  33. data/benchmark/slim/context.rb +11 -0
  34. data/benchmark/slim/run-benchmarks.rb +94 -0
  35. data/benchmark/slim/view.erb +23 -0
  36. data/benchmark/slim/view.haml +18 -0
  37. data/benchmark/slim/view.slim +17 -0
  38. data/benchmark/utils/benchmark_ips_extension.rb +43 -0
  39. data/bin/bench +77 -0
  40. data/bin/console +11 -0
  41. data/bin/ruby +3 -0
  42. data/bin/setup +7 -0
  43. data/bin/stackprof +27 -0
  44. data/bin/test +24 -0
  45. data/exe/hamlit +6 -0
  46. data/ext/hamlit/extconf.rb +10 -0
  47. data/ext/hamlit/hamlit.c +553 -0
  48. data/ext/hamlit/hescape.c +108 -0
  49. data/ext/hamlit/hescape.h +20 -0
  50. data/hamlit.gemspec +45 -0
  51. data/lib/hamlit.rb +11 -0
  52. data/lib/hamlit/attribute_builder.rb +173 -0
  53. data/lib/hamlit/attribute_compiler.rb +123 -0
  54. data/lib/hamlit/attribute_parser.rb +110 -0
  55. data/lib/hamlit/cli.rb +130 -0
  56. data/lib/hamlit/compiler.rb +97 -0
  57. data/lib/hamlit/compiler/children_compiler.rb +112 -0
  58. data/lib/hamlit/compiler/comment_compiler.rb +36 -0
  59. data/lib/hamlit/compiler/doctype_compiler.rb +46 -0
  60. data/lib/hamlit/compiler/script_compiler.rb +101 -0
  61. data/lib/hamlit/compiler/silent_script_compiler.rb +24 -0
  62. data/lib/hamlit/compiler/tag_compiler.rb +74 -0
  63. data/lib/hamlit/engine.rb +37 -0
  64. data/lib/hamlit/error.rb +15 -0
  65. data/lib/hamlit/escapable.rb +13 -0
  66. data/lib/hamlit/filters.rb +75 -0
  67. data/lib/hamlit/filters/base.rb +12 -0
  68. data/lib/hamlit/filters/cdata.rb +20 -0
  69. data/lib/hamlit/filters/coffee.rb +17 -0
  70. data/lib/hamlit/filters/css.rb +33 -0
  71. data/lib/hamlit/filters/erb.rb +10 -0
  72. data/lib/hamlit/filters/escaped.rb +22 -0
  73. data/lib/hamlit/filters/javascript.rb +33 -0
  74. data/lib/hamlit/filters/less.rb +20 -0
  75. data/lib/hamlit/filters/markdown.rb +10 -0
  76. data/lib/hamlit/filters/plain.rb +29 -0
  77. data/lib/hamlit/filters/preserve.rb +22 -0
  78. data/lib/hamlit/filters/ruby.rb +10 -0
  79. data/lib/hamlit/filters/sass.rb +15 -0
  80. data/lib/hamlit/filters/scss.rb +15 -0
  81. data/lib/hamlit/filters/text_base.rb +25 -0
  82. data/lib/hamlit/filters/tilt_base.rb +49 -0
  83. data/lib/hamlit/force_escapable.rb +29 -0
  84. data/lib/hamlit/helpers.rb +15 -0
  85. data/lib/hamlit/html.rb +14 -0
  86. data/lib/hamlit/identity.rb +13 -0
  87. data/lib/hamlit/object_ref.rb +30 -0
  88. data/lib/hamlit/parser.rb +49 -0
  89. data/lib/hamlit/parser/MIT-LICENSE +20 -0
  90. data/lib/hamlit/parser/README.md +30 -0
  91. data/lib/hamlit/parser/haml_buffer.rb +348 -0
  92. data/lib/hamlit/parser/haml_compiler.rb +553 -0
  93. data/lib/hamlit/parser/haml_error.rb +61 -0
  94. data/lib/hamlit/parser/haml_helpers.rb +727 -0
  95. data/lib/hamlit/parser/haml_options.rb +286 -0
  96. data/lib/hamlit/parser/haml_parser.rb +800 -0
  97. data/lib/hamlit/parser/haml_util.rb +288 -0
  98. data/lib/hamlit/parser/haml_xss_mods.rb +109 -0
  99. data/lib/hamlit/rails_helpers.rb +51 -0
  100. data/lib/hamlit/rails_template.rb +58 -0
  101. data/lib/hamlit/railtie.rb +10 -0
  102. data/lib/hamlit/ruby_expression.rb +32 -0
  103. data/lib/hamlit/string_splitter.rb +88 -0
  104. data/lib/hamlit/template.rb +28 -0
  105. data/lib/hamlit/utils.rb +18 -0
  106. data/lib/hamlit/version.rb +4 -0
  107. metadata +360 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 4d7a720e69327049021fa3f0717bcec7d524216a
4
+ data.tar.gz: bf6ea87e5b1f9e57b39f843629e560dfe338fd7c
5
+ SHA512:
6
+ metadata.gz: a39276f2255b76b736e9b630b022b5948c0e06f02e684f0e4c60b77cb6b4a40c072423374b8f4f815d01e34aa53f486d9de79cb0349bfa588359caf44a5900ee
7
+ data.tar.gz: 0aa063ab5f765641ede00b01dd8a997fe85ebb601d648e0df5d23694546f8274438116f66f11504f703aab676a492f7a8a2042f3580748698fef39ce3eca70e5
@@ -0,0 +1,16 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
10
+ .sass-cache
11
+ .ruby-version
12
+ *.bundle
13
+ *.so
14
+ *.o
15
+ *.a
16
+ *.swp
@@ -0,0 +1,45 @@
1
+ language: ruby
2
+ cache: bundler
3
+ branches:
4
+ only:
5
+ - master
6
+ script:
7
+ - "RUBYOPT='-w' bundle exec rake $TASK"
8
+ matrix:
9
+ include:
10
+ - rvm: 2.1.10
11
+ env: TASK=test
12
+ - rvm: 2.2.6
13
+ env: TASK=test
14
+ - rvm: 2.3.3
15
+ env: TASK=test
16
+ - rvm: 2.4.0
17
+ env: TASK=test
18
+ - rvm: ruby-head
19
+ env: TASK=test
20
+ - rvm: jruby-9.1.9.0
21
+ env: TASK=test
22
+ - rvm: 2.4.0
23
+ env: TASK=bench TEMPLATE=benchmark/boolean_attribute.haml,benchmark/class_attribute.haml,benchmark/id_attribute.haml,benchmark/data_attribute.haml,benchmark/common_attribute.haml
24
+ - rvm: 2.4.0
25
+ env: TASK=bench TEMPLATE=benchmark/dynamic_attributes/boolean_attribute.haml,benchmark/dynamic_attributes/class_attribute.haml,benchmark/dynamic_attributes/id_attribute.haml,benchmark/dynamic_attributes/data_attribute.haml,benchmark/dynamic_attributes/common_attribute.haml
26
+ - rvm: 2.4.0
27
+ env: TASK=bench SLIM_BENCH=1
28
+ - rvm: 2.4.0
29
+ env: TASK=bench TEMPLATE=benchmark/etc/attribute_builder.haml
30
+ - rvm: 2.4.0
31
+ env: TASK=bench TEMPLATE=benchmark/etc/static_analyzer.haml
32
+ - rvm: 2.4.0
33
+ env: TASK=bench TEMPLATE=benchmark/etc/string_interpolation.haml
34
+ - rvm: 2.4.0
35
+ env: TASK=bench TEMPLATE=test/haml/templates/standard.haml COMPILE=1
36
+ allow_failures:
37
+ - rvm: ruby-head
38
+ env: TASK=test
39
+ - env: TASK=bench TEMPLATE=benchmark/boolean_attribute.haml,benchmark/class_attribute.haml,benchmark/id_attribute.haml,benchmark/data_attribute.haml,benchmark/common_attribute.haml
40
+ - env: TASK=bench TEMPLATE=benchmark/dynamic_attributes/boolean_attribute.haml,benchmark/dynamic_attributes/class_attribute.haml,benchmark/dynamic_attributes/id_attribute.haml,benchmark/dynamic_attributes/data_attribute.haml,benchmark/dynamic_attributes/common_attribute.haml
41
+ - env: TASK=bench SLIM_BENCH=1
42
+ - env: TASK=bench TEMPLATE=benchmark/etc/attribute_builder.haml
43
+ - env: TASK=bench TEMPLATE=benchmark/etc/static_analyzer.haml
44
+ - env: TASK=bench TEMPLATE=benchmark/etc/string_interpolation.haml
45
+ - env: TASK=bench TEMPLATE=test/haml/templates/standard.haml COMPILE=1
@@ -0,0 +1,666 @@
1
+ # Change Log
2
+
3
+ All notable changes to this project will be documented in this file. This
4
+ project adheres to [Semantic Versioning](http://semver.org/). This change log is based upon
5
+ [keep-a-changelog](https://github.com/olivierlacan/keep-a-changelog).
6
+
7
+ ## [2.9.1](https://github.com/k0kubun/hamlit/compare/v2.9.0...v2.9.1) - 2018-11-01
8
+
9
+ - Start supporting JRuby [#100](https://github.com/k0kubun/hamlit/issues/100).
10
+
11
+ ## [2.9.0](https://github.com/k0kubun/hamlit/compare/v2.8.10...v2.9.0) - 2018-10-16
12
+
13
+ ### Added
14
+
15
+ - Consider aria attribute as another attribute that supports hyphenation and boolean like data attribute
16
+ [#57](https://github.com/k0kubun/hamlit/pull/57). *Thanks to @francesco-loreti*
17
+
18
+ ## [2.8.10](https://github.com/k0kubun/hamlit/compare/v2.8.9...v2.8.10) - 2018-09-05
19
+
20
+ ### Fixed
21
+
22
+ - Fix uninitialized constant error introduced in v2.8.9
23
+ [#125](https://github.com/k0kubun/hamlit/pull/125). *Thanks to @vovchynniko*
24
+
25
+ ## [2.8.9](https://github.com/k0kubun/hamlit/compare/v2.8.8...v2.8.9) - 2018-09-05 [YANKED]
26
+
27
+ ### Fixed
28
+
29
+ - Don't raise an error on UTF-8 BOM [#117](https://github.com/k0kubun/hamlit/pull/117)
30
+ [#124](https://github.com/k0kubun/hamlit/pull/124). *Thanks to @southwolf*
31
+
32
+ ## [2.8.8](https://github.com/k0kubun/hamlit/compare/v2.8.7...v2.8.8) - 2018-04-06
33
+
34
+ ### Fixed
35
+
36
+ - Don't require Tilt dependencies if unregistered
37
+ [#121](https://github.com/k0kubun/hamlit/pull/121). *Thanks to @michaelglass*
38
+
39
+ ## [2.8.7](https://github.com/k0kubun/hamlit/compare/v2.8.6...v2.8.7) - 2018-02-17
40
+
41
+ ### Fixed
42
+
43
+ - Fix parser error on string interpolation in attributes
44
+
45
+ ## [2.8.6](https://github.com/k0kubun/hamlit/compare/v2.8.5...v2.8.6) - 2017-12-22
46
+
47
+ ### Fixed
48
+
49
+ - Fix some unused-variable / method-redefinition warnings
50
+
51
+ ## [2.8.5](https://github.com/k0kubun/hamlit/compare/v2.8.4...v2.8.5) - 2017-11-06
52
+
53
+ ### Fixed
54
+
55
+ - Fix lexer to work with Ripper of Ruby 2.5
56
+
57
+ ## [2.8.4](https://github.com/k0kubun/hamlit/compare/v2.8.3...v2.8.4) - 2017-06-23
58
+
59
+ ### Added
60
+
61
+ - Allow filename `-` to read input from STDIN for `hamlit [parse|temple|compile|render]`
62
+ [#113](https://github.com/k0kubun/hamlit/issues/113). *Thanks to @gfx*
63
+
64
+ ## [2.8.3](https://github.com/k0kubun/hamlit/compare/v2.8.2...v2.8.3) - 2017-06-19
65
+
66
+ ### Added
67
+
68
+ - Add `--color` option to `hamlit parse` and `hamlit temple` commands too.
69
+
70
+ ## [2.8.2](https://github.com/k0kubun/hamlit/compare/v2.8.1...v2.8.2) - 2017-06-19
71
+
72
+ ### Added
73
+
74
+ - Add `--color` option to opt-in coloring in `hamlit compile` command
75
+ [#111](https://github.com/k0kubun/hamlit/issues/111).
76
+
77
+ ## [2.8.1](https://github.com/k0kubun/hamlit/compare/v2.8.0...v2.8.1) - 2017-04-03
78
+
79
+ ### Fixed
80
+
81
+ - Fix SEGV caused by nil in old attributes
82
+ [#101](https://github.com/k0kubun/hamlit/issues/101). *Thanks to @FND*
83
+
84
+ ## [2.8.0](https://github.com/k0kubun/hamlit/compare/v2.7.5...v2.8.0) - 2017-02-12
85
+
86
+ ### Changed
87
+
88
+ - Support Temple >= 0.8.0 and change to use StaticAnalyzer in Temple
89
+ - Optimize attribute building code a little
90
+
91
+ ## [2.7.5](https://github.com/k0kubun/hamlit/compare/v2.7.4...v2.7.5) - 2016-10-15
92
+
93
+ ### Fixed
94
+
95
+ - Resurrect `Hamlit::RailsTemplate.set_options` dropped in v2.7.4 unexpectedly.
96
+
97
+ ## [2.7.4](https://github.com/k0kubun/hamlit/compare/v2.7.3...v2.7.4) - 2016-10-15 [YANKED]
98
+
99
+ ### Fixed
100
+
101
+ - Compile template as xhtml when ActionView regards template as text/xml
102
+ [#92](https://github.com/k0kubun/hamlit/issues/92). *Thank to @shmargum*
103
+
104
+ ## [2.7.3](https://github.com/k0kubun/hamlit/compare/v2.7.2...v2.7.3) - 2016-10-12
105
+
106
+ ### Fixed
107
+
108
+ - Regard download as an boolean attribute
109
+ [#91](https://github.com/k0kubun/hamlit/pull/91). *Thank to @pushcx*
110
+
111
+ ## [2.7.2](https://github.com/k0kubun/hamlit/compare/v2.7.1...v2.7.2) - 2016-09-19
112
+
113
+ ### Fixed
114
+
115
+ - Fix engine option warning
116
+ [#90](https://github.com/k0kubun/hamlit/issues/90). *Thank to @kikonen*
117
+
118
+ ## [2.7.1](https://github.com/k0kubun/hamlit/compare/v2.7.0...v2.7.1) - 2016-09-19
119
+
120
+ ### Fixed
121
+
122
+ - Fix Rails handler to use `ActionView::OutputBuffer` instead of `ActionView::SafeBuffer` to justify encoding
123
+ [#89](https://github.com/k0kubun/hamlit/pull/89). *Thanks to @akelmanson*
124
+
125
+ ## [2.7.0](https://github.com/k0kubun/hamlit/compare/v2.6.2...v2.7.0) - 2016-08-31
126
+
127
+ ### Changed
128
+
129
+ - Don't escape interpolated content in plain filter
130
+ [#87](https://github.com/k0kubun/hamlit/pull/87). *Thanks to @shmargum*
131
+
132
+ ## [2.6.2](https://github.com/k0kubun/hamlit/compare/v2.6.1...v2.6.2) - 2016-08-27
133
+
134
+ ### Added
135
+
136
+ - Add cdata filter
137
+ [#84](https://github.com/k0kubun/hamlit/issues/84). *Thanks to @shmargum*
138
+ - Minimize string allocation on template comipilation using `# frozen_string_literal: true`
139
+
140
+ ## [2.6.1](https://github.com/k0kubun/hamlit/compare/v2.6.0...v2.6.1) - 2016-08-18
141
+
142
+ ### Fixed
143
+
144
+ - For Rails, escape attributes even if it's html\_safe
145
+ - This is the same fix as Rails for [CVE-2016-6316](https://groups.google.com/forum/#!topic/ruby-security-ann/8B2iV2tPRSE)
146
+
147
+ ## [2.6.0](https://github.com/k0kubun/hamlit/compare/v2.5.0...v2.6.0) - 2016-08-14
148
+
149
+ ### Changed
150
+
151
+ - Stop using [houdini](https://github.com/vmg/houdini) and rewrite HTML escape function to resolve building or packaging problems [#82](https://github.com/k0kubun/hamlit/pull/82).
152
+ - No behavior is changed
153
+
154
+ ## [2.5.0](https://github.com/k0kubun/hamlit/compare/v2.4.2...v2.5.0) - 2016-06-04
155
+
156
+ ### Changed
157
+
158
+ - Don't escape the result of `preserve` helper in Rails
159
+
160
+ ## [2.4.2](https://github.com/k0kubun/hamlit/compare/v2.4.1...v2.4.2) - 2016-06-04
161
+
162
+ ### Fixed
163
+
164
+ - Regard cygwin and bccwin as Windows environment too
165
+
166
+ ## [2.4.1](https://github.com/k0kubun/hamlit/compare/v2.4.0...v2.4.1) - 2016-06-03
167
+
168
+ ### Fixed
169
+
170
+ - Fix C extension builder to work with Ruby 2.3 on Windows
171
+ [#69](https://github.com/k0kubun/hamlit/issues/69). *Thanks to @francesco-loreti*
172
+
173
+ ## [2.4.0](https://github.com/k0kubun/hamlit/compare/v2.3.1...v2.4.0) - 2016-05-13
174
+
175
+ ### Added
176
+
177
+ - Add `Hamlit::Helpers.preserve` method for Tilt templates
178
+
179
+ ## [2.3.1](https://github.com/k0kubun/hamlit/compare/v2.3.0...v2.3.1) - 2016-05-09
180
+
181
+ ### Fixed
182
+
183
+ - Specify Ruby version dependency on gemspec
184
+ [#67](https://github.com/k0kubun/hamlit/issues/67). *Thanks to @grosser*
185
+
186
+ ## [2.3.0](https://github.com/k0kubun/hamlit/compare/v2.2.3...v2.3.0) - 2016-04-24
187
+
188
+ ### Added
189
+
190
+ - Add `Hamlit::Filters.remove_filter` method
191
+ [#66](https://github.com/k0kubun/hamlit/issues/66). *Thanks to @connorshea*
192
+
193
+ ### Changed
194
+
195
+ - `:coffeescript` filter's internal class name is changed from `Coffee` to `CoffeeScript`
196
+
197
+ ## [2.2.4](https://github.com/k0kubun/hamlit/compare/v2.2.3...v2.2.4) - 2017-12-05
198
+
199
+ ### Fixed
200
+
201
+ - Fix to work with Ruby 2.5. This version is usable with both 2.0 and 2.5.
202
+
203
+ ## [2.2.3](https://github.com/k0kubun/hamlit/compare/v2.2.2...v2.2.3) - 2016-03-10
204
+
205
+ ### Added
206
+
207
+ - Add `hamlit version` subcommand
208
+ [#60](https://github.com/k0kubun/hamlit/pull/60). *Thanks to @timoschilling*
209
+
210
+ ### Fixed
211
+
212
+ - Fix load path for CLI
213
+ [#61](https://github.com/k0kubun/hamlit/pull/61). *Thanks to @timoschilling*
214
+
215
+ ## [2.2.2](https://github.com/k0kubun/hamlit/compare/v2.2.1...v2.2.2) - 2016-02-21
216
+
217
+ ### Added
218
+
219
+ - Optimize performance of plain filter
220
+
221
+ ### Fixed
222
+
223
+ - Escape only interpolated text for plain filter
224
+ [#58](https://github.com/k0kubun/hamlit/issues/58). *Thanks to @shaneog*
225
+
226
+ ## [2.2.1](https://github.com/k0kubun/hamlit/compare/v2.2.0...v2.2.1) - 2016-02-06
227
+
228
+ ### Added
229
+
230
+ - Support Windows
231
+ [#54](https://github.com/k0kubun/hamlit/issues/54). *Thanks to @francesco-loreti*
232
+
233
+ ## [2.2.0](https://github.com/k0kubun/hamlit/compare/v2.1.2...v2.2.0) - 2015-12-24
234
+
235
+ ### Added
236
+
237
+ - Optimize inline script inside a tag
238
+ - Optimize string interpolation recursively
239
+
240
+ ## [2.1.2](https://github.com/k0kubun/hamlit/compare/v2.1.1...v2.1.2) - 2015-12-16
241
+
242
+ ### Fixed
243
+
244
+ - Fix rendering failure for static integer
245
+ [#50](https://github.com/k0kubun/hamlit/pull/50). *Thanks to @yatmsu*
246
+
247
+ ## [2.1.1](https://github.com/k0kubun/hamlit/compare/v2.1.0...v2.1.1) - 2015-12-15
248
+
249
+ ### Fixed
250
+
251
+ - Use faster HTML-escape method for compiling
252
+ - Show proper line number for unbalanced brackets error
253
+
254
+ ## [2.1.0](https://github.com/k0kubun/hamlit/compare/v2.0.2...v2.1.0) - 2015-12-14
255
+
256
+ ### Added
257
+
258
+ - `-I` and `-r` options are added to `hamlit render` command
259
+ [#37](https://github.com/k0kubun/hamlit/issues/37). *Thanks to @jhurliman*
260
+
261
+ ### Changed
262
+
263
+ - Dropped obsolete `escape_utils` gem dependency
264
+ [#48](https://github.com/k0kubun/hamlit/pull/48). *Thanks to @eagletmt*
265
+
266
+ ### Fixed
267
+
268
+ - Accept NUL character in attribute keys
269
+ [#49](https://github.com/k0kubun/hamlit/pull/49). *Thanks to @eagletmt*
270
+
271
+ ## [2.0.2](https://github.com/k0kubun/hamlit/compare/v2.0.1...v2.0.2) - 2015-12-12
272
+
273
+ ### Fixed
274
+ - Fix a crash in compiling with CLI
275
+ [#46](https://github.com/k0kubun/hamlit/pull/46). *Thanks to @walf443*
276
+ - Use default engine options properly in CLI commands
277
+
278
+ ## [2.0.1](https://github.com/k0kubun/hamlit/compare/v2.0.0...v2.0.1) - 2015-11-30
279
+
280
+ ### Fixed
281
+ - Fix build failure of native extension
282
+
283
+ ## [2.0.0](https://github.com/k0kubun/hamlit/compare/v1.7.2...v2.0.0) - 2015-11-30 [YANKED]
284
+ ### Added
285
+ - Support object reference
286
+
287
+ ### Changed
288
+ - Full scratch of internal implementation
289
+ - Rendering is strongly optimized
290
+ - Static analyzer is introduced
291
+ - Built with C extension for runtime rendering
292
+ - Optimized compilation for 5 types of attributes
293
+ - Compilation became faster too
294
+ - Many rendering incompatibilities are resolved
295
+ - [**breaking**] Replaced parser with original Haml's one
296
+ - Incompatible parsing error will never happen, but we can no longer parse
297
+ attributes with Ripper
298
+ - [**breaking**] Unified behavior for both static and dynamic attributes, see
299
+ [5 types of attributes](REFERENCE.md#5-types-of-attributes)
300
+ - Though inconsistent behavior is removed, we can no longer rely on
301
+ completely-Haml-compatible behavior of static attributes and pass haml-spec
302
+ - [**breaking**] Added :escape\_attrs option
303
+ - You should specify HTML-escaping availability for script and attrs
304
+ separately.
305
+
306
+ ## [1.7.2](https://github.com/k0kubun/hamlit/compare/v1.7.1...v1.7.2) - 2015-07-22
307
+
308
+ ### Fixed
309
+ - Bugfix about parsing a content of tag
310
+ - This was introduced in v1.6.6.
311
+
312
+ ## [1.7.1](https://github.com/k0kubun/hamlit/compare/v1.7.0...v1.7.1) - 2015-07-21
313
+
314
+ ### Fixed
315
+ - Don't escape a block content of some helpers
316
+ [#35](https://github.com/k0kubun/hamlit/issues/35). *Thanks to @felixbuenemann*
317
+
318
+ ## [1.7.0](https://github.com/k0kubun/hamlit/compare/v1.6.7...v1.7.0) - 2015-07-09
319
+
320
+ ### Added
321
+ - Support Ruby 2.2.0 hash syntax
322
+ - like `{ "hyphened-key": "value" }`
323
+
324
+ ## [1.6.7](https://github.com/k0kubun/hamlit/compare/v1.6.6...v1.6.7) - 2015-06-27
325
+
326
+ ### Fixed
327
+ - Remove unused variables and avoid shadowing
328
+ - To suppress warnings in application using `rspec --warnings`
329
+
330
+ ## [1.6.6](https://github.com/k0kubun/hamlit/compare/v1.6.5...v1.6.6) - 2015-06-24
331
+
332
+ ### Added
333
+ - Allow hyphenated HTML-style attributes
334
+ [pull #29](https://github.com/k0kubun/hamlit/pull/29). *thanks to @babelfish*
335
+
336
+ ## [1.6.5](https://github.com/k0kubun/hamlit/compare/v1.6.4...v1.6.5) - 2015-06-13
337
+
338
+ ### Fixed
339
+ - Don't duplicate element class and attribute class
340
+ - Raise an error for an empty tag name
341
+
342
+ ## [1.6.4](https://github.com/k0kubun/hamlit/compare/v1.6.3...v1.6.4) - 2015-06-13
343
+
344
+ ### Changed
345
+ - Show human-friendly error messages
346
+
347
+ ### Fixed
348
+ - Fix line number of runtime syntax error
349
+ - Increase the number of checked cases for illegal nesting.
350
+ *Thanks to @eagletmt*
351
+
352
+ ## [1.6.3](https://github.com/k0kubun/hamlit/compare/v1.6.2...v1.6.3) - 2015-06-13
353
+
354
+ ### Fixed
355
+ - Fix ! and & parsing inside a tag
356
+ [#27](https://github.com/k0kubun/hamlit/issues/27#issuecomment-111593458).
357
+ *Thanks to @leesmith*
358
+
359
+ ## [1.6.2](https://github.com/k0kubun/hamlit/compare/v1.6.1...v1.6.2) - 2015-06-11
360
+
361
+ ### Fixed
362
+ - Reject a content for self-closing tags
363
+ - Reject nesing within self-closing tags
364
+
365
+ ## [1.6.1](https://github.com/k0kubun/hamlit/compare/v1.6.0...v1.6.1) - 2015-06-11
366
+
367
+ ### Fixed
368
+ - Parse N-space indentation
369
+ [#26](https://github.com/k0kubun/hamlit/issues/26). *Thanks to @eagletmt*
370
+
371
+ ## [1.6.0](https://github.com/k0kubun/hamlit/compare/v1.5.9...v1.6.0) - 2015-06-11
372
+
373
+ ### Fixed
374
+ - Fix line number of compiled code for new attributes
375
+ - Render HTML entities normally for plain text
376
+ [#27](https://github.com/k0kubun/hamlit/issues/27). *Thanks to @jeffblake*
377
+
378
+ ## [1.5.9](https://github.com/k0kubun/hamlit/compare/v1.5.8...v1.5.9) - 2015-06-08
379
+
380
+ ### Fixed
381
+ - Reject silent script after a tag
382
+
383
+ ## [1.5.8](https://github.com/k0kubun/hamlit/compare/v1.5.7...v1.5.8) - 2015-06-08
384
+
385
+ ### Fixed
386
+ - Fix parsing inline script for != and &=
387
+
388
+ ## [1.5.7](https://github.com/k0kubun/hamlit/compare/v1.5.6...v1.5.7) - 2015-06-08
389
+
390
+ ### Fixed
391
+ - Fix the behavior for multi-line script
392
+
393
+ ## [1.5.6](https://github.com/k0kubun/hamlit/compare/v1.5.5...v1.5.6) - 2015-06-07
394
+
395
+ ### Added
396
+ - Raise error for unbalanced brackets
397
+
398
+ ### Changed
399
+ - Don't render newline after block script
400
+
401
+ ## [1.5.5](https://github.com/k0kubun/hamlit/compare/v1.5.4...v1.5.5) - 2015-06-07
402
+
403
+ ### Added
404
+ - Support &, &== operator
405
+
406
+ ### Changed
407
+ - Depend on v0.7.6 of temple for refactoring
408
+
409
+ ### Fixed
410
+ - Fix a trivial diff of rendering multiline operator
411
+
412
+ ## [1.5.4](https://github.com/k0kubun/hamlit/compare/v1.5.3...v1.5.4) - 2015-06-07
413
+
414
+ ### Changed
415
+ - Recursively remove whitespace inside a tag
416
+
417
+ ### Fixed
418
+ - Fix ! operator immediately before whitespace
419
+
420
+ ## [1.5.3](https://github.com/k0kubun/hamlit/compare/v1.5.2...v1.5.3) - 2015-06-06
421
+
422
+ ### Added
423
+ - Support !, !=, !==, &= and ~ as inline operators
424
+
425
+ ## [1.5.2](https://github.com/k0kubun/hamlit/compare/v1.5.1...v1.5.2) - 2015-06-06
426
+
427
+ ### Changed
428
+ - Disable html escaping in CSS and JavaScript filter
429
+
430
+ ## [1.5.1](https://github.com/k0kubun/hamlit/compare/v1.5.0...v1.5.1) - 2015-06-05
431
+
432
+ ### Changed
433
+ - Remove outer whitespace in the block
434
+
435
+ ## [1.5.0](https://github.com/k0kubun/hamlit/compare/v1.4.7...v1.5.0) - 2015-06-03
436
+
437
+ ### Changed
438
+ - Remake implementation of outer whitespace removal
439
+
440
+ ## [1.4.7](https://github.com/k0kubun/hamlit/compare/v1.4.6...v1.4.7) - 2015-06-03
441
+
442
+ ### Changed
443
+ - Sort static old attributes by name
444
+
445
+ ### Fixed
446
+ - Bugfix for old array attributes with class element
447
+
448
+ ## [1.4.6](https://github.com/k0kubun/hamlit/compare/v1.4.5...v1.4.6) - 2015-06-03
449
+
450
+ ### Added
451
+ - Support `!==`, `==` operator
452
+
453
+ ### Fixed
454
+ - Avoid regarding spaced block as multiline
455
+
456
+ ## [1.4.5](https://github.com/k0kubun/hamlit/compare/v1.4.4...v1.4.5) - 2015-06-02
457
+
458
+ ### Fixed
459
+ - Support Ruby 2.0 and 2.1 for v1.4.4
460
+
461
+ ## [1.4.4](https://github.com/k0kubun/hamlit/compare/v1.4.3...v1.4.4) - 2015-06-02 [YANKED]
462
+
463
+ ### Fixed
464
+ - Fix old attribute parser to be more flexible
465
+ - Accept multiple hashes as old attributes
466
+ - Accept old attributes with hash and literal
467
+
468
+ ## [1.4.3](https://github.com/k0kubun/hamlit/compare/v1.4.2...v1.4.3) - 2015-06-02
469
+
470
+ ### Changed
471
+ - Allow `when` to have multiple candidates
472
+ - Allow `rescue` to specify an error variable
473
+
474
+ ## [1.4.2](https://github.com/k0kubun/hamlit/compare/v1.4.1...v1.4.2) - 2015-05-31
475
+
476
+ ### Added
477
+ - Support `!` operator
478
+ - It disables html escaping for interpolated text
479
+
480
+ ## [1.4.1](https://github.com/k0kubun/hamlit/compare/v1.4.0...v1.4.1) - 2015-05-31
481
+
482
+ ### Fixed
483
+ - Fix code mistake in 1.4.0
484
+
485
+ ## [1.4.0](https://github.com/k0kubun/hamlit/compare/v1.3.2...v1.4.0) - 2015-05-31 [YANKED]
486
+
487
+ ### Added
488
+ - Escape interpolated string in plain text
489
+
490
+ ## [1.3.2](https://github.com/k0kubun/hamlit/compare/v1.3.1...v1.3.2) - 2015-05-30
491
+
492
+ - Render `begin`, `rescue` and `ensure`
493
+
494
+ ## [1.3.1](https://github.com/k0kubun/hamlit/compare/v1.3.0...v1.3.1) - 2015-05-30
495
+
496
+ ### Fixed
497
+ - Bugfix about a backslash-only comment
498
+ - Don't strip a plain text
499
+
500
+ ## [1.3.0](https://github.com/k0kubun/hamlit/compare/v1.2.1...v1.3.0) - 2015-05-16
501
+
502
+ ### Added
503
+ - Resurrect escape\_html option
504
+ [#25](https://github.com/k0kubun/hamlit/issues/25).
505
+ *Thanks to @resistorsoftware*
506
+ - Still enabled by default
507
+ - This has been dropped since v0.6.0
508
+
509
+ ## [1.2.1](https://github.com/k0kubun/hamlit/compare/v1.2.0...v1.2.1) - 2015-05-15
510
+
511
+ ### Fixed
512
+ - Fix the list of boolean attributes
513
+ [#24](https://github.com/k0kubun/hamlit/issues/24). *Thanks to @jeffblake*
514
+
515
+ ## [1.2.0](https://github.com/k0kubun/hamlit/compare/v1.1.1...v1.2.0) - 2015-05-06
516
+
517
+ Added
518
+ - Support `succeed`, `precede` and `surround`
519
+ [#22](https://github.com/k0kubun/hamlit/issues/22). *Thanks to @sneakernets*
520
+
521
+ ## [1.1.1](https://github.com/k0kubun/hamlit/compare/v1.1.0...v1.1.1) - 2015-05-06
522
+
523
+ ### Fixed
524
+ - Bugfix of rendering array attributes
525
+
526
+ ## [1.1.0](https://github.com/k0kubun/hamlit/compare/v1.0.0...v1.1.0) - 2015-05-06
527
+
528
+ ### Fixed
529
+ - Join id and class attributes
530
+ [#23](https://github.com/k0kubun/hamlit/issues/23).
531
+ *Thanks to @felixbuenemann*
532
+
533
+ ## [1.0.0](https://github.com/k0kubun/hamlit/compare/v0.6.2...v1.0.0) - 2015-04-12
534
+
535
+ ### Added
536
+ - Use escape\_utils gem for faster escape\_html
537
+
538
+ ## [0.6.2](https://github.com/k0kubun/hamlit/compare/v0.6.1...v0.6.2) - 2015-04-12
539
+
540
+ ### Fixed
541
+ - Don't render falsy attributes
542
+ [#2](https://github.com/k0kubun/hamlit/issues/2). *Thanks to @eagletmt*
543
+
544
+ ## [0.6.1](https://github.com/k0kubun/hamlit/compare/v0.6.0...v0.6.1) - 2015-04-12
545
+
546
+ ### Fixed
547
+ - Bugfix of line numbers for better error backtrace
548
+ [pull #19](https://github.com/k0kubun/hamlit/pull/19)
549
+
550
+ ## [0.6.0](https://github.com/k0kubun/hamlit/compare/v0.5.3...v0.6.0) - 2015-04-12
551
+
552
+ ### Added
553
+ - Automatically escape html in all situations
554
+ [pull #18](https://github.com/k0kubun/hamlit/pull/18)
555
+
556
+ ## [0.5.3](https://github.com/k0kubun/hamlit/compare/v0.5.2...v0.5.3) - 2015-04-12
557
+
558
+ ### Fixed
559
+ - Bugfix for syntax error in data attribute hash
560
+ [#17](https://github.com/k0kubun/hamlit/issues/17). *Thanks to @eagletmt*
561
+
562
+ ## [0.5.2](https://github.com/k0kubun/hamlit/compare/v0.5.1...v0.5.2) - 2015-04-12
563
+
564
+ ### Fixed
565
+ - Bugfix for silent script without block
566
+ [#16](https://github.com/k0kubun/hamlit/issues/16). *Thanks to @eagletmt*
567
+
568
+ ## [0.5.1](https://github.com/k0kubun/hamlit/compare/v0.5.0...v0.5.1) - 2015-04-12
569
+
570
+ ### Fixed
571
+ - Bugfix about duplicated id and class
572
+ [#4](https://github.com/k0kubun/hamlit/issues/4). *Thanks to @os0x*
573
+
574
+ ## [0.5.0](https://github.com/k0kubun/hamlit/compare/v0.4.3...v0.5.0) - 2015-04-12
575
+
576
+ ### Fixed
577
+ - Escape special characters in attribute values
578
+ [#10](https://github.com/k0kubun/hamlit/issues/10). *Thanks to @mono0x,
579
+ @eagletmt*
580
+
581
+ ## [0.4.3](https://github.com/k0kubun/hamlit/compare/v0.4.2...v0.4.3) - 2015-04-12
582
+
583
+ ### Fixed
584
+ - Allow empty else statement [#14](https://github.com/k0kubun/hamlit/issues/14).
585
+ *Thanks to @jeffblake*
586
+ - Accept comment-only script [#13](https://github.com/k0kubun/hamlit/issues/13).
587
+ *Thanks to @jeffblake*
588
+
589
+ ## [0.4.2](https://github.com/k0kubun/hamlit/compare/v0.4.1...v0.4.2) - 2015-04-05
590
+
591
+ ### Fixed
592
+ - Bugfix about parsing nested attributes
593
+ [#12](https://github.com/k0kubun/hamlit/issues/12). *Thanks to @creasty*
594
+
595
+ ## [0.4.1](https://github.com/k0kubun/hamlit/compare/v0.4.0...v0.4.1) - 2015-04-05
596
+
597
+ ### Removed
598
+ - Automatic escape html is sintara, consult `README.md`.
599
+
600
+ ### Fixed
601
+ - Escape haml operators by backslash
602
+ [#11](https://github.com/k0kubun/hamlit/issues/11). *Thanks to @mono0x*
603
+
604
+ ## [0.4.0](https://github.com/k0kubun/hamlit/compare/v0.3.4...v0.4.0) - 2015-04-05 [YANKED]
605
+
606
+ ### Added
607
+ - Automatically escape html in sinatra
608
+
609
+ ## [0.3.4](https://github.com/k0kubun/hamlit/compare/v0.3.3...v0.3.4) - 2015-04-02
610
+
611
+ ### Fixed
612
+ - Allow tab indentation [#9](https://github.com/k0kubun/hamlit/issues/9).
613
+ *Thanks to @tdtds*
614
+
615
+ ## [0.3.3](https://github.com/k0kubun/hamlit/compare/v0.3.2...v0.3.3) - 2015-04-01
616
+
617
+ ### Fixed
618
+ - Accept multi byte parsing [#8](https://github.com/k0kubun/hamlit/issues/8).
619
+ *Thanks to @machu*
620
+
621
+ ## [0.3.2](https://github.com/k0kubun/hamlit/compare/v0.3.1...v0.3.2) - 2015-03-31
622
+
623
+ ### Fixed
624
+ - Bugfix for compiling old attributes [#7](https://github.com/k0kubun/hamlit/issues/7).
625
+ *Thanks to @creasty*
626
+
627
+ ## [0.3.1](https://github.com/k0kubun/hamlit/compare/v0.3.0...v0.3.1) - 2015-03-31
628
+
629
+ ### Fixed
630
+ - Hyphenate data attributes [#5](https://github.com/k0kubun/hamlit/issues/5).
631
+ *Thanks to @os0x*
632
+
633
+ ## [0.3.0](https://github.com/k0kubun/hamlit/compare/v0.2.0...v0.3.0) - 2015-03-31
634
+
635
+ ### Added
636
+ - Specify a version in dependency of temple
637
+
638
+ ## [0.2.0](https://github.com/k0kubun/hamlit/compare/v0.1.3...v0.2.0) - 2015-03-30
639
+
640
+ ### Added
641
+ - Allow comments in script [#3](https://github.com/k0kubun/hamlit/issues/3).
642
+ *Thanks to @eagletmt*
643
+
644
+ ## [0.1.3](https://github.com/k0kubun/hamlit/compare/v0.1.2...v0.1.3) - 2015-03-30
645
+
646
+ ### Fixed
647
+ - Bugfix for [#1](https://github.com/k0kubun/hamlit/issues/1) attribute nesting
648
+ on runtime. *Thanks to @eagletmt*
649
+
650
+ ## [0.1.2](https://github.com/k0kubun/hamlit/compare/v0.1.1...v0.1.2) - 2015-03-30
651
+
652
+ ### Fixed
653
+ - Ignore false or nil values in attributes
654
+ - Partial fix for [#2](https://github.com/k0kubun/hamlit/issues/2).
655
+ *Thanks to @eagletmt*
656
+
657
+ ## [0.1.1](https://github.com/k0kubun/hamlit/compare/v0.1.0...v0.1.1) - 2015-03-30
658
+
659
+ ### Removed
660
+ - Drop obsolete `--ugly` option for CLI
661
+ - Currently pretty mode is not implemented #2
662
+
663
+ ## [0.1.0](https://github.com/k0kubun/hamlit/compare/9cf8216...v0.1.0) - 2015-03-30
664
+
665
+ - Initial release
666
+ - Passing haml-spec with ugly mode