jwhitmire-haml 2.1.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 (168) hide show
  1. data/README.rdoc +332 -0
  2. data/bin/css2sass +7 -0
  3. data/bin/haml +9 -0
  4. data/bin/html2haml +7 -0
  5. data/bin/sass +8 -0
  6. data/lib/haml/buffer.rb +255 -0
  7. data/lib/haml/engine.rb +268 -0
  8. data/lib/haml/error.rb +22 -0
  9. data/lib/haml/exec.rb +395 -0
  10. data/lib/haml/filters.rb +276 -0
  11. data/lib/haml/helpers/action_view_extensions.rb +45 -0
  12. data/lib/haml/helpers/action_view_mods.rb +181 -0
  13. data/lib/haml/helpers.rb +468 -0
  14. data/lib/haml/html.rb +218 -0
  15. data/lib/haml/precompiler.rb +889 -0
  16. data/lib/haml/shared.rb +45 -0
  17. data/lib/haml/template/patch.rb +58 -0
  18. data/lib/haml/template/plugin.rb +72 -0
  19. data/lib/haml/template.rb +51 -0
  20. data/lib/haml/util.rb +77 -0
  21. data/lib/haml/version.rb +47 -0
  22. data/lib/haml.rb +1042 -0
  23. data/lib/sass/css.rb +388 -0
  24. data/lib/sass/engine.rb +499 -0
  25. data/lib/sass/environment.rb +33 -0
  26. data/lib/sass/error.rb +35 -0
  27. data/lib/sass/plugin/merb.rb +56 -0
  28. data/lib/sass/plugin/rails.rb +24 -0
  29. data/lib/sass/plugin.rb +203 -0
  30. data/lib/sass/repl.rb +51 -0
  31. data/lib/sass/script/bool.rb +13 -0
  32. data/lib/sass/script/color.rb +97 -0
  33. data/lib/sass/script/funcall.rb +28 -0
  34. data/lib/sass/script/functions.rb +122 -0
  35. data/lib/sass/script/lexer.rb +152 -0
  36. data/lib/sass/script/literal.rb +60 -0
  37. data/lib/sass/script/number.rb +231 -0
  38. data/lib/sass/script/operation.rb +30 -0
  39. data/lib/sass/script/parser.rb +142 -0
  40. data/lib/sass/script/string.rb +42 -0
  41. data/lib/sass/script/unary_operation.rb +21 -0
  42. data/lib/sass/script/variable.rb +20 -0
  43. data/lib/sass/script.rb +38 -0
  44. data/lib/sass/tree/attr_node.rb +64 -0
  45. data/lib/sass/tree/comment_node.rb +34 -0
  46. data/lib/sass/tree/debug_node.rb +22 -0
  47. data/lib/sass/tree/directive_node.rb +50 -0
  48. data/lib/sass/tree/file_node.rb +27 -0
  49. data/lib/sass/tree/for_node.rb +29 -0
  50. data/lib/sass/tree/if_node.rb +27 -0
  51. data/lib/sass/tree/mixin_def_node.rb +18 -0
  52. data/lib/sass/tree/mixin_node.rb +34 -0
  53. data/lib/sass/tree/node.rb +99 -0
  54. data/lib/sass/tree/rule_node.rb +120 -0
  55. data/lib/sass/tree/variable_node.rb +24 -0
  56. data/lib/sass/tree/while_node.rb +20 -0
  57. data/lib/sass.rb +1062 -0
  58. data/test/benchmark.rb +99 -0
  59. data/test/haml/engine_test.rb +734 -0
  60. data/test/haml/helper_test.rb +224 -0
  61. data/test/haml/html2haml_test.rb +92 -0
  62. data/test/haml/markaby/standard.mab +52 -0
  63. data/test/haml/mocks/article.rb +6 -0
  64. data/test/haml/results/content_for_layout.xhtml +15 -0
  65. data/test/haml/results/eval_suppressed.xhtml +9 -0
  66. data/test/haml/results/filters.xhtml +62 -0
  67. data/test/haml/results/helpers.xhtml +93 -0
  68. data/test/haml/results/helpful.xhtml +10 -0
  69. data/test/haml/results/just_stuff.xhtml +68 -0
  70. data/test/haml/results/list.xhtml +12 -0
  71. data/test/haml/results/nuke_inner_whitespace.xhtml +40 -0
  72. data/test/haml/results/nuke_outer_whitespace.xhtml +148 -0
  73. data/test/haml/results/original_engine.xhtml +20 -0
  74. data/test/haml/results/partial_layout.xhtml +5 -0
  75. data/test/haml/results/partials.xhtml +21 -0
  76. data/test/haml/results/render_layout.xhtml +3 -0
  77. data/test/haml/results/silent_script.xhtml +74 -0
  78. data/test/haml/results/standard.xhtml +42 -0
  79. data/test/haml/results/tag_parsing.xhtml +23 -0
  80. data/test/haml/results/very_basic.xhtml +5 -0
  81. data/test/haml/results/whitespace_handling.xhtml +89 -0
  82. data/test/haml/rhtml/_av_partial_1.rhtml +12 -0
  83. data/test/haml/rhtml/_av_partial_2.rhtml +8 -0
  84. data/test/haml/rhtml/action_view.rhtml +62 -0
  85. data/test/haml/rhtml/standard.rhtml +54 -0
  86. data/test/haml/template_test.rb +204 -0
  87. data/test/haml/templates/_av_partial_1.haml +9 -0
  88. data/test/haml/templates/_av_partial_1_ugly.haml +9 -0
  89. data/test/haml/templates/_av_partial_2.haml +5 -0
  90. data/test/haml/templates/_av_partial_2_ugly.haml +5 -0
  91. data/test/haml/templates/_layout.erb +3 -0
  92. data/test/haml/templates/_layout_for_partial.haml +3 -0
  93. data/test/haml/templates/_partial.haml +8 -0
  94. data/test/haml/templates/_text_area.haml +3 -0
  95. data/test/haml/templates/action_view.haml +47 -0
  96. data/test/haml/templates/action_view_ugly.haml +47 -0
  97. data/test/haml/templates/breakage.haml +8 -0
  98. data/test/haml/templates/content_for_layout.haml +10 -0
  99. data/test/haml/templates/eval_suppressed.haml +11 -0
  100. data/test/haml/templates/filters.haml +66 -0
  101. data/test/haml/templates/helpers.haml +95 -0
  102. data/test/haml/templates/helpful.haml +11 -0
  103. data/test/haml/templates/just_stuff.haml +83 -0
  104. data/test/haml/templates/list.haml +12 -0
  105. data/test/haml/templates/nuke_inner_whitespace.haml +32 -0
  106. data/test/haml/templates/nuke_outer_whitespace.haml +144 -0
  107. data/test/haml/templates/original_engine.haml +17 -0
  108. data/test/haml/templates/partial_layout.haml +3 -0
  109. data/test/haml/templates/partialize.haml +1 -0
  110. data/test/haml/templates/partials.haml +12 -0
  111. data/test/haml/templates/render_layout.haml +2 -0
  112. data/test/haml/templates/silent_script.haml +40 -0
  113. data/test/haml/templates/standard.haml +42 -0
  114. data/test/haml/templates/standard_ugly.haml +1 -0
  115. data/test/haml/templates/tag_parsing.haml +21 -0
  116. data/test/haml/templates/very_basic.haml +4 -0
  117. data/test/haml/templates/whitespace_handling.haml +87 -0
  118. data/test/linked_rails.rb +12 -0
  119. data/test/sass/css2sass_test.rb +193 -0
  120. data/test/sass/engine_test.rb +786 -0
  121. data/test/sass/functions_test.rb +96 -0
  122. data/test/sass/more_results/more1.css +9 -0
  123. data/test/sass/more_results/more1_with_line_comments.css +26 -0
  124. data/test/sass/more_results/more_import.css +29 -0
  125. data/test/sass/more_templates/_more_partial.sass +2 -0
  126. data/test/sass/more_templates/more1.sass +23 -0
  127. data/test/sass/more_templates/more_import.sass +11 -0
  128. data/test/sass/plugin_test.rb +208 -0
  129. data/test/sass/results/alt.css +4 -0
  130. data/test/sass/results/basic.css +9 -0
  131. data/test/sass/results/compact.css +5 -0
  132. data/test/sass/results/complex.css +87 -0
  133. data/test/sass/results/compressed.css +1 -0
  134. data/test/sass/results/expanded.css +19 -0
  135. data/test/sass/results/import.css +29 -0
  136. data/test/sass/results/line_numbers.css +49 -0
  137. data/test/sass/results/mixins.css +95 -0
  138. data/test/sass/results/multiline.css +24 -0
  139. data/test/sass/results/nested.css +22 -0
  140. data/test/sass/results/parent_ref.css +13 -0
  141. data/test/sass/results/script.css +16 -0
  142. data/test/sass/results/subdir/nested_subdir/nested_subdir.css +1 -0
  143. data/test/sass/results/subdir/subdir.css +3 -0
  144. data/test/sass/results/units.css +11 -0
  145. data/test/sass/script_test.rb +153 -0
  146. data/test/sass/templates/_partial.sass +2 -0
  147. data/test/sass/templates/alt.sass +16 -0
  148. data/test/sass/templates/basic.sass +23 -0
  149. data/test/sass/templates/bork.sass +2 -0
  150. data/test/sass/templates/bork2.sass +2 -0
  151. data/test/sass/templates/compact.sass +17 -0
  152. data/test/sass/templates/complex.sass +309 -0
  153. data/test/sass/templates/compressed.sass +15 -0
  154. data/test/sass/templates/expanded.sass +17 -0
  155. data/test/sass/templates/import.sass +11 -0
  156. data/test/sass/templates/importee.sass +19 -0
  157. data/test/sass/templates/line_numbers.sass +13 -0
  158. data/test/sass/templates/mixins.sass +76 -0
  159. data/test/sass/templates/multiline.sass +20 -0
  160. data/test/sass/templates/nested.sass +25 -0
  161. data/test/sass/templates/parent_ref.sass +25 -0
  162. data/test/sass/templates/script.sass +101 -0
  163. data/test/sass/templates/subdir/nested_subdir/_nested_partial.sass +2 -0
  164. data/test/sass/templates/subdir/nested_subdir/nested_subdir.sass +3 -0
  165. data/test/sass/templates/subdir/subdir.sass +6 -0
  166. data/test/sass/templates/units.sass +11 -0
  167. data/test/test_helper.rb +21 -0
  168. metadata +245 -0
