hamlit 1.5.5 → 1.5.6

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 09c67291b717aed2f4abdb969b241ad01c2b4a86
4
- data.tar.gz: 967a7bbec042fc5cf64d38ee1ddb875cd3924db6
3
+ metadata.gz: 77be0fc87affead60a2cc9cf21fd59b2983cc06c
4
+ data.tar.gz: 88ee1131ab3ab0e9d48ab26389342dd878c41952
5
5
  SHA512:
6
- metadata.gz: 53ff948040ff7cd703fe6ece4553784dd2c27688e4d9d0916bb2b926bbf7f571d82d807887bbc723b700effa0f37f242a2d5704567f0ee70402571378735f00f
7
- data.tar.gz: 2f543243ba2104ae0de56b2d3f17ff4f07fe0364655dead47d0ef4ff79b5d2aff6f87cb585f73c1dd1afdc9a72ec2a4563e703e78894f6002eb1d165b8c7f25f
6
+ metadata.gz: 59c87b3d65976a804e11a4cd297321a528c4bd65c33a49258bd25f4669a49bffb72a251c3b50e908f46b5c7ddc7fbb6297da3825f3f2c8bb604b1883f908c250
7
+ data.tar.gz: 429b1fb44e55ee9f1732d0c4af1e8a7bd8b96e69cd04dc8a16d2cbb8ad0c43a46a8ff3e301bff9d9c8365a5fce83ff9a45bfff51638652253d010aff5468f314
@@ -1,3 +1,8 @@
1
+ ## v1.5.6
2
+
3
+ - Raise error for unbalanced brackets
4
+ - Don't render newline after block script
5
+
1
6
  ## v1.5.5
2
7
 
3
8
  - Support &, &== operator
