haml 4.0.7 → 5.2.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.github/workflows/test.yml +36 -0
- data/.gitignore +19 -0
- data/.gitmodules +3 -0
- data/.yardopts +2 -3
- data/CHANGELOG.md +146 -4
- data/FAQ.md +4 -14
- data/Gemfile +16 -0
- data/MIT-LICENSE +2 -2
- data/README.md +90 -47
- data/REFERENCE.md +160 -74
- data/Rakefile +44 -63
- data/TODO +24 -0
- data/benchmark.rb +70 -0
- data/haml.gemspec +45 -0
- data/lib/haml/.gitattributes +1 -0
- data/lib/haml/attribute_builder.rb +219 -0
- data/lib/haml/attribute_compiler.rb +237 -0
- data/lib/haml/attribute_parser.rb +150 -0
- data/lib/haml/buffer.rb +12 -175
- data/lib/haml/compiler.rb +110 -320
- data/lib/haml/engine.rb +34 -41
- data/lib/haml/error.rb +28 -24
- data/lib/haml/escapable.rb +77 -0
- data/lib/haml/exec.rb +38 -20
- data/lib/haml/filters.rb +22 -27
- data/lib/haml/generator.rb +42 -0
- data/lib/haml/helpers/action_view_extensions.rb +4 -2
- data/lib/haml/helpers/action_view_mods.rb +45 -60
- data/lib/haml/helpers/action_view_xss_mods.rb +2 -0
- data/lib/haml/helpers/safe_erubi_template.rb +20 -0
- data/lib/haml/helpers/safe_erubis_template.rb +5 -1
- data/lib/haml/helpers/xss_mods.rb +23 -13
- data/lib/haml/helpers.rb +134 -89
- data/lib/haml/options.rb +63 -69
- data/lib/haml/parser.rb +319 -227
- data/lib/haml/plugin.rb +54 -0
- data/lib/haml/railtie.rb +43 -12
- data/lib/haml/sass_rails_filter.rb +18 -4
- data/lib/haml/template/options.rb +13 -2
- data/lib/haml/template.rb +13 -6
- data/lib/haml/temple_engine.rb +124 -0
- data/lib/haml/temple_line_counter.rb +30 -0
- data/lib/haml/util.rb +83 -202
- data/lib/haml/version.rb +3 -1
- data/lib/haml.rb +2 -0
- data/yard/default/.gitignore +1 -0
- data/yard/default/fulldoc/html/css/common.sass +15 -0
- data/yard/default/layout/html/footer.erb +12 -0
- metadata +73 -115
- data/lib/haml/template/plugin.rb +0 -41
- data/test/engine_test.rb +0 -2013
- data/test/erb/_av_partial_1.erb +0 -12
- data/test/erb/_av_partial_2.erb +0 -8
- data/test/erb/action_view.erb +0 -62
- data/test/erb/standard.erb +0 -55
- data/test/filters_test.rb +0 -254
- data/test/gemfiles/Gemfile.rails-3.0.x +0 -5
- data/test/gemfiles/Gemfile.rails-3.1.x +0 -6
- data/test/gemfiles/Gemfile.rails-3.2.x +0 -5
- data/test/gemfiles/Gemfile.rails-4.0.x +0 -5
- data/test/haml-spec/LICENSE +0 -14
- data/test/haml-spec/README.md +0 -106
- data/test/haml-spec/lua_haml_spec.lua +0 -38
- data/test/haml-spec/perl_haml_test.pl +0 -81
- data/test/haml-spec/ruby_haml_test.rb +0 -23
- data/test/haml-spec/tests.json +0 -660
- data/test/helper_test.rb +0 -583
- data/test/markaby/standard.mab +0 -52
- data/test/mocks/article.rb +0 -6
- data/test/parser_test.rb +0 -105
- data/test/results/content_for_layout.xhtml +0 -12
- data/test/results/eval_suppressed.xhtml +0 -9
- data/test/results/helpers.xhtml +0 -70
- data/test/results/helpful.xhtml +0 -10
- data/test/results/just_stuff.xhtml +0 -70
- data/test/results/list.xhtml +0 -12
- data/test/results/nuke_inner_whitespace.xhtml +0 -40
- data/test/results/nuke_outer_whitespace.xhtml +0 -148
- data/test/results/original_engine.xhtml +0 -20
- data/test/results/partial_layout.xhtml +0 -5
- data/test/results/partial_layout_erb.xhtml +0 -5
- data/test/results/partials.xhtml +0 -21
- data/test/results/render_layout.xhtml +0 -3
- data/test/results/silent_script.xhtml +0 -74
- data/test/results/standard.xhtml +0 -162
- data/test/results/tag_parsing.xhtml +0 -23
- data/test/results/very_basic.xhtml +0 -5
- data/test/results/whitespace_handling.xhtml +0 -90
- data/test/template_test.rb +0 -354
- data/test/templates/_av_partial_1.haml +0 -9
- data/test/templates/_av_partial_1_ugly.haml +0 -9
- data/test/templates/_av_partial_2.haml +0 -5
- data/test/templates/_av_partial_2_ugly.haml +0 -5
- data/test/templates/_layout.erb +0 -3
- data/test/templates/_layout_for_partial.haml +0 -3
- data/test/templates/_partial.haml +0 -8
- data/test/templates/_text_area.haml +0 -3
- data/test/templates/_text_area_helper.html.haml +0 -4
- data/test/templates/action_view.haml +0 -47
- data/test/templates/action_view_ugly.haml +0 -47
- data/test/templates/breakage.haml +0 -8
- data/test/templates/content_for_layout.haml +0 -8
- data/test/templates/eval_suppressed.haml +0 -11
- data/test/templates/helpers.haml +0 -55
- data/test/templates/helpful.haml +0 -11
- data/test/templates/just_stuff.haml +0 -85
- data/test/templates/list.haml +0 -12
- data/test/templates/nuke_inner_whitespace.haml +0 -32
- data/test/templates/nuke_outer_whitespace.haml +0 -144
- data/test/templates/original_engine.haml +0 -17
- data/test/templates/partial_layout.haml +0 -3
- data/test/templates/partial_layout_erb.erb +0 -4
- data/test/templates/partialize.haml +0 -1
- data/test/templates/partials.haml +0 -12
- data/test/templates/render_layout.haml +0 -2
- data/test/templates/silent_script.haml +0 -45
- data/test/templates/standard.haml +0 -43
- data/test/templates/standard_ugly.haml +0 -43
- data/test/templates/tag_parsing.haml +0 -21
- data/test/templates/very_basic.haml +0 -4
- data/test/templates/whitespace_handling.haml +0 -87
- data/test/test_helper.rb +0 -81
- data/test/util_test.rb +0 -63
data/test/parser_test.rb
DELETED
@@ -1,105 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
module Haml
|
4
|
-
class ParserTest < MiniTest::Unit::TestCase
|
5
|
-
|
6
|
-
test "should raise error for 'else' at wrong indent level" do
|
7
|
-
begin
|
8
|
-
parse("- if true\n #first\n text\n - else\n #second")
|
9
|
-
flunk("Should have raised a Haml::SyntaxError")
|
10
|
-
rescue SyntaxError => e
|
11
|
-
assert_equal Error.message(:bad_script_indent, 'else', 0, 1), e.message
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
test "should raise error for 'elsif' at wrong indent level" do
|
16
|
-
begin
|
17
|
-
parse("- if true\n #first\n text\n - elsif false\n #second")
|
18
|
-
flunk("Should have raised a Haml::SyntaxError")
|
19
|
-
rescue SyntaxError => e
|
20
|
-
assert_equal Error.message(:bad_script_indent, 'elsif', 0, 1), e.message
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
test "should raise error for 'else' at wrong indent level after unless" do
|
25
|
-
begin
|
26
|
-
parse("- unless true\n #first\n text\n - else\n #second")
|
27
|
-
flunk("Should have raised a Haml::SyntaxError")
|
28
|
-
rescue SyntaxError => e
|
29
|
-
assert_equal Error.message(:bad_script_indent, 'else', 0, 1), e.message
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
test "should raise syntax error for else with no if" do
|
34
|
-
begin
|
35
|
-
parse("- else\n 'foo'")
|
36
|
-
flunk("Should have raised a Haml::SyntaxError")
|
37
|
-
rescue SyntaxError => e
|
38
|
-
assert_equal Error.message(:missing_if, 'else'), e.message
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
test "should raise syntax error for nested else with no" do
|
43
|
-
begin
|
44
|
-
parse("#foo\n - else\n 'foo'")
|
45
|
-
flunk("Should have raised a Haml::SyntaxError")
|
46
|
-
rescue SyntaxError => e
|
47
|
-
assert_equal Error.message(:missing_if, 'else'), e.message
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
test "else after if containing case is accepted" do
|
52
|
-
# see issue 572
|
53
|
-
begin
|
54
|
-
parse "- if true\n - case @foo\n - when 1\n bar\n- else\n bar"
|
55
|
-
assert true
|
56
|
-
rescue SyntaxError
|
57
|
-
flunk 'else clause after if containing case should be accepted'
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
test "else after if containing unless is accepted" do
|
62
|
-
begin
|
63
|
-
parse "- if true\n - unless @foo\n bar\n- else\n bar"
|
64
|
-
assert true
|
65
|
-
rescue SyntaxError
|
66
|
-
flunk 'else clause after if containing unless should be accepted'
|
67
|
-
end
|
68
|
-
end
|
69
|
-
|
70
|
-
test "loud script with else is accepted" do
|
71
|
-
begin
|
72
|
-
parse "= if true\n - 'A'\n-else\n - 'B'"
|
73
|
-
assert true
|
74
|
-
rescue SyntaxError
|
75
|
-
flunk 'loud script (=) should allow else'
|
76
|
-
end
|
77
|
-
end
|
78
|
-
|
79
|
-
test "else after nested loud script is accepted" do
|
80
|
-
begin
|
81
|
-
parse "-if true\n =if true\n - 'A'\n-else\n B"
|
82
|
-
assert true
|
83
|
-
rescue SyntaxError
|
84
|
-
flunk 'else after nested loud script should be accepted'
|
85
|
-
end
|
86
|
-
end
|
87
|
-
|
88
|
-
test "case with indented whens should allow else" do
|
89
|
-
begin
|
90
|
-
parse "- foo = 1\n-case foo\n -when 1\n A\n -else\n B"
|
91
|
-
assert true
|
92
|
-
rescue SyntaxError
|
93
|
-
flunk 'case with indented whens should allow else'
|
94
|
-
end
|
95
|
-
end
|
96
|
-
|
97
|
-
private
|
98
|
-
|
99
|
-
def parse(haml, options = nil)
|
100
|
-
options ||= Options.new
|
101
|
-
parser = Parser.new(haml, options)
|
102
|
-
parser.parse
|
103
|
-
end
|
104
|
-
end
|
105
|
-
end
|
@@ -1,12 +0,0 @@
|
|
1
|
-
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
2
|
-
<html>
|
3
|
-
<head></head>
|
4
|
-
<body>
|
5
|
-
<div id='yieldy'>
|
6
|
-
Lorem ipsum dolor sit amet
|
7
|
-
</div>
|
8
|
-
<div id='nosym'>
|
9
|
-
Lorem ipsum dolor sit amet
|
10
|
-
</div>
|
11
|
-
</body>
|
12
|
-
</html>
|
data/test/results/helpers.xhtml
DELETED
@@ -1,70 +0,0 @@
|
|
1
|
-
&&&&&&&&&&&
|
2
|
-
<div>
|
3
|
-
<p class='title'>Title</p>
|
4
|
-
<p class='text'>
|
5
|
-
Woah this is really crazy
|
6
|
-
I mean wow,
|
7
|
-
man.
|
8
|
-
</p>
|
9
|
-
</div>
|
10
|
-
<div>
|
11
|
-
<p class='title'>Title</p>
|
12
|
-
<p class='text'>
|
13
|
-
Woah this is really crazy
|
14
|
-
I mean wow,
|
15
|
-
man.
|
16
|
-
</p>
|
17
|
-
</div>
|
18
|
-
<div>
|
19
|
-
<p class='title'>Title</p>
|
20
|
-
<p class='text'>
|
21
|
-
Woah this is really crazy
|
22
|
-
I mean wow,
|
23
|
-
man.
|
24
|
-
</p>
|
25
|
-
</div>
|
26
|
-
<p>foo</p>
|
27
|
-
<p>reeeeeeeeeeeeeeeeeeeeeeeeeeeeeeally loooooooooooooooooong</p>
|
28
|
-
<div class='woah'>
|
29
|
-
<div id='funky'>
|
30
|
-
<div>
|
31
|
-
<h1>Big!</h1>
|
32
|
-
<p>Small</p>
|
33
|
-
<!-- Invisible -->
|
34
|
-
</div>
|
35
|
-
<div class='dilly'>
|
36
|
-
<p>foo</p>
|
37
|
-
<h1>bar</h1>
|
38
|
-
</div>
|
39
|
-
</div>
|
40
|
-
(<strong>parentheses!</strong>)
|
41
|
-
</div>
|
42
|
-
*<span class='small'>Not really</span>
|
43
|
-
click
|
44
|
-
<a href='thing'>here</a>.
|
45
|
-
<p>baz</p>
|
46
|
-
<p>boom</p>
|
47
|
-
foo
|
48
|
-
<li><a href='http://www.google.com'>google</a></li>
|
49
|
-
<p>
|
50
|
-
foo
|
51
|
-
<div>
|
52
|
-
bar
|
53
|
-
</div>
|
54
|
-
boom
|
55
|
-
baz
|
56
|
-
boom, again
|
57
|
-
</p>
|
58
|
-
<table>
|
59
|
-
<tr>
|
60
|
-
<td class='cell'>
|
61
|
-
<strong>strong!</strong>
|
62
|
-
data
|
63
|
-
</td>
|
64
|
-
<td>
|
65
|
-
more_data
|
66
|
-
</td>
|
67
|
-
</tr>
|
68
|
-
</table>
|
69
|
-
<hr />
|
70
|
-
<div></div>
|
data/test/results/helpful.xhtml
DELETED
@@ -1,10 +0,0 @@
|
|
1
|
-
<div class='article' id='article_1'>
|
2
|
-
<h1>Hello</h1>
|
3
|
-
<div>World</div>
|
4
|
-
</div>
|
5
|
-
<div class='article' id='id_article_1'>id</div>
|
6
|
-
<div class='article class' id='article_1'>class</div>
|
7
|
-
<div class='article class' id='id_article_1'>id class</div>
|
8
|
-
<div class='article full' id='article_1'>boo</div>
|
9
|
-
<div class='article full' id='article_1'>moo</div>
|
10
|
-
<div class='article articleFull' id='article_1'>foo</div>
|
@@ -1,70 +0,0 @@
|
|
1
|
-
<?xml version='1.0' encoding='utf-8' ?>
|
2
|
-
<?xml version='1.0' encoding='iso-8859-1' ?>
|
3
|
-
<?xml version='1.0' encoding='utf-8' ?>
|
4
|
-
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
5
|
-
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
6
|
-
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
7
|
-
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
8
|
-
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
|
9
|
-
<strong apos="Foo's bar!">Boo!</strong>
|
10
|
-
Embedded? false!
|
11
|
-
Embedded? true!
|
12
|
-
Embedded? true!
|
13
|
-
Embedded? twice! true!
|
14
|
-
Embedded? one af"t"er another!
|
15
|
-
<p>Embedded? false!</p>
|
16
|
-
<p>Embedded? true!</p>
|
17
|
-
<p>Embedded? true!</p>
|
18
|
-
<p>Embedded? twice! true!</p>
|
19
|
-
<p>Embedded? one af"t"er another!</p>
|
20
|
-
stuff followed by whitespace
|
21
|
-
<strong>block with whitespace</strong>
|
22
|
-
<p>
|
23
|
-
Escape
|
24
|
-
- character
|
25
|
-
%p foo
|
26
|
-
yee\ha
|
27
|
-
</p>
|
28
|
-
<!-- Short comment -->
|
29
|
-
<!--
|
30
|
-
This is a block comment
|
31
|
-
cool, huh?
|
32
|
-
<strong>there can even be sub-tags!</strong>
|
33
|
-
Or script!
|
34
|
-
-->
|
35
|
-
<p class=''>class attribute should appear!</p>
|
36
|
-
<p>this attribute shouldn't appear</p>
|
37
|
-
<!--[if lte IE6]> conditional comment! <![endif]-->
|
38
|
-
<!--[if gte IE7]>
|
39
|
-
<p>Block conditional comment</p>
|
40
|
-
<div>
|
41
|
-
<h1>Cool, eh?</h1>
|
42
|
-
</div>
|
43
|
-
<![endif]-->
|
44
|
-
<!--[if gte IE5.2]>
|
45
|
-
Woah a period.
|
46
|
-
<![endif]-->
|
47
|
-
testtest
|
48
|
-
<br />
|
49
|
-
<meta foo='bar' />
|
50
|
-
<img />
|
51
|
-
<hr />
|
52
|
-
<link />
|
53
|
-
<script>Inline content</script>
|
54
|
-
<br>
|
55
|
-
Nested content
|
56
|
-
</br>
|
57
|
-
<p class='article bar foo' id='article_1'>Blah</p>
|
58
|
-
<p class='article foo' id='article_1'>Blah</p>
|
59
|
-
<p class='article bar baz foo' id='article_1'>Blah</p>
|
60
|
-
<p class='article quux qux' id='article_1'>Blump</p>
|
61
|
-
<p class='article' id='foo_bar_baz_article_1'>Whee</p>
|
62
|
-
Woah inner quotes
|
63
|
-
<p class='dynamic_quote' dyn='3' quotes="single '"></p>
|
64
|
-
<p class='dynamic_self_closing' dyn='3' />
|
65
|
-
<body>
|
66
|
-
hello
|
67
|
-
<div>
|
68
|
-
<img />
|
69
|
-
</div>
|
70
|
-
</body>
|
data/test/results/list.xhtml
DELETED
@@ -1,40 +0,0 @@
|
|
1
|
-
<p>
|
2
|
-
<q>Foo</q>
|
3
|
-
</p>
|
4
|
-
<p>
|
5
|
-
<q a='2'>Foo</q>
|
6
|
-
</p>
|
7
|
-
<p>
|
8
|
-
<q>Foo
|
9
|
-
Bar</q>
|
10
|
-
</p>
|
11
|
-
<p>
|
12
|
-
<q a='2'>Foo
|
13
|
-
Bar</q>
|
14
|
-
</p>
|
15
|
-
<p>
|
16
|
-
<q>Foo
|
17
|
-
Bar</q>
|
18
|
-
</p>
|
19
|
-
<p>
|
20
|
-
<q a='2'>Foo
|
21
|
-
Bar</q>
|
22
|
-
</p>
|
23
|
-
<p>
|
24
|
-
<q><div>
|
25
|
-
Foo
|
26
|
-
Bar
|
27
|
-
</div></q>
|
28
|
-
</p>
|
29
|
-
<p>
|
30
|
-
<q a='2'><div>
|
31
|
-
Foo
|
32
|
-
Bar
|
33
|
-
</div></q>
|
34
|
-
</p>
|
35
|
-
<p>
|
36
|
-
<q>foo</q>
|
37
|
-
<q a='2'>
|
38
|
-
bar
|
39
|
-
</q>
|
40
|
-
</p>
|
@@ -1,148 +0,0 @@
|
|
1
|
-
<p>
|
2
|
-
<p><q>
|
3
|
-
Foo
|
4
|
-
</q></p>
|
5
|
-
</p>
|
6
|
-
<p>
|
7
|
-
<p><q a='2'>
|
8
|
-
Foo
|
9
|
-
</q></p>
|
10
|
-
</p>
|
11
|
-
<p>
|
12
|
-
<p><q>Foo</q></p>
|
13
|
-
</p>
|
14
|
-
<p>
|
15
|
-
<p><q a='2'>Foo</q></p>
|
16
|
-
</p>
|
17
|
-
<p>
|
18
|
-
<p><q>
|
19
|
-
Foo
|
20
|
-
</q></p>
|
21
|
-
</p>
|
22
|
-
<p>
|
23
|
-
<p><q a='2'>
|
24
|
-
Foo
|
25
|
-
</q></p>
|
26
|
-
</p>
|
27
|
-
<p>
|
28
|
-
<p><q>Foo</q></p>
|
29
|
-
</p>
|
30
|
-
<p>
|
31
|
-
<p><q a='2'>Foo</q></p>
|
32
|
-
</p>
|
33
|
-
<p>
|
34
|
-
<p><q>
|
35
|
-
Foo
|
36
|
-
Bar
|
37
|
-
</q></p>
|
38
|
-
</p>
|
39
|
-
<p>
|
40
|
-
<p><q a='2'>
|
41
|
-
Foo
|
42
|
-
Bar
|
43
|
-
</q></p>
|
44
|
-
</p>
|
45
|
-
<p>
|
46
|
-
<p><q>
|
47
|
-
Foo
|
48
|
-
Bar
|
49
|
-
</q></p>
|
50
|
-
</p>
|
51
|
-
<p>
|
52
|
-
<p><q a='2'>
|
53
|
-
Foo
|
54
|
-
Bar
|
55
|
-
</q></p>
|
56
|
-
</p>
|
57
|
-
<p>
|
58
|
-
<p>
|
59
|
-
foo<q>
|
60
|
-
Foo
|
61
|
-
</q>bar
|
62
|
-
</p>
|
63
|
-
</p>
|
64
|
-
<p>
|
65
|
-
<p>
|
66
|
-
foo<q a='2'>
|
67
|
-
Foo
|
68
|
-
</q>bar
|
69
|
-
</p>
|
70
|
-
</p>
|
71
|
-
<p>
|
72
|
-
<p>
|
73
|
-
foo<q>Foo</q>bar
|
74
|
-
</p>
|
75
|
-
</p>
|
76
|
-
<p>
|
77
|
-
<p>
|
78
|
-
foo<q a='2'>Foo</q>bar
|
79
|
-
</p>
|
80
|
-
</p>
|
81
|
-
<p>
|
82
|
-
<p>
|
83
|
-
foo<q>
|
84
|
-
Foo
|
85
|
-
</q>bar
|
86
|
-
</p>
|
87
|
-
</p>
|
88
|
-
<p>
|
89
|
-
<p>
|
90
|
-
foo<q a='2'>
|
91
|
-
Foo
|
92
|
-
</q>bar
|
93
|
-
</p>
|
94
|
-
</p>
|
95
|
-
<p>
|
96
|
-
<p>
|
97
|
-
foo<q>Foo</q>bar
|
98
|
-
</p>
|
99
|
-
</p>
|
100
|
-
<p>
|
101
|
-
<p>
|
102
|
-
foo<q a='2'>Foo</q>bar
|
103
|
-
</p>
|
104
|
-
</p>
|
105
|
-
<p>
|
106
|
-
<p>
|
107
|
-
foo<q>
|
108
|
-
Foo
|
109
|
-
Bar
|
110
|
-
</q>bar
|
111
|
-
</p>
|
112
|
-
</p>
|
113
|
-
<p>
|
114
|
-
<p>
|
115
|
-
foo<q a='2'>
|
116
|
-
Foo
|
117
|
-
Bar
|
118
|
-
</q>bar
|
119
|
-
</p>
|
120
|
-
</p>
|
121
|
-
<p>
|
122
|
-
<p>
|
123
|
-
foo<q>
|
124
|
-
Foo
|
125
|
-
Bar
|
126
|
-
</q>bar
|
127
|
-
</p>
|
128
|
-
</p>
|
129
|
-
<p>
|
130
|
-
<p>
|
131
|
-
foo<q a='2'>
|
132
|
-
Foo
|
133
|
-
Bar
|
134
|
-
</q>bar
|
135
|
-
</p>
|
136
|
-
</p>
|
137
|
-
<p>
|
138
|
-
<p><q></q></p>
|
139
|
-
</p>
|
140
|
-
<p>
|
141
|
-
<p><q /></p>
|
142
|
-
</p>
|
143
|
-
<p>
|
144
|
-
<p><q a='2'></q></p>
|
145
|
-
</p>
|
146
|
-
<p>
|
147
|
-
<p><q a='2' /></p>
|
148
|
-
</p>
|
@@ -1,20 +0,0 @@
|
|
1
|
-
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
2
|
-
<html>
|
3
|
-
<head>
|
4
|
-
<title>Stop. haml time</title>
|
5
|
-
<div id='content'>
|
6
|
-
<h1>This is a title!</h1>
|
7
|
-
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit</p>
|
8
|
-
<p class='foo'>Cigarettes!</p>
|
9
|
-
<h2>Man alive!</h2>
|
10
|
-
<ul class='things'>
|
11
|
-
<li>Slippers</li>
|
12
|
-
<li>Shoes</li>
|
13
|
-
<li>Bathrobe</li>
|
14
|
-
<li>Coffee</li>
|
15
|
-
</ul>
|
16
|
-
<pre>This is some text that's in a pre block!
|
17
|
-
Let's see what happens when it's rendered! What about now, since we're on a new line?</pre>
|
18
|
-
</div>
|
19
|
-
</head>
|
20
|
-
</html>
|
data/test/results/partials.xhtml
DELETED
@@ -1,74 +0,0 @@
|
|
1
|
-
<div>
|
2
|
-
<h1>I can count!</h1>
|
3
|
-
1
|
4
|
-
2
|
5
|
-
3
|
6
|
-
4
|
7
|
-
5
|
8
|
-
6
|
9
|
-
7
|
10
|
-
8
|
11
|
-
9
|
12
|
-
10
|
13
|
-
11
|
14
|
-
12
|
15
|
-
13
|
16
|
-
14
|
17
|
-
15
|
18
|
-
16
|
19
|
-
17
|
20
|
-
18
|
21
|
-
19
|
22
|
-
20
|
23
|
-
<h1>I know my ABCs!</h1>
|
24
|
-
<ul>
|
25
|
-
<li>a</li>
|
26
|
-
<li>b</li>
|
27
|
-
<li>c</li>
|
28
|
-
<li>d</li>
|
29
|
-
<li>e</li>
|
30
|
-
<li>f</li>
|
31
|
-
<li>g</li>
|
32
|
-
<li>h</li>
|
33
|
-
<li>i</li>
|
34
|
-
<li>j</li>
|
35
|
-
<li>k</li>
|
36
|
-
<li>l</li>
|
37
|
-
<li>m</li>
|
38
|
-
<li>n</li>
|
39
|
-
<li>o</li>
|
40
|
-
<li>p</li>
|
41
|
-
<li>q</li>
|
42
|
-
<li>r</li>
|
43
|
-
<li>s</li>
|
44
|
-
<li>t</li>
|
45
|
-
<li>u</li>
|
46
|
-
<li>v</li>
|
47
|
-
<li>w</li>
|
48
|
-
<li>x</li>
|
49
|
-
<li>y</li>
|
50
|
-
<li>z</li>
|
51
|
-
</ul>
|
52
|
-
<h1>I can catch errors!</h1>
|
53
|
-
Oh no! "foo" happened!
|
54
|
-
<p>
|
55
|
-
"false" is:
|
56
|
-
false
|
57
|
-
</p>
|
58
|
-
Even!
|
59
|
-
Odd!
|
60
|
-
Even!
|
61
|
-
Odd!
|
62
|
-
Even!
|
63
|
-
</div>
|
64
|
-
<div class='foo'>
|
65
|
-
<strong>foobar</strong>
|
66
|
-
</div>
|
67
|
-
<strong>0</strong>
|
68
|
-
<strong>1</strong>
|
69
|
-
<strong>2</strong>
|
70
|
-
<strong>3</strong>
|
71
|
-
<strong>4</strong>
|
72
|
-
<div class='test'>
|
73
|
-
<p>boom</p>
|
74
|
-
</div>
|