@@ -0,0 +1,95 @@
1
+ #main {
2
+ width: 15em;
3
+ color: #0000ff;
4
+ }
5
+ #main p {
6
+ border-top-width: 2px;
7
+ border-top-color: #ffcc00;
8
+ border-left-width: 1px;
9
+ border-left-color: #000;
10
+ -moz-border-radius: 10px;
11
+ border-style: dotted;
12
+ border-width: 2px;
13
+ }
14
+ #main .cool {
15
+ width: 100px;
16
+ }
17
+
18
+ #left {
19
+ border-top-width: 2px;
20
+ border-top-color: #ffcc00;
21
+ border-left-width: 1px;
22
+ border-left-color: #000;
23
+ -moz-border-radius: 10px;
24
+ font-size: 2em;
25
+ font-weight: bold;
26
+ float: left;
27
+ }
28
+
29
+ #right {
30
+ border-top-width: 2px;
31
+ border-top-color: #ffcc00;
32
+ border-left-width: 1px;
33
+ border-left-color: #000;
34
+ -moz-border-radius: 10px;
35
+ color: #f00;
36
+ font-size: 20px;
37
+ float: right;
38
+ }
39
+
40
+ .bordered {
41
+ border-top-width: 2px;
42
+ border-top-color: #ffcc00;
43
+ border-left-width: 1px;
44
+ border-left-color: #000;
45
+ -moz-border-radius: 10px;
46
+ }
47
+
48
+ .complex {
49
+ color: #f00;
50
+ font-size: 20px;
51
+ text-decoration: none;
52
+ }
53
+ .complex:after {
54
+ content: ".";
55
+ display: block;
56
+ height: 0;
57
+ clear: both;
58
+ visibility: hidden;
59
+ }
60
+ * html .complex {
61
+ height: 1px;
62
+ color: #f00;
63
+ font-size: 20px;
64
+ }
65
+
66
+ .more-complex {
67
+ color: #f00;
68
+ font-size: 20px;
69
+ text-decoration: none;
70
+ display: inline;
71
+ -webkit-nonsense-top-right: 1px;
72
+ -webkit-nonsense-bottom-left: 1px;
73
+ }
74
+ .more-complex:after {
75
+ content: ".";
76
+ display: block;
77
+ height: 0;
78
+ clear: both;
79
+ visibility: hidden;
80
+ }
81
+ * html .more-complex {
82
+ height: 1px;
83
+ color: #f00;
84
+ font-size: 20px;
85
+ }
86
+ .more-complex a:hover {
87
+ text-decoration: underline;
88
+ color: #f00;
89
+ font-size: 20px;
90
+ border-top-width: 2px;
91
+ border-top-color: #ffcc00;
92
+ border-left-width: 1px;
93
+ border-left-color: #000;
94
+ -moz-border-radius: 10px;
95
+ }
@@ -0,0 +1,24 @@
1
+ #main,
2
+ #header {
3
+ height: 50px; }
4
+ #main div,
5
+ #header div {
6
+ width: 100px; }
7
+ #main div a span,
8
+ #main div em span,
9
+ #header div a span,
10
+ #header div em span {
11
+ color: pink; }
12
+
13
+ #one div.nested,
14
+ #one span.nested,
15
+ #one p.nested,
16
+ #two div.nested,
17
+ #two span.nested,
18
+ #two p.nested,
19
+ #three div.nested,
20
+ #three span.nested,
21
+ #three p.nested {
22
+ font-weight: bold;
23
+ border-color: red;
24
+ display: block; }
@@ -0,0 +1,22 @@
1
+ #main {
2
+ width: 15em;
3
+ color: #0000ff; }
4
+ #main p {
5
+ border-style: dotted;
6
+ /* Nested comment
7
+ * More nested stuff */
8
+ border-width: 2px; }
9
+ #main .cool {
10
+ width: 100px; }
11
+
12
+ #left {
13
+ font-size: 2em;
14
+ font-weight: bold;
15
+ float: left; }
16
+
17
+ #right .header {
18
+ border-style: solid; }
19
+ #right .body {
20
+ border-style: dotted; }
21
+ #right .footer {
22
+ border-style: dashed; }
@@ -0,0 +1,13 @@
1
+ a { color: #000; }
2
+ a:hover { color: #f00; }
3
+
4
+ p, div { width: 100em; }
5
+ p foo, div foo { width: 10em; }
6
+ p:hover, p bar, div:hover, div bar { height: 20em; }
7
+
8
+ #cool { border-style: solid; border-width: 2em; }
9
+ .ie7 #cool, .ie6 #cool { content: string(Totally not cool.); }
10
+ .firefox #cool { content: string(Quite cool.); }
11
+
12
+ .wow, .snazzy { font-family: fantasy; }
13
+ .wow:hover, .wow:visited, .snazzy:hover, .snazzy:visited { font-weight: bold; }
@@ -0,0 +1,16 @@
1
+ #main { content: Hello!; qstr: Quo"ted"!; hstr: Hyph-en!; width: 30em; background-color: #000; color: #ffffaa; short-color: #112233; named-color: olive; con: foo bar(9 hi there boom); con2: noquo quo; }
2
+ #main #sidebar { background-color: #00ff98; num-normal: 10; num-dec: 10.2; num-dec0: 99; num-neg: -10; esc: 10 +12; many: 6; order: 7; complex: #4c9db1hi16; }
3
+
4
+ #plus { num-num: 7; num-num-un: 25em; num-num-un2: 23em; num-num-neg: 9.87; num-str: 100px; num-col: #b7b7b7; num-perc: 31%; str-str: hi there; str-str2: hi there; str-col: 14em solid #112233; str-num: times: 13; col-num: #ff7b9d; col-col: #5173ff; }
5
+
6
+ #minus { num-num: 900; col-num: #f9f9f4; col-col: #000035; unary-num: -1; unary-const: 10; unary-paren: -11; unary-two: 12; unary-many: 12; unary-crazy: -15; }
7
+
8
+ #times { num-num: 7; num-col: #7496b8; col-num: #092345; col-col: #243648; }
9
+
10
+ #div { num-num: 3.333; num-num2: 3.333; col-num: #092345; col-col: #0b0d0f; comp: 1px; }
11
+
12
+ #mod { num-num: 2; col-col: #0f0e05; col-num: #020001; }
13
+
14
+ #const { escaped-quote: !foo; default: Hello! !important; }
15
+
16
+ #regression { a: 4; }
@@ -0,0 +1 @@
1
+ #pi { width: 314px; }
@@ -0,0 +1,3 @@
1
+ #nested { relative: true; }
2
+
3
+ #subdir { font-size: 20px; font-weight: bold; }
@@ -0,0 +1,11 @@
1
+ b {
2
+ foo: 5px;
3
+ bar: 24px;
4
+ baz: 66.667%;
5
+ many-units: 32em;
6
+ mm: 15mm;
7
+ pc: 2pc;
8
+ pt: -72pt;
9
+ inches: 2in;
10
+ more-inches: 3.5in;
11
+ mixed: 6px; }
@@ -0,0 +1,153 @@
1
+ #!/usr/bin/env ruby
2
+ require File.dirname(__FILE__) + '/../test_helper'
3
+ require 'sass/engine'
4
+
5
+ class SassScriptTest < Test::Unit::TestCase
6
+ include Sass::Script
7
+
8
+ def test_color_checks_input
9
+ assert_raise(Sass::SyntaxError, "Color values must be between 0 and 255") {Color.new([1, 2, -1])}
10
+ assert_raise(Sass::SyntaxError, "Color values must be between 0 and 255") {Color.new([256, 2, 3])}
11
+ end
12
+
13
+ def test_string_escapes
14
+ assert_equal '"', resolve("\"\\\"\"")
15
+ assert_equal "\\", resolve("\"\\\\\"")
16
+ assert_equal "\\02fa", resolve("\"\\02fa\"")
17
+ end
18
+
19
+ def test_color_names
20
+ assert_equal "white", resolve("white")
21
+ assert_equal "white", resolve("#ffffff")
22
+ assert_equal "#fffffe", resolve("white - #000001")
23
+ end
24
+
25
+ def test_implicit_strings
26
+ silence_warnings do
27
+ assert_equal Sass::Script::String.new("foo"), eval("foo")
28
+ assert_equal Sass::Script::String.new("foo bar"), eval("foo bar")
29
+ assert_equal Sass::Script::String.new("foo/bar"), eval("foo/bar")
30
+ end
31
+ end
32
+
33
+ def test_interpolation
34
+ assert_equal "foo bar, baz bang", resolve('"foo #{"bar"}, #{"baz"} bang"')
35
+ assert_equal "foo bar baz bang", resolve('"foo #{"#{"ba" + "r"} baz"} bang"')
36
+ assert_equal 'foo #{bar baz} bang', resolve('"foo \#{#{"ba" + "r"} baz} bang"')
37
+ assert_equal 'foo #{baz bang', resolve('"foo #{"\#{" + "baz"} bang"')
38
+ end
39
+
40
+ def test_rule_interpolation
41
+ assert_equal(<<CSS, render(<<SASS))
42
+ foo bar baz bang {
43
+ a: b; }
44
+ CSS
45
+ foo \#{"\#{"ba" + "r"} baz"} bang
46
+ a: b
47
+ SASS
48
+ assert_equal(<<CSS, render(<<SASS))
49
+ foo \#{bar baz} bang {
50
+ a: b; }
51
+ CSS
52
+ foo \\\#{\#{"ba" + "r"} baz} bang
53
+ a: b
54
+ SASS
55
+ assert_equal(<<CSS, render(<<SASS))
56
+ foo \#{baz bang {
57
+ a: b; }
58
+ CSS
59
+ foo \#{"\\\#{" + "baz"} bang
60
+ a: b
61
+ SASS
62
+ end
63
+
64
+ def test_warning_reporting
65
+ assert_warning(<<WARN) {eval("foo")}
66
+ DEPRECATION WARNING:
67
+ On line 1, character 1 of 'test_warning_reporting_inline.sass'
68
+ Implicit strings have been deprecated and will be removed in version 2.4.
69
+ 'foo' was not quoted. Please add double quotes (e.g. "foo").
70
+ WARN
71
+ assert_warning(<<WARN) {eval("1 + foo")}
72
+ DEPRECATION WARNING:
73
+ On line 1, character 5 of 'test_warning_reporting_inline.sass'
74
+ Implicit strings have been deprecated and will be removed in version 2.4.
75
+ 'foo' was not quoted. Please add double quotes (e.g. "foo").
76
+ WARN
77
+ assert_warning(<<WARN) {render("@if 1 + foo")}
78
+ DEPRECATION WARNING:
79
+ On line 1, character 9 of 'test_warning_reporting_inline.sass'
80
+ Implicit strings have been deprecated and will be removed in version 2.4.
81
+ 'foo' was not quoted. Please add double quotes (e.g. "foo").
82
+ WARN
83
+
84
+ # Regression
85
+ assert_warning(<<WARN) {render("@if if")}
86
+ DEPRECATION WARNING:
87
+ On line 1, character 5 of 'test_warning_reporting_inline.sass'
88
+ Implicit strings have been deprecated and will be removed in version 2.4.
89
+ 'if' was not quoted. Please add double quotes (e.g. "if").
90
+ WARN
91
+ end
92
+
93
+ def test_inaccessible_functions
94
+ assert_warning <<WARN do
95
+ DEPRECATION WARNING:
96
+ On line 2, character 6 of 'test_inaccessible_functions_inline.sass'
97
+ Implicit strings have been deprecated and will be removed in version 2.4.
98
+ 'to_s' was not quoted. Please add double quotes (e.g. "to_s").
99
+ WARN
100
+ assert_equal "send(to_s)", resolve("send(to_s)", :line => 2)
101
+ end
102
+ assert_equal "public_instance_methods()", resolve("public_instance_methods()")
103
+ end
104
+
105
+ def test_ruby_equality
106
+ assert_equal eval('"foo"'), eval('"foo"')
107
+ assert_equal eval('1'), eval('1.0')
108
+ assert_not_equal eval('1'), eval('"1"')
109
+ end
110
+
111
+ private
112
+
113
+ def resolve(str, opts = {}, environment = {})
114
+ munge_filename opts
115
+ eval(str, opts, environment).to_s
116
+ end
117
+
118
+ def eval(str, opts = {}, environment = {})
119
+ munge_filename opts
120
+ Sass::Script.parse(str, opts[:line] || 1,
121
+ opts[:offset] || 0, opts[:filename]).perform(environment)
122
+ end
123
+
124
+ def render(sass, options = {})
125
+ munge_filename options
126
+ Sass::Engine.new(sass, options).render
127
+ end
128
+
129
+ def assert_warning(message)
130
+ the_real_stderr, $stderr = $stderr, StringIO.new
131
+ yield
132
+ assert_equal message.strip, $stderr.string.strip
133
+ ensure
134
+ $stderr = the_real_stderr
135
+ end
136
+
137
+ def silence_warnings
138
+ the_real_stderr, $stderr = $stderr, StringIO.new
139
+ yield
140
+ ensure
141
+ $stderr = the_real_stderr
142
+ end
143
+
144
+ def test_number_printing
145
+ assert_equal "1", eval("1")
146
+ assert_equal "1", eval("1.0")
147
+ assert_equal "1.121", eval("1.1214")
148
+ assert_equal "1.122", eval("1.1215")
149
+ assert_equal "Infinity", eval("1.0/0.0")
150
+ assert_equal "-Infinity", eval("-1.0/0.0")
151
+ assert_equal "NaN", eval("0.0/0.0")
152
+ end
153
+ end
@@ -0,0 +1,2 @@
1
+ #foo
2
+ :background-color #baf
@@ -0,0 +1,16 @@
1
+ h1
2
+ :float left
3
+ :width 274px
4
+ height: 75px
5
+ margin: 0
6
+ background:
7
+ repeat: no-repeat
8
+ :image none
9
+ a:hover, a:visited
10
+ color: green
11
+ b:hover
12
+ color: red
13
+ :background-color green
14
+ const
15
+ nosp= 1 + 2
16
+ sp = 1 + 2
@@ -0,0 +1,23 @@
1
+
2
+
3
+ body
4
+ :font Arial
5
+ :background blue
6
+
7
+ #page
8
+ :width 700px
9
+ :height 100
10
+ #header
11
+ :height 300px
12
+ h1
13
+ :font-size 50px
14
+ :color blue
15
+
16
+ #content.user.show
17
+ #container.top
18
+ #column.left
19
+ :width 100px
20
+ #column.right
21
+ :width 600px
22
+ #container.bottom
23
+ :background brown
@@ -0,0 +1,2 @@
1
+ bork
2
+ :bork= !bork
@@ -0,0 +1,2 @@
1
+ bork
2
+ :bork: bork;
@@ -0,0 +1,17 @@
1
+ #main
2
+ :width 15em
3
+ :color #0000ff
4
+ p
5
+ :border
6
+ :style dotted
7
+ /* Nested comment
8
+ More nested stuff
9
+ :width 2px
10
+ .cool
11
+ :width 100px
12
+
13
+ #left
14
+ :font
15
+ :size 2em
16
+ :weight bold
17
+ :float left