@@ -5,13 +5,10 @@ $:.unshift(File.join(File.dirname(__FILE__), '..', 'lib'), File.dirname(__FILE__
5
5
  require_relative './context'
6
6
  require 'benchmark/ips'
7
7
 
8
- require 'erb'
9
8
  require 'erubis'
10
9
  require 'faml'
11
10
  require 'haml'
12
11
  require 'slim'
13
- require 'tenjin'
14
- require 'tilt'
15
12
  require 'hamlit'
16
13
 
17
14
  class Benchmarks
@@ -20,32 +17,22 @@ class Benchmarks
20
17
  @benches = []
21
18
  @versions = {}
22
19
 
23
- @erb_code = File.read(File.dirname(__FILE__) + '/view.erb')
24
- @haml_code = File.read(File.dirname(__FILE__) + '/view.haml')
25
- @slim_code = File.read(File.dirname(__FILE__) + '/view.slim')
26
- @rbhtml_path = File.dirname(__FILE__) + '/view.rbhtml'
20
+ @erb_code = File.read(File.dirname(__FILE__) + '/view.erb')
21
+ @haml_code = File.read(File.dirname(__FILE__) + '/view.haml')
22
+ @slim_code = File.read(File.dirname(__FILE__) + '/view.slim')
27
23
 
28
24
  init_compiled_benches
29
25
  end
30
26
 
31
27
  def init_compiled_benches
32
- erb = ERB.new(@erb_code)
33
- erubis = Erubis::Eruby.new(@erb_code)
34
- fast_erubis = Erubis::FastEruby.new(@erb_code)
35
- haml_ugly = Haml::Engine.new(@haml_code, format: :html5, ugly: true)
36
- tenjin = Tenjin::Engine.new.get_template(@rbhtml_path)
37
-
38
28
  context = Context.new
39
29
 
30
+ haml_ugly = Haml::Engine.new(@haml_code, format: :html5, ugly: true)
40
31
  haml_ugly.def_method(context, :run_haml_ugly)
41
32
  context.instance_eval %{
42
- def run_erb; #{erb.src}; end
43
- def run_erubis; #{erubis.src}; end
44
- def run_temple_erb; #{Temple::ERB::Engine.new.call @erb_code}; end
45
- def run_fast_erubis; #{fast_erubis.src}; end
33
+ def run_erubis; #{Erubis::Eruby.new(@erb_code).src}; end
46
34
  def run_slim_ugly; #{Slim::Engine.new.call @slim_code}; end
47
35
  def run_faml; #{Faml::Engine.new.call @haml_code}; end
48
- def run_tenjin; _buf = ''; #{tenjin.script}; end
49
36
  def run_hamlit; #{Hamlit::Engine.new.call @haml_code}; end
50
37
  }
51
38
 
@@ -54,14 +41,6 @@ class Benchmarks
54
41
  bench('slim', Slim::VERSION) { context.run_slim_ugly }
55
42
  bench('faml', Faml::VERSION) { context.run_faml }
56
43
  bench('haml', Haml::VERSION) { context.run_haml_ugly }
57
-
58
- if ENV['ALL']
59
- erb_version = ERB.version.match(/\[([^ ]+)/)[1]
60
- bench('tenjin', Tenjin::RELEASE) { context.run_tenjin }
61
- bench('fast erubis', Erubis::VERSION) { context.run_fast_erubis }
62
- bench('temple erb', Temple::VERSION) { context.run_temple_erb }
63
- bench('erb', erb_version) { context.run_erb }
64
- end
65
44
  end
66
45
 
67
46
  def run
@@ -5,6 +5,5 @@ Showing incompatibilities against [Haml](https://github.com/haml/haml) and [Faml
5
5
 
6
6
  ## engine
7
7
 
8
- - [engine/old\_attributes\_spec.rb](https://github.com/k0kubun/hamlit/blob/master/doc/engine/old_attributes.md)
9
- - [engine/script\_spec.rb](https://github.com/k0kubun/hamlit/blob/master/doc/engine/script.md)
10
- - [engine/text\_spec.rb](https://github.com/k0kubun/hamlit/blob/master/doc/engine/text.md)
8
+ - [engine/old\_attributes\_spec.rb](engine/old_attributes.md)
9
+ - [engine/text\_spec.rb](engine/text.md)
@@ -1,4 +1,4 @@
1
- # [old\_attributes\_spec.rb:43](https://github.com/k0kubun/hamlit/blob/master/spec/hamlit/engine/old_attributes_spec.rb#L43)
1
+ # [old\_attributes\_spec.rb:43](/spec/hamlit/engine/old_attributes_spec.rb#L43)
2
2
  ## Input
3
3
  ```haml
4
4
  %span{ class: '}}}', id: '{}}' } }{
@@ -26,7 +26,7 @@ Faml::Compiler::UnparsableRubyCode: Unparsable Ruby code is given to attributes:
26
26
  ```
27
27
 
28
28
 
29
- # [old\_attributes\_spec.rb:201](https://github.com/k0kubun/hamlit/blob/master/spec/hamlit/engine/old_attributes_spec.rb#L201)
29
+ # [old\_attributes\_spec.rb:201](/spec/hamlit/engine/old_attributes_spec.rb#L201)
30
30
  ## Input
31
31
  ```haml
32
32
  / wontfix: Non-boolean attributes are not escaped for optimization.
@@ -1,4 +1,4 @@
1
- # [text\_spec.rb:15](https://github.com/k0kubun/hamlit/blob/master/spec/hamlit/engine/text_spec.rb#L15)
1
+ # [text\_spec.rb:15](/spec/hamlit/engine/text_spec.rb#L15)
2
2
  ## Input
3
3
  ```haml
4
4
  .
@@ -33,7 +33,7 @@ Haml::SyntaxError: Illegal element: classes and ids must have values.
33
33
  ```
34
34
 
35
35
 
36
- # [text\_spec.rb:99](https://github.com/k0kubun/hamlit/blob/master/spec/hamlit/engine/text_spec.rb#L99)
36
+ # [text\_spec.rb:99](/spec/hamlit/engine/text_spec.rb#L99)
37
37
  ## Input
38
38
  ```haml
39
39
   
@@ -62,27 +62,3 @@ hello
62
62
 
63
63
  ```
64
64
 
65
-
66
- # [text\_spec.rb:175](https://github.com/k0kubun/hamlit/blob/master/spec/hamlit/engine/text_spec.rb#L175)
67
- ## Input
68
- ```haml
69
- 1#{2
70
- ```
71
-
72
- ## Output
73
- ### Haml
74
- ```html
75
- Haml::SyntaxError: Unbalanced brackets.
76
- ```
77
-
78
- ### Faml
79
- ```html
80
- Faml::TextCompiler::InvalidInterpolation: 1#{2
81
- ```
82
-
83
- ### Hamlit
84
- ```html
85
- 1#{2
86
-
87
- ```
88
-
@@ -1,4 +1,4 @@
1
- # [coffee\_spec.rb:3](https://github.com/k0kubun/hamlit/blob/master/spec/hamlit/filters/coffee_spec.rb#L3)
1
+ # [coffee\_spec.rb:3](/spec/hamlit/filters/coffee_spec.rb#L3)
2
2
  ## Input
3
3
  ```haml
4
4
  :coffee
@@ -40,7 +40,7 @@
40
40
  ```
41
41
 
42
42
 
43
- # [coffee\_spec.rb:22](https://github.com/k0kubun/hamlit/blob/master/spec/hamlit/filters/coffee_spec.rb#L22)
43
+ # [coffee\_spec.rb:22](/spec/hamlit/filters/coffee_spec.rb#L22)
44
44
  ## Input
45
45
  ```haml
46
46
  :coffee
@@ -82,7 +82,7 @@
82
82
  ```
83
83
 
84
84
 
85
- # [coffee\_spec.rb:41](https://github.com/k0kubun/hamlit/blob/master/spec/hamlit/filters/coffee_spec.rb#L41)
85
+ # [coffee\_spec.rb:41](/spec/hamlit/filters/coffee_spec.rb#L41)
86
86
  ## Input
87
87
  ```haml
88
88
  :coffee
@@ -1,4 +1,4 @@
1
- # [erb\_spec.rb:3](https://github.com/k0kubun/hamlit/blob/master/spec/hamlit/filters/erb_spec.rb#L3)
1
+ # [erb\_spec.rb:3](/spec/hamlit/filters/erb_spec.rb#L3)
2
2
  ## Input
3
3
  ```haml
4
4
  :erb
@@ -1,4 +1,4 @@
1
- # [javascript\_spec.rb:3](https://github.com/k0kubun/hamlit/blob/master/spec/hamlit/filters/javascript_spec.rb#L3)
1
+ # [javascript\_spec.rb:3](/spec/hamlit/filters/javascript_spec.rb#L3)
2
2
  ## Input
3
3
  ```haml
4
4
  before
@@ -36,7 +36,7 @@ after
36
36
  ```
37
37
 
38
38
 
39
- # [javascript\_spec.rb:32](https://github.com/k0kubun/hamlit/blob/master/spec/hamlit/filters/javascript_spec.rb#L32)
39
+ # [javascript\_spec.rb:32](/spec/hamlit/filters/javascript_spec.rb#L32)
40
40
  ## Input
41
41
  ```haml
42
42
  :javascript
@@ -1,4 +1,4 @@
1
- # [less\_spec.rb:3](https://github.com/k0kubun/hamlit/blob/master/spec/hamlit/filters/less_spec.rb#L3)
1
+ # [less\_spec.rb:3](/spec/hamlit/filters/less_spec.rb#L3)
2
2
  ## Input
3
3
  ```haml
4
4
  :less
@@ -29,7 +29,7 @@ Faml::FilterCompilers::NotFound: Unable to find compiler for less
29
29
  ```
30
30
 
31
31
 
32
- # [less\_spec.rb:22](https://github.com/k0kubun/hamlit/blob/master/spec/hamlit/filters/less_spec.rb#L22)
32
+ # [less\_spec.rb:22](/spec/hamlit/filters/less_spec.rb#L22)
33
33
  ## Input
34
34
  ```haml
35
35
  :less
@@ -1,4 +1,4 @@
1
- # [markdown\_spec.rb:15](https://github.com/k0kubun/hamlit/blob/master/spec/hamlit/filters/markdown_spec.rb#L15)
1
+ # [markdown\_spec.rb:15](/spec/hamlit/filters/markdown_spec.rb#L15)
2
2
  ## Input
3
3
  ```haml
4
4
  - project = '<Hamlit>'
@@ -1,4 +1,4 @@
1
- # [plain\_spec.rb:3](https://github.com/k0kubun/hamlit/blob/master/spec/hamlit/filters/plain_spec.rb#L3)
1
+ # [plain\_spec.rb:3](/spec/hamlit/filters/plain_spec.rb#L3)
2
2
  ## Input
3
3
  ```haml
4
4
  :plain
@@ -1,4 +1,4 @@
1
- # [sass\_spec.rb:3](https://github.com/k0kubun/hamlit/blob/master/spec/hamlit/filters/sass_spec.rb#L3)
1
+ # [sass\_spec.rb:3](/spec/hamlit/filters/sass_spec.rb#L3)
2
2
  ## Input
3
3
  ```haml
4
4
  :sass
@@ -31,7 +31,7 @@
31
31
  ```
32
32
 
33
33
 
34
- # [sass\_spec.rb:19](https://github.com/k0kubun/hamlit/blob/master/spec/hamlit/filters/sass_spec.rb#L19)
34
+ # [sass\_spec.rb:19](/spec/hamlit/filters/sass_spec.rb#L19)
35
35
  ## Input
36
36
  ```haml
37
37
  :sass
@@ -1,4 +1,4 @@
1
- # [scss\_spec.rb:3](https://github.com/k0kubun/hamlit/blob/master/spec/hamlit/filters/scss_spec.rb#L3)
1
+ # [scss\_spec.rb:3](/spec/hamlit/filters/scss_spec.rb#L3)
2
2
  ## Input
3
3
  ```haml
4
4
  :scss
@@ -34,7 +34,7 @@
34
34
  ```
35
35
 
36
36
 
37
- # [scss\_spec.rb:21](https://github.com/k0kubun/hamlit/blob/master/spec/hamlit/filters/scss_spec.rb#L21)
37
+ # [scss\_spec.rb:21](/spec/hamlit/filters/scss_spec.rb#L21)
38
38
  ## Input
39
39
  ```haml
40
40
  :scss
@@ -36,7 +36,6 @@ Gem::Specification.new do |spec|
36
36
  spec.add_development_dependency "rspec", ">= 3"
37
37
  spec.add_development_dependency "sass"
38
38
  spec.add_development_dependency "slim"
39
- spec.add_development_dependency "tenjin"
40
39
  spec.add_development_dependency "therubyracer"
41
40
  spec.add_development_dependency "unindent"
42
41
  end
@@ -1,3 +1,4 @@
1
+ require 'hamlit/concerns/error'
1
2
  require 'hamlit/concerns/escapable'
2
3
  require 'hamlit/concerns/included'
3
4
  require 'hamlit/concerns/string_interpolation'
@@ -6,6 +7,7 @@ module Hamlit
6
7
  module Compilers
7
8
  module Text
8
9
  extend Concerns::Included
10
+ include Concerns::Error
9
11
  include Concerns::StringInterpolation
10
12
 
11
13
  included do
@@ -20,6 +22,7 @@ module Hamlit
20
22
  # Return static and dynamic temple ast.
21
23
  # It splits expression to optimize because string interpolation is slow.
22
24
  def on_haml_text(exp, escape_html = true)
25
+ return syntax_error('Unbalanced brackets.') unless valid_interpolation?(exp)
23
26
  return static_text(exp) unless contains_interpolation?(exp)
24
27
 
25
28
  marker = find_string_marker(exp)
@@ -62,6 +65,24 @@ module Hamlit
62
65
 
63
66
  private
64
67
 
68
+ def valid_interpolation?(exp)
69
+ marker = find_string_marker(exp)
70
+ return true unless marker # give up checking
71
+
72
+ literal = literalify_string(exp, marker)
73
+ open_count = 0
74
+
75
+ Ripper.lex(literal).each do |(row, col), type, str|
76
+ case type
77
+ when :on_embexpr_beg
78
+ open_count += 1
79
+ when :on_embexpr_end
80
+ open_count -= 1
81
+ end
82
+ end
83
+ open_count == 0
84
+ end
85
+
65
86
  # :static can't treat backslash properly
66
87
  def static_text(exp)
67
88
  return [:dynamic, string_literal(exp)] if exp.include?('\\')
@@ -121,8 +121,9 @@ module Hamlit
121
121
 
122
122
  def skip_newline?(ast)
123
123
  SKIP_NEWLINE_EXPS.include?(ast.first) ||
124
- (ast[0..1] == [:haml, :doctype]) ||
125
124
  newline_skip_filter?(ast) ||
125
+ doctype?(ast) ||
126
+ block_script?(ast) ||
126
127
  outer_remove?
127
128
  end
128
129
 
@@ -134,5 +135,13 @@ module Hamlit
134
135
  return str if str.is_a?(StringScanner)
135
136
  StringScanner.new(str)
136
137
  end
138
+
139
+ def doctype?(ast)
140
+ ast[0..1] == [:haml, :doctype]
141
+ end
142
+
143
+ def block_script?(ast)
144
+ ast[0..1] == [:haml, :script]
145
+ end
137
146
  end
138
147
  end
@@ -1,3 +1,3 @@
1
1
  module Hamlit
2
- VERSION = "1.5.5"
2
+ VERSION = "1.5.6"
3
3
  end
@@ -52,5 +52,12 @@ describe Hamlit::Engine do
52
52
  HAML
53
53
  to raise_error(Hamlit::SyntaxError, 'Inconsistent indentation: 2 tabs used for indentation, but the rest of the document was indented using 2 spaces.')
54
54
  end
55
+
56
+ it 'raises syntax error for an inconsistent indentation' do
57
+ expect { render_string(<<-'HAML'.unindent) }.
58
+ 1#{2
59
+ HAML
60
+ to raise_error(Hamlit::SyntaxError, 'Unbalanced brackets.')
61
+ end
55
62
  end
56
63
  end
@@ -39,7 +39,7 @@ describe Hamlit::Engine do
39
39
  end
40
40
 
41
41
  it 'renders block script' do
42
- assert_render(<<-HAML, <<-HTML, compatible_only: [])
42
+ assert_render(<<-HAML, <<-HTML)
43
43
  = 3.times do |i|
44
44
  = i
45
45
  4
@@ -47,21 +47,19 @@ describe Hamlit::Engine do
47
47
  0
48
48
  1
49
49
  2
50
- 3
51
- 4
50
+ 34
52
51
  HTML
53
52
  end
54
53
 
55
54
  it 'renders tag internal block script' do
56
- assert_render(<<-HAML, <<-HTML, compatible_only: [])
55
+ assert_render(<<-HAML, <<-HTML)
57
56
  %span
58
57
  = 1.times do |i|
59
58
  = i
60
59
  HAML
61
60
  <span>
62
61
  0
63
- 1
64
- </span>
62
+ 1</span>
65
63
  HTML
66
64
  end
67
65
 
@@ -85,7 +83,7 @@ describe Hamlit::Engine do
85
83
  end
86
84
 
87
85
  it 'renders !=' do
88
- assert_render(<<-HAML, <<-HTML, escape_html: true, compatible_only: [])
86
+ assert_render(<<-HAML, <<-HTML.rstrip, escape_html: true)
89
87
  != '<"&>'
90
88
  != '<"&>'.tap do |str|
91
89
  -# no operation
@@ -96,7 +94,7 @@ describe Hamlit::Engine do
96
94
  end
97
95
 
98
96
  it 'renders &=' do
99
- assert_render(<<-HAML, <<-HTML, escape_html: false, compatible_only: [])
97
+ assert_render(<<-HAML, <<-HTML.rstrip, escape_html: false)
100
98
  &= '<"&>'
101
99
  &= '<"&>'.tap do |str|
102
100
  -# no operation
@@ -237,7 +237,7 @@ describe Hamlit::Engine do
237
237
  end
238
238
 
239
239
  it 'removes whitespace inside script inside silent script' do
240
- assert_render(<<-HAML, <<-HTML, compatible_only: [:haml, :faml])
240
+ assert_render(<<-HAML, <<-HTML)
241
241
  .bar<
242
242
  - 3.times do
243
243
  = 'foo'
@@ -247,7 +247,7 @@ describe Hamlit::Engine do
247
247
  end
248
248
 
249
249
  it 'removes whitespace inside script recursively' do
250
- assert_render(<<-HAML, <<-HTML, compatible_only: [:haml, :faml])
250
+ assert_render(<<-HAML, <<-HTML)
251
251
  .foo<
252
252
  - 1.times do
253
253
  = 2.times do
@@ -173,7 +173,6 @@ describe Hamlit::Engine do
173
173
  specify { assert_render('#{}', "\n") }
174
174
  specify { assert_render('1#{}', "1\n") }
175
175
  specify { assert_render('1#{2}', "12\n") }
176
- specify { assert_render('1#{2', "1\#{2\n", error_with: [:haml, :faml]) }
177
176
  specify { assert_render('}#{1}', "}1\n") }
178
177
  specify { assert_render('#{1}2', "12\n") }
179
178
  specify { assert_render('1#{ "2#{3}4" }5', "12345\n") }
@@ -46,8 +46,7 @@ describe 'Hamlit rails integration', type: :request do
46
46
  expect(response.body).to include(<<-HTML.strip_heredoc)
47
47
  <i>
48
48
  &lt;&gt;
49
- &lt;&gt;
50
- </i>
49
+ &lt;&gt;</i>
51
50
  HTML
52
51
  end
53
52
  end
@@ -165,8 +165,7 @@ class TestCase < Struct.new(:file, :dir, :lineno, :src_haml, :haml_html, :faml_h
165
165
  tests.group_by(&:doc_path).each do |path, tests|
166
166
  test = tests.first
167
167
  file_path = File.join(test.dir, test.file)
168
- base_url = 'https://github.com/k0kubun/hamlit/blob/master/doc/'
169
- table_of_contents << "\n- [#{escape_markdown(file_path)}](#{File.join(base_url, path)})"
168
+ table_of_contents << "\n- [#{escape_markdown(file_path)}](#{path})"
170
169
  end
171
170
  table_of_contents << "\n"
172
171
  end
@@ -192,10 +191,10 @@ class TestCase < Struct.new(:file, :dir, :lineno, :src_haml, :haml_html, :faml_h
192
191
  end
193
192
 
194
193
  def document
195
- base_url = 'https://github.com/k0kubun/hamlit/blob/master/spec/hamlit'
196
- url = File.join(base_url, dir, file)
194
+ base_path = '/spec/hamlit'
195
+ path = File.join(base_path, dir, file)
197
196
  doc = <<-DOC
198
- # [#{escape_markdown("#{file}:#{lineno}")}](#{url}#L#{lineno})
197
+ # [#{escape_markdown("#{file}:#{lineno}")}](#{path}#L#{lineno})
199
198
  ## Input
200
199
  ```haml
201
200
  #{src_haml}
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hamlit
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.5
4
+ version: 1.5.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Takashi Kokubun
@@ -248,20 +248,6 @@ dependencies:
248
248
  - - ">="
249
249
  - !ruby/object:Gem::Version
250
250
  version: '0'
251
- - !ruby/object:Gem::Dependency
252
- name: tenjin
253
- requirement: !ruby/object:Gem::Requirement
254
- requirements:
255
- - - ">="
256
- - !ruby/object:Gem::Version
257
- version: '0'
258
- type: :development
259
- prerelease: false
260
- version_requirements: !ruby/object:Gem::Requirement
261
- requirements:
262
- - - ">="
263
- - !ruby/object:Gem::Version
264
- version: '0'
265
251
  - !ruby/object:Gem::Dependency
266
252
  name: therubyracer
267
253
  requirement: !ruby/object:Gem::Requirement
@@ -310,12 +296,10 @@ files:
310
296
  - benchmarks/context.rb
311
297
  - benchmarks/view.erb
312
298
  - benchmarks/view.haml
313
- - benchmarks/view.rbhtml
314
299
  - benchmarks/view.slim
315
300
  - bin/hamlit
316
301
  - doc/README.md
317
302
  - doc/engine/old_attributes.md
318
- - doc/engine/script.md
319
303
  - doc/engine/text.md
320
304
  - doc/filters/coffee.md
321
305
  - doc/filters/erb.md
@@ -1,23 +0,0 @@
1
- <!DOCTYPE HTML>
2
-
3
- <html>
4
- <head>
5
- <title>Simple Benchmark</title>
6
- </head>
7
- <body>
8
- <h1>#{ header }</h1>
9
- <?rb unless item.empty? ?>
10
- <ul>
11
- <?rb for i in item ?>
12
- <?rb if i[:current] ?>
13
- <li><strong>#{ i[:name] }</strong></li>
14
- <?rb else ?>
15
- <li><a href="#{ i[:url] }">#{ i[:name] }</a></li>
16
- <?rb end ?>
17
- <?rb end ?>
18
- </ul>
19
- <?rb else ?>
20
- <p>The list is empty.</p>
21
- <?rb end ?>
22
- </body>
23
- </html>
@@ -1,105 +0,0 @@
1
- # [script\_spec.rb:41](https://github.com/k0kubun/hamlit/blob/master/spec/hamlit/engine/script_spec.rb#L41)
2
- ## Input
3
- ```haml
4
- = 3.times do |i|
5
- = i
6
- 4
7
-
8
- ```
9
-
10
- ## Output
11
- ### Haml, Faml
12
- ```html
13
- 0
14
- 1
15
- 2
16
- 34
17
-
18
- ```
19
-
20
- ### Hamlit
21
- ```html
22
- 0
23
- 1
24
- 2
25
- 3
26
- 4
27
-
28
- ```
29
-
30
-
31
- # [script\_spec.rb:55](https://github.com/k0kubun/hamlit/blob/master/spec/hamlit/engine/script_spec.rb#L55)
32
- ## Input
33
- ```haml
34
- %span
35
- = 1.times do |i|
36
- = i
37
-
38
- ```
39
-
40
- ## Output
41
- ### Haml, Faml
42
- ```html
43
- <span>
44
- 0
45
- 1</span>
46
-
47
- ```
48
-
49
- ### Hamlit
50
- ```html
51
- <span>
52
- 0
53
- 1
54
- </span>
55
-
56
- ```
57
-
58
-
59
- # [script\_spec.rb:87](https://github.com/k0kubun/hamlit/blob/master/spec/hamlit/engine/script_spec.rb#L87)
60
- ## Input
61
- ```haml
62
- != '<"&>'
63
- != '<"&>'.tap do |str|
64
- -# no operation
65
-
66
- ```
67
-
68
- ## Output
69
- ### Haml, Faml
70
- ```html
71
- <"&>
72
- <"&>
73
- ```
74
-
75
- ### Hamlit
76
- ```html
77
- <"&>
78
- <"&>
79
-
80
- ```
81
-
82
-
83
- # [script\_spec.rb:98](https://github.com/k0kubun/hamlit/blob/master/spec/hamlit/engine/script_spec.rb#L98)
84
- ## Input
85
- ```haml
86
- &= '<"&>'
87
- &= '<"&>'.tap do |str|
88
- -# no operation
89
-
90
- ```
91
-
92
- ## Output
93
- ### Haml, Faml
94
- ```html
95
- &lt;&quot;&amp;&gt;
96
- &lt;&quot;&amp;&gt;
97
- ```
98
-
99
- ### Hamlit
100
- ```html
101
- &lt;&quot;&amp;&gt;
102
- &lt;&quot;&amp;&gt;
103
-
104
- ```
105
-