hamlit 1.7.2 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (283) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +4 -3
  3. data/.gitmodules +3 -0
  4. data/.travis.yml +25 -37
  5. data/CHANGELOG.md +18 -0
  6. data/Gemfile +16 -0
  7. data/LICENSE.txt +23 -2
  8. data/README.md +106 -48
  9. data/REFERENCE.md +222 -0
  10. data/Rakefile +77 -19
  11. data/benchmark/boolean_attribute.haml +6 -0
  12. data/benchmark/class_attribute.haml +5 -0
  13. data/benchmark/common_attribute.haml +3 -0
  14. data/benchmark/data_attribute.haml +4 -0
  15. data/benchmark/dynamic_attributes/boolean_attribute.haml +4 -0
  16. data/benchmark/dynamic_attributes/class_attribute.haml +4 -0
  17. data/benchmark/dynamic_attributes/common_attribute.haml +2 -0
  18. data/benchmark/dynamic_attributes/data_attribute.haml +2 -0
  19. data/benchmark/dynamic_attributes/id_attribute.haml +2 -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/tags.haml +3 -0
  25. data/benchmark/ext/build_data.rb +15 -0
  26. data/benchmark/ext/build_id.rb +13 -0
  27. data/benchmark/id_attribute.haml +3 -0
  28. data/benchmark/plain.haml +4 -0
  29. data/benchmark/script.haml +4 -0
  30. data/benchmark/slim/LICENSE +21 -0
  31. data/{benchmarks → benchmark/slim}/context.rb +2 -4
  32. data/benchmark/slim/run-benchmarks.rb +94 -0
  33. data/{benchmarks → benchmark/slim}/view.erb +3 -3
  34. data/{benchmarks → benchmark/slim}/view.haml +0 -0
  35. data/{benchmarks/view.escaped.slim → benchmark/slim/view.slim} +1 -1
  36. data/benchmark/string_interpolation.haml +2 -0
  37. data/benchmark/utils/benchmark_ips_extension.rb +43 -0
  38. data/bin/bench +85 -0
  39. data/bin/clone +14 -0
  40. data/bin/console +11 -0
  41. data/bin/lineprof +48 -0
  42. data/bin/ruby +3 -0
  43. data/bin/setup +7 -0
  44. data/bin/stackprof +27 -0
  45. data/{test → bin/test} +6 -10
  46. data/{bin → exe}/hamlit +0 -0
  47. data/ext/hamlit/extconf.rb +14 -0
  48. data/ext/hamlit/hamlit.c +512 -0
  49. data/ext/hamlit/houdini/.gitignore +3 -0
  50. data/ext/hamlit/houdini/COPYING +7 -0
  51. data/ext/hamlit/houdini/Makefile +79 -0
  52. data/ext/hamlit/houdini/README.md +59 -0
  53. data/ext/hamlit/houdini/buffer.c +249 -0
  54. data/ext/hamlit/houdini/buffer.h +113 -0
  55. data/ext/hamlit/houdini/houdini.h +46 -0
  56. data/ext/hamlit/houdini/houdini_href_e.c +115 -0
  57. data/ext/hamlit/houdini/houdini_html_e.c +90 -0
  58. data/ext/hamlit/houdini/houdini_html_u.c +122 -0
  59. data/ext/hamlit/houdini/houdini_js_e.c +90 -0
  60. data/ext/hamlit/houdini/houdini_js_u.c +60 -0
  61. data/ext/hamlit/houdini/houdini_uri_e.c +107 -0
  62. data/ext/hamlit/houdini/houdini_uri_u.c +68 -0
  63. data/ext/hamlit/houdini/houdini_xml_e.c +136 -0
  64. data/ext/hamlit/houdini/html_unescape.gperf +258 -0
  65. data/ext/hamlit/houdini/html_unescape.h +754 -0
  66. data/ext/hamlit/houdini/tools/build_table.py +13 -0
  67. data/ext/hamlit/houdini/tools/build_tables.c +51 -0
  68. data/ext/hamlit/houdini/tools/wikipedia_table.txt +2025 -0
  69. data/hamlit.gemspec +30 -31
  70. data/lib/hamlit.rb +3 -1
  71. data/lib/hamlit/attribute_builder.rb +12 -0
  72. data/lib/hamlit/cli.rb +44 -43
  73. data/lib/hamlit/compiler.rb +92 -16
  74. data/lib/hamlit/compiler/attribute_compiler.rb +148 -0
  75. data/lib/hamlit/compiler/children_compiler.rb +111 -0
  76. data/lib/hamlit/compiler/comment_compiler.rb +36 -0
  77. data/lib/hamlit/compiler/doctype_compiler.rb +45 -0
  78. data/lib/hamlit/compiler/script_compiler.rb +97 -0
  79. data/lib/hamlit/compiler/silent_script_compiler.rb +24 -0
  80. data/lib/hamlit/compiler/tag_compiler.rb +69 -0
  81. data/lib/hamlit/engine.rb +12 -7
  82. data/lib/hamlit/error.rb +14 -0
  83. data/lib/hamlit/escapable.rb +12 -0
  84. data/lib/hamlit/filters.rb +65 -0
  85. data/lib/hamlit/filters/base.rb +4 -62
  86. data/lib/hamlit/filters/coffee.rb +9 -7
  87. data/lib/hamlit/filters/css.rb +25 -8
  88. data/lib/hamlit/filters/erb.rb +4 -6
  89. data/lib/hamlit/filters/escaped.rb +11 -9
  90. data/lib/hamlit/filters/javascript.rb +25 -8
  91. data/lib/hamlit/filters/less.rb +9 -7
  92. data/lib/hamlit/filters/markdown.rb +5 -6
  93. data/lib/hamlit/filters/plain.rb +11 -15
  94. data/lib/hamlit/filters/preserve.rb +15 -5
  95. data/lib/hamlit/filters/ruby.rb +3 -5
  96. data/lib/hamlit/filters/sass.rb +9 -7
  97. data/lib/hamlit/filters/scss.rb +9 -7
  98. data/lib/hamlit/filters/text_base.rb +24 -0
  99. data/lib/hamlit/filters/tilt_base.rb +47 -0
  100. data/lib/hamlit/hash_parser.rb +107 -0
  101. data/lib/hamlit/html.rb +9 -6
  102. data/lib/hamlit/identity.rb +12 -0
  103. data/lib/hamlit/object_ref.rb +29 -0
  104. data/lib/hamlit/parser.rb +25 -142
  105. data/lib/hamlit/parser/MIT-LICENSE +20 -0
  106. data/lib/hamlit/parser/README.md +28 -0
  107. data/lib/hamlit/parser/haml_buffer.rb +348 -0
  108. data/lib/hamlit/parser/haml_compiler.rb +553 -0
  109. data/lib/hamlit/parser/haml_error.rb +61 -0
  110. data/lib/hamlit/parser/haml_helpers.rb +727 -0
  111. data/lib/hamlit/parser/haml_options.rb +286 -0
  112. data/lib/hamlit/parser/haml_parser.rb +801 -0
  113. data/lib/hamlit/parser/haml_util.rb +283 -0
  114. data/lib/hamlit/parser/haml_xss_mods.rb +109 -0
  115. data/lib/hamlit/{helpers.rb → rails_helpers.rb} +2 -7
  116. data/lib/hamlit/rails_template.rb +30 -0
  117. data/lib/hamlit/railtie.rb +1 -12
  118. data/lib/hamlit/ruby_expression.rb +31 -0
  119. data/lib/hamlit/static_analyzer.rb +49 -0
  120. data/lib/hamlit/string_interpolation.rb +69 -0
  121. data/lib/hamlit/template.rb +8 -0
  122. data/lib/hamlit/utils.rb +9 -0
  123. data/lib/hamlit/version.rb +1 -1
  124. metadata +116 -324
  125. data/.rspec +0 -2
  126. data/benchmarks/benchmark.rb +0 -110
  127. data/benchmarks/view.slim +0 -17
  128. data/doc/README.md +0 -19
  129. data/doc/engine/indent.md +0 -48
  130. data/doc/engine/new_attribute.md +0 -77
  131. data/doc/engine/old_attributes.md +0 -198
  132. data/doc/engine/silent_script.md +0 -97
  133. data/doc/engine/tag.md +0 -48
  134. data/doc/engine/text.md +0 -64
  135. data/doc/faml/README.md +0 -16
  136. data/doc/faml/engine/indent.md +0 -48
  137. data/doc/faml/engine/old_attributes.md +0 -111
  138. data/doc/faml/engine/silent_script.md +0 -97
  139. data/doc/faml/engine/text.md +0 -59
  140. data/doc/faml/filters/erb.md +0 -24
  141. data/doc/faml/filters/javascript.md +0 -27
  142. data/doc/faml/filters/less.md +0 -57
  143. data/doc/faml/filters/plain.md +0 -25
  144. data/doc/filters/erb.md +0 -31
  145. data/doc/filters/javascript.md +0 -83
  146. data/doc/filters/less.md +0 -57
  147. data/doc/filters/markdown.md +0 -31
  148. data/doc/filters/plain.md +0 -25
  149. data/doc/haml/README.md +0 -15
  150. data/doc/haml/engine/new_attribute.md +0 -77
  151. data/doc/haml/engine/old_attributes.md +0 -142
  152. data/doc/haml/engine/tag.md +0 -48
  153. data/doc/haml/engine/text.md +0 -29
  154. data/doc/haml/filters/erb.md +0 -26
  155. data/doc/haml/filters/javascript.md +0 -76
  156. data/doc/haml/filters/markdown.md +0 -31
  157. data/lib/hamlit/attribute.rb +0 -78
  158. data/lib/hamlit/compilers/attributes.rb +0 -108
  159. data/lib/hamlit/compilers/comment.rb +0 -13
  160. data/lib/hamlit/compilers/doctype.rb +0 -39
  161. data/lib/hamlit/compilers/filter.rb +0 -53
  162. data/lib/hamlit/compilers/new_attribute.rb +0 -115
  163. data/lib/hamlit/compilers/old_attribute.rb +0 -241
  164. data/lib/hamlit/compilers/runtime_attribute.rb +0 -58
  165. data/lib/hamlit/compilers/script.rb +0 -31
  166. data/lib/hamlit/compilers/strip.rb +0 -19
  167. data/lib/hamlit/compilers/text.rb +0 -111
  168. data/lib/hamlit/concerns/attribute_builder.rb +0 -22
  169. data/lib/hamlit/concerns/balanceable.rb +0 -68
  170. data/lib/hamlit/concerns/deprecation.rb +0 -20
  171. data/lib/hamlit/concerns/error.rb +0 -31
  172. data/lib/hamlit/concerns/escapable.rb +0 -17
  173. data/lib/hamlit/concerns/included.rb +0 -28
  174. data/lib/hamlit/concerns/indentable.rb +0 -117
  175. data/lib/hamlit/concerns/lexable.rb +0 -32
  176. data/lib/hamlit/concerns/line_reader.rb +0 -62
  177. data/lib/hamlit/concerns/registerable.rb +0 -24
  178. data/lib/hamlit/concerns/string_interpolation.rb +0 -48
  179. data/lib/hamlit/concerns/whitespace.rb +0 -91
  180. data/lib/hamlit/filters/tilt.rb +0 -41
  181. data/lib/hamlit/parsers/attribute.rb +0 -71
  182. data/lib/hamlit/parsers/comment.rb +0 -30
  183. data/lib/hamlit/parsers/doctype.rb +0 -18
  184. data/lib/hamlit/parsers/filter.rb +0 -18
  185. data/lib/hamlit/parsers/multiline.rb +0 -58
  186. data/lib/hamlit/parsers/script.rb +0 -126
  187. data/lib/hamlit/parsers/tag.rb +0 -83
  188. data/lib/hamlit/parsers/text.rb +0 -28
  189. data/lib/hamlit/temple.rb +0 -9
  190. data/release +0 -6
  191. data/spec/Rakefile +0 -72
  192. data/spec/hamlit/engine/comment_spec.rb +0 -56
  193. data/spec/hamlit/engine/doctype_spec.rb +0 -19
  194. data/spec/hamlit/engine/error_spec.rb +0 -135
  195. data/spec/hamlit/engine/indent_spec.rb +0 -42
  196. data/spec/hamlit/engine/multiline_spec.rb +0 -44
  197. data/spec/hamlit/engine/new_attribute_spec.rb +0 -110
  198. data/spec/hamlit/engine/old_attributes_spec.rb +0 -404
  199. data/spec/hamlit/engine/script_spec.rb +0 -116
  200. data/spec/hamlit/engine/silent_script_spec.rb +0 -213
  201. data/spec/hamlit/engine/tag_spec.rb +0 -295
  202. data/spec/hamlit/engine/text_spec.rb +0 -239
  203. data/spec/hamlit/engine_spec.rb +0 -58
  204. data/spec/hamlit/filters/coffee_spec.rb +0 -60
  205. data/spec/hamlit/filters/css_spec.rb +0 -33
  206. data/spec/hamlit/filters/erb_spec.rb +0 -16
  207. data/spec/hamlit/filters/javascript_spec.rb +0 -82
  208. data/spec/hamlit/filters/less_spec.rb +0 -37
  209. data/spec/hamlit/filters/markdown_spec.rb +0 -30
  210. data/spec/hamlit/filters/plain_spec.rb +0 -15
  211. data/spec/hamlit/filters/ruby_spec.rb +0 -24
  212. data/spec/hamlit/filters/sass_spec.rb +0 -33
  213. data/spec/hamlit/filters/scss_spec.rb +0 -37
  214. data/spec/hamlit/haml_spec.rb +0 -910
  215. data/spec/rails/.gitignore +0 -18
  216. data/spec/rails/.rspec +0 -2
  217. data/spec/rails/Gemfile +0 -19
  218. data/spec/rails/README.rdoc +0 -28
  219. data/spec/rails/Rakefile +0 -6
  220. data/spec/rails/app/assets/images/.keep +0 -0
  221. data/spec/rails/app/assets/javascripts/application.js +0 -15
  222. data/spec/rails/app/assets/stylesheets/application.css +0 -15
  223. data/spec/rails/app/controllers/application_controller.rb +0 -8
  224. data/spec/rails/app/controllers/concerns/.keep +0 -0
  225. data/spec/rails/app/controllers/users_controller.rb +0 -23
  226. data/spec/rails/app/helpers/application_helper.rb +0 -2
  227. data/spec/rails/app/mailers/.keep +0 -0
  228. data/spec/rails/app/models/.keep +0 -0
  229. data/spec/rails/app/models/concerns/.keep +0 -0
  230. data/spec/rails/app/views/application/index.html.haml +0 -18
  231. data/spec/rails/app/views/layouts/application.html.haml +0 -12
  232. data/spec/rails/app/views/users/capture.html.haml +0 -5
  233. data/spec/rails/app/views/users/capture_haml.html.haml +0 -5
  234. data/spec/rails/app/views/users/form.html.haml +0 -2
  235. data/spec/rails/app/views/users/helpers.html.haml +0 -10
  236. data/spec/rails/app/views/users/index.html.haml +0 -9
  237. data/spec/rails/app/views/users/inline.html.haml +0 -6
  238. data/spec/rails/app/views/users/old_attributes.html.haml +0 -5
  239. data/spec/rails/app/views/users/safe_buffer.html.haml +0 -4
  240. data/spec/rails/app/views/users/whitespace.html.haml +0 -4
  241. data/spec/rails/bin/bundle +0 -3
  242. data/spec/rails/bin/rails +0 -8
  243. data/spec/rails/bin/rake +0 -8
  244. data/spec/rails/bin/setup +0 -29
  245. data/spec/rails/bin/spring +0 -15
  246. data/spec/rails/config.ru +0 -4
  247. data/spec/rails/config/application.rb +0 -34
  248. data/spec/rails/config/boot.rb +0 -3
  249. data/spec/rails/config/database.yml +0 -25
  250. data/spec/rails/config/environment.rb +0 -5
  251. data/spec/rails/config/environments/development.rb +0 -41
  252. data/spec/rails/config/environments/production.rb +0 -79
  253. data/spec/rails/config/environments/test.rb +0 -42
  254. data/spec/rails/config/initializers/assets.rb +0 -11
  255. data/spec/rails/config/initializers/backtrace_silencers.rb +0 -7
  256. data/spec/rails/config/initializers/cookies_serializer.rb +0 -3
  257. data/spec/rails/config/initializers/filter_parameter_logging.rb +0 -4
  258. data/spec/rails/config/initializers/inflections.rb +0 -16
  259. data/spec/rails/config/initializers/mime_types.rb +0 -4
  260. data/spec/rails/config/initializers/session_store.rb +0 -3
  261. data/spec/rails/config/initializers/wrap_parameters.rb +0 -14
  262. data/spec/rails/config/locales/en.yml +0 -24
  263. data/spec/rails/config/routes.rb +0 -16
  264. data/spec/rails/config/secrets.yml +0 -22
  265. data/spec/rails/db/schema.rb +0 -16
  266. data/spec/rails/db/seeds.rb +0 -7
  267. data/spec/rails/lib/assets/.keep +0 -0
  268. data/spec/rails/lib/tasks/.keep +0 -0
  269. data/spec/rails/log/.keep +0 -0
  270. data/spec/rails/public/404.html +0 -67
  271. data/spec/rails/public/422.html +0 -67
  272. data/spec/rails/public/500.html +0 -66
  273. data/spec/rails/public/favicon.ico +0 -0
  274. data/spec/rails/public/robots.txt +0 -5
  275. data/spec/rails/spec/hamlit_spec.rb +0 -123
  276. data/spec/rails/spec/rails_helper.rb +0 -56
  277. data/spec/rails/spec/spec_helper.rb +0 -91
  278. data/spec/rails/vendor/assets/javascripts/.keep +0 -0
  279. data/spec/rails/vendor/assets/stylesheets/.keep +0 -0
  280. data/spec/spec_helper.rb +0 -36
  281. data/spec/spec_helper/document_generator.rb +0 -93
  282. data/spec/spec_helper/render_helper.rb +0 -120
  283. data/spec/spec_helper/test_case.rb +0 -55
@@ -1,97 +0,0 @@
1
- # [silent\_script\_spec.rb:79](/spec/hamlit/engine/silent_script_spec.rb#L79)
2
- ## Input
3
- ```haml
4
- %span
5
- - if false
6
- - elsif false
7
-
8
- ```
9
-
10
- ## Output
11
- ### Haml, Hamlit
12
- ```html
13
- <span>
14
- </span>
15
-
16
- ```
17
-
18
- ### Faml
19
- ```html
20
- SyntaxError: (eval):4: syntax error, unexpected end-of-input, expecting keyword_end
21
- ; _buf << ("</span>\n".freeze); _buf = _buf.join
22
- ^
23
- ```
24
-
25
-
26
- # [silent\_script\_spec.rb:90](/spec/hamlit/engine/silent_script_spec.rb#L90)
27
- ## Input
28
- ```haml
29
- %span
30
- - if false
31
- ng
32
- - else
33
-
34
- ```
35
-
36
- ## Output
37
- ### Haml, Hamlit
38
- ```html
39
- <span>
40
- </span>
41
-
42
- ```
43
-
44
- ### Faml
45
- ```html
46
- SyntaxError: (eval):5: syntax error, unexpected end-of-input, expecting keyword_end
47
- ; _buf << ("</span>\n".freeze); _buf = _buf.join
48
- ^
49
- ```
50
-
51
-
52
- # [silent\_script\_spec.rb:102](/spec/hamlit/engine/silent_script_spec.rb#L102)
53
- ## Input
54
- ```haml
55
- %span
56
- - case
57
- - when false
58
-
59
- ```
60
-
61
- ## Output
62
- ### Haml, Hamlit
63
- ```html
64
- <span>
65
- </span>
66
-
67
- ```
68
-
69
- ### Faml
70
- ```html
71
- SyntaxError: (eval):4: syntax error, unexpected end-of-input, expecting keyword_end
72
- ; _buf << ("</span>\n".freeze); _buf = _buf.join
73
- ^
74
- ```
75
-
76
-
77
- # [silent\_script\_spec.rb:190](/spec/hamlit/engine/silent_script_spec.rb#L190)
78
- ## Input
79
- ```haml
80
- - foo = [',
81
- ']
82
- = foo
83
- ```
84
-
85
- ## Output
86
- ### Haml, Hamlit
87
- ```html
88
- [&quot;, &quot;]
89
-
90
- ```
91
-
92
- ### Faml
93
- ```html
94
- [&quot;,\n &quot;]
95
-
96
- ```
97
-
data/doc/engine/tag.md DELETED
@@ -1,48 +0,0 @@
1
- # [tag\_spec.rb:271](/spec/hamlit/engine/tag_spec.rb#L271)
2
- ## Input
3
- ```haml
4
- %div<
5
- #{'hello'}
6
- world
7
-
8
- ```
9
-
10
- ## Output
11
- ### Haml
12
- ```html
13
- <div>helloworld</div>
14
-
15
- ```
16
-
17
- ### Faml, Hamlit
18
- ```html
19
- <div>hello
20
- world</div>
21
-
22
- ```
23
-
24
-
25
- # [tag\_spec.rb:282](/spec/hamlit/engine/tag_spec.rb#L282)
26
- ## Input
27
- ```haml
28
- .bar<
29
- - 1.times do
30
- = '1'
31
- = '2'
32
-
33
- ```
34
-
35
- ## Output
36
- ### Haml
37
- ```html
38
- <div class='bar'>12</div>
39
-
40
- ```
41
-
42
- ### Faml, Hamlit
43
- ```html
44
- <div class='bar'>1
45
- 2</div>
46
-
47
- ```
48
-
data/doc/engine/text.md DELETED
@@ -1,64 +0,0 @@
1
- # [text\_spec.rb:15](/spec/hamlit/engine/text_spec.rb#L15)
2
- ## Input
3
- ```haml
4
- .
5
- .*
6
- ..
7
- #
8
- #+
9
- ##
10
-
11
- ```
12
-
13
- ## Output
14
- ### Haml
15
- ```html
16
- Haml::SyntaxError: Illegal element: classes and ids must have values.
17
- ```
18
-
19
- ### Faml
20
- ```html
21
- Faml::SyntaxError: Illegal element: classes and ids must have values.
22
- ```
23
-
24
- ### Hamlit
25
- ```html
26
- .
27
- .*
28
- ..
29
- #
30
- #+
31
- ##
32
-
33
- ```
34
-
35
-
36
- # [text\_spec.rb:118](/spec/hamlit/engine/text_spec.rb#L118)
37
- ## Input
38
- ```haml
39
- &nbsp;
40
- \&nbsp;
41
- !hello
42
- \!hello
43
-
44
- ```
45
-
46
- ## Output
47
- ### Haml, Hamlit
48
- ```html
49
- &nbsp;
50
- &nbsp;
51
- !hello
52
- !hello
53
-
54
- ```
55
-
56
- ### Faml
57
- ```html
58
- nbsp;
59
- &nbsp;
60
- hello
61
- !hello
62
-
63
- ```
64
-
data/doc/faml/README.md DELETED
@@ -1,16 +0,0 @@
1
- # Hamlit incompatibilities
2
- This is a document generated from RSpec test cases.
3
- Showing incompatibilities against [Faml](https://github.com/eagletmt/faml).
4
-
5
- ## engine
6
- - [engine/indent\_spec.rb](engine/indent.md)
7
- - [engine/old\_attributes\_spec.rb](engine/old_attributes.md)
8
- - [engine/silent\_script\_spec.rb](engine/silent_script.md)
9
- - [engine/text\_spec.rb](engine/text.md)
10
-
11
-
12
- ## filters
13
- - [filters/erb\_spec.rb](filters/erb.md)
14
- - [filters/javascript\_spec.rb](filters/javascript.md)
15
- - [filters/less\_spec.rb](filters/less.md)
16
- - [filters/plain\_spec.rb](filters/plain.md)
@@ -1,48 +0,0 @@
1
- # [indent\_spec.rb:3](/spec/hamlit/engine/indent_spec.rb#L3)
2
- ## Input
3
- ```haml
4
- %p
5
- %a
6
-
7
- ```
8
-
9
- ## Output
10
- ### Faml
11
- ```html
12
- Faml::IndentTracker::HardTabNotAllowed: Indentation with hard tabs are not allowed :-p
13
- ```
14
-
15
- ### Hamlit
16
- ```html
17
- <p>
18
- <a></a>
19
- </p>
20
-
21
- ```
22
-
23
-
24
- # [indent\_spec.rb:28](/spec/hamlit/engine/indent_spec.rb#L28)
25
- ## Input
26
- ```haml
27
- %p
28
- %span
29
- foo
30
-
31
- ```
32
-
33
- ## Output
34
- ### Faml
35
- ```html
36
- Faml::IndentTracker::HardTabNotAllowed: Indentation with hard tabs are not allowed :-p
37
- ```
38
-
39
- ### Hamlit
40
- ```html
41
- <p>
42
- <span>
43
- foo
44
- </span>
45
- </p>
46
-
47
- ```
48
-
@@ -1,111 +0,0 @@
1
- # [old\_attributes\_spec.rb:43](/spec/hamlit/engine/old_attributes_spec.rb#L43)
2
- ## Input
3
- ```haml
4
- %span{ class: '}}}', id: '{}}' } }{
5
-
6
- ```
7
-
8
- ## Output
9
- ### Faml
10
- ```html
11
- Faml::Compiler::UnparsableRubyCode: Unparsable Ruby code is given to attributes: class: '
12
- ```
13
-
14
- ### Hamlit
15
- ```html
16
- <span class='}}}' id='{}}'>}{</span>
17
-
18
- ```
19
-
20
-
21
- # [old\_attributes\_spec.rb:132](/spec/hamlit/engine/old_attributes_spec.rb#L132)
22
- ## Input
23
- ```haml
24
- .foo{ class: ['bar'] }
25
- .foo{ class: ['bar', 'foo'] }
26
- .foo{ class: ['bar', nil] }
27
- .foo{ class: ['bar', 'baz'] }
28
-
29
- ```
30
-
31
- ## Output
32
- ### Faml
33
- ```html
34
- <div class='bar foo'></div>
35
- <div class='bar foo'></div>
36
- <div class=' bar foo'></div>
37
- <div class='bar baz foo'></div>
38
-
39
- ```
40
-
41
- ### Hamlit
42
- ```html
43
- <div class='bar foo'></div>
44
- <div class='bar foo'></div>
45
- <div class='bar foo'></div>
46
- <div class='bar baz foo'></div>
47
-
48
- ```
49
-
50
-
51
- # [old\_attributes\_spec.rb:211](/spec/hamlit/engine/old_attributes_spec.rb#L211)
52
- ## Input
53
- ```haml
54
- / wontfix: Non-boolean attributes are not escaped for optimization.
55
- - val = false
56
- %a{ href: val }
57
- - val = nil
58
- %a{ href: val }
59
-
60
- / Boolean attributes are escaped correctly.
61
- - val = false
62
- %a{ disabled: val }
63
- - val = nil
64
- %a{ disabled: val }
65
-
66
- ```
67
-
68
- ## Output
69
- ### Faml
70
- ```html
71
- <!-- wontfix: Non-boolean attributes are not escaped for optimization. -->
72
- <a></a>
73
- <a></a>
74
- <!-- Boolean attributes are escaped correctly. -->
75
- <a></a>
76
- <a></a>
77
-
78
- ```
79
-
80
- ### Hamlit
81
- ```html
82
- <!-- wontfix: Non-boolean attributes are not escaped for optimization. -->
83
- <a href='false'></a>
84
- <a href=''></a>
85
- <!-- Boolean attributes are escaped correctly. -->
86
- <a></a>
87
- <a></a>
88
-
89
- ```
90
-
91
-
92
- # [old\_attributes\_spec.rb:283](/spec/hamlit/engine/old_attributes_spec.rb#L283)
93
- ## Input
94
- ```haml
95
- %span{ data: { disable: true } } bar
96
-
97
- ```
98
-
99
- ## Output
100
- ### Faml
101
- ```html
102
- <span data-disable='true'>bar</span>
103
-
104
- ```
105
-
106
- ### Hamlit
107
- ```html
108
- <span data-disable>bar</span>
109
-
110
- ```
111
-
@@ -1,97 +0,0 @@
1
- # [silent\_script\_spec.rb:79](/spec/hamlit/engine/silent_script_spec.rb#L79)
2
- ## Input
3
- ```haml
4
- %span
5
- - if false
6
- - elsif false
7
-
8
- ```
9
-
10
- ## Output
11
- ### Faml
12
- ```html
13
- SyntaxError: (eval):4: syntax error, unexpected end-of-input, expecting keyword_end
14
- ; _buf << ("</span>\n".freeze); _buf = _buf.join
15
- ^
16
- ```
17
-
18
- ### Hamlit
19
- ```html
20
- <span>
21
- </span>
22
-
23
- ```
24
-
25
-
26
- # [silent\_script\_spec.rb:90](/spec/hamlit/engine/silent_script_spec.rb#L90)
27
- ## Input
28
- ```haml
29
- %span
30
- - if false
31
- ng
32
- - else
33
-
34
- ```
35
-
36
- ## Output
37
- ### Faml
38
- ```html
39
- SyntaxError: (eval):5: syntax error, unexpected end-of-input, expecting keyword_end
40
- ; _buf << ("</span>\n".freeze); _buf = _buf.join
41
- ^
42
- ```
43
-
44
- ### Hamlit
45
- ```html
46
- <span>
47
- </span>
48
-
49
- ```
50
-
51
-
52
- # [silent\_script\_spec.rb:102](/spec/hamlit/engine/silent_script_spec.rb#L102)
53
- ## Input
54
- ```haml
55
- %span
56
- - case
57
- - when false
58
-
59
- ```
60
-
61
- ## Output
62
- ### Faml
63
- ```html
64
- SyntaxError: (eval):4: syntax error, unexpected end-of-input, expecting keyword_end
65
- ; _buf << ("</span>\n".freeze); _buf = _buf.join
66
- ^
67
- ```
68
-
69
- ### Hamlit
70
- ```html
71
- <span>
72
- </span>
73
-
74
- ```
75
-
76
-
77
- # [silent\_script\_spec.rb:190](/spec/hamlit/engine/silent_script_spec.rb#L190)
78
- ## Input
79
- ```haml
80
- - foo = [',
81
- ']
82
- = foo
83
- ```
84
-
85
- ## Output
86
- ### Faml
87
- ```html
88
- [&quot;,\n &quot;]
89
-
90
- ```
91
-
92
- ### Hamlit
93
- ```html
94
- [&quot;, &quot;]
95
-
96
- ```
97
-