haml 4.0.0 → 5.0.0

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 (87) hide show
  1. checksums.yaml +7 -0
  2. data/.yardopts +1 -1
  3. data/CHANGELOG.md +117 -5
  4. data/FAQ.md +7 -17
  5. data/MIT-LICENSE +1 -1
  6. data/README.md +85 -42
  7. data/REFERENCE.md +181 -86
  8. data/Rakefile +47 -51
  9. data/lib/haml/attribute_builder.rb +163 -0
  10. data/lib/haml/attribute_compiler.rb +215 -0
  11. data/lib/haml/attribute_parser.rb +144 -0
  12. data/lib/haml/buffer.rb +38 -128
  13. data/lib/haml/compiler.rb +88 -295
  14. data/lib/haml/engine.rb +25 -41
  15. data/lib/haml/error.rb +3 -0
  16. data/lib/haml/escapable.rb +49 -0
  17. data/lib/haml/exec.rb +33 -19
  18. data/lib/haml/filters.rb +20 -24
  19. data/lib/haml/generator.rb +41 -0
  20. data/lib/haml/helpers/action_view_extensions.rb +3 -2
  21. data/lib/haml/helpers/action_view_mods.rb +44 -66
  22. data/lib/haml/helpers/action_view_xss_mods.rb +1 -0
  23. data/lib/haml/helpers/safe_erubi_template.rb +27 -0
  24. data/lib/haml/helpers/safe_erubis_template.rb +16 -4
  25. data/lib/haml/helpers/xss_mods.rb +18 -12
  26. data/lib/haml/helpers.rb +122 -58
  27. data/lib/haml/options.rb +39 -46
  28. data/lib/haml/parser.rb +278 -217
  29. data/lib/haml/{template/plugin.rb → plugin.rb} +8 -15
  30. data/lib/haml/railtie.rb +21 -11
  31. data/lib/haml/sass_rails_filter.rb +17 -4
  32. data/lib/haml/template/options.rb +12 -2
  33. data/lib/haml/template.rb +12 -6
  34. data/lib/haml/temple_engine.rb +120 -0
  35. data/lib/haml/temple_line_counter.rb +29 -0
  36. data/lib/haml/util.rb +80 -199
  37. data/lib/haml/version.rb +2 -1
  38. data/lib/haml.rb +2 -1
  39. data/test/attribute_parser_test.rb +101 -0
  40. data/test/engine_test.rb +306 -176
  41. data/test/filters_test.rb +32 -19
  42. data/test/gemfiles/Gemfile.rails-4.0.x +11 -0
  43. data/test/gemfiles/Gemfile.rails-4.0.x.lock +87 -0
  44. data/test/gemfiles/Gemfile.rails-4.1.x +5 -0
  45. data/test/gemfiles/Gemfile.rails-4.2.x +5 -0
  46. data/test/gemfiles/Gemfile.rails-5.0.x +4 -0
  47. data/test/helper_test.rb +282 -96
  48. data/test/options_test.rb +22 -0
  49. data/test/parser_test.rb +71 -4
  50. data/test/results/bemit.xhtml +4 -0
  51. data/test/results/eval_suppressed.xhtml +4 -4
  52. data/test/results/helpers.xhtml +43 -41
  53. data/test/results/helpful.xhtml +6 -3
  54. data/test/results/just_stuff.xhtml +21 -20
  55. data/test/results/list.xhtml +9 -9
  56. data/test/results/nuke_inner_whitespace.xhtml +22 -22
  57. data/test/results/nuke_outer_whitespace.xhtml +84 -92
  58. data/test/results/original_engine.xhtml +17 -17
  59. data/test/results/partial_layout.xhtml +4 -3
  60. data/test/results/partial_layout_erb.xhtml +4 -3
  61. data/test/results/partials.xhtml +11 -10
  62. data/test/results/silent_script.xhtml +63 -63
  63. data/test/results/standard.xhtml +156 -159
  64. data/test/results/tag_parsing.xhtml +19 -19
  65. data/test/results/very_basic.xhtml +2 -2
  66. data/test/results/whitespace_handling.xhtml +56 -50
  67. data/test/template_test.rb +44 -53
  68. data/test/template_test_helper.rb +38 -0
  69. data/test/templates/_text_area_helper.html.haml +4 -0
  70. data/test/templates/bemit.haml +3 -0
  71. data/test/templates/just_stuff.haml +1 -0
  72. data/test/templates/partial_layout_erb.erb +1 -1
  73. data/test/templates/standard_ugly.haml +1 -0
  74. data/test/templates/with_bom.haml +1 -0
  75. data/test/temple_line_counter_test.rb +40 -0
  76. data/test/test_helper.rb +26 -12
  77. data/test/util_test.rb +6 -47
  78. metadata +88 -106
  79. data/lib/haml/helpers/rails_323_textarea_fix.rb +0 -24
  80. data/test/gemfiles/Gemfile.rails-3.0.x +0 -5
  81. data/test/gemfiles/Gemfile.rails-3.1.x +0 -6
  82. data/test/gemfiles/Gemfile.rails-3.2.x +0 -5
  83. data/test/gemfiles/Gemfile.rails-master +0 -4
  84. data/test/templates/_av_partial_1_ugly.haml +0 -9
  85. data/test/templates/_av_partial_2_ugly.haml +0 -5
  86. data/test/templates/action_view_ugly.haml +0 -47
  87. data/test/templates/standard_ugly.haml +0 -43
@@ -1,68 +1,68 @@
1
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!
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
63
  </div>
64
64
  <div class='foo'>
65
- <strong>foobar</strong>
65
+ <strong>foobar</strong>
66
66
  </div>
67
67
  <strong>0</strong>
68
68
  <strong>1</strong>
@@ -70,5 +70,5 @@
70
70
  <strong>3</strong>
71
71
  <strong>4</strong>
72
72
  <div class='test'>
73
- <p>boom</p>
73
+ <p>boom</p>
74
74
  </div>
@@ -1,162 +1,159 @@
1
1
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
2
  <html lang='en-US' xml:lang='en-US' xmlns='http://www.w3.org/1999/xhtml'>
3
- <head>
4
- <title>Hampton Catlin Is Totally Awesome</title>
5
- <meta content='text/html; charset=utf-8' http-equiv='Content-Type' />
6
- </head>
7
- <body>
8
- <!-- You're In my house now! -->
9
- <div class='header'>
10
- Yes, ladies and gentileman. He is just that egotistical.
11
- Fantastic! This should be multi-line output
12
- The question is if this would translate! Ahah!
13
- 20
14
- </div>
15
- <div id='body'> Quotes should be loved! Just like people!</div>
16
- 0
17
- 1
18
- 2
19
- 3
20
- 4
21
- 5
22
- 6
23
- 7
24
- 8
25
- 9
26
- 10
27
- 11
28
- 12
29
- 13
30
- 14
31
- 15
32
- 16
33
- 17
34
- 18
35
- 19
36
- 20
37
- 21
38
- 22
39
- 23
40
- 24
41
- 25
42
- 26
43
- 27
44
- 28
45
- 29
46
- 30
47
- 31
48
- 32
49
- 33
50
- 34
51
- 35
52
- 36
53
- 37
54
- 38
55
- 39
56
- 40
57
- 41
58
- 42
59
- 43
60
- 44
61
- 45
62
- 46
63
- 47
64
- 48
65
- 49
66
- 50
67
- 51
68
- 52
69
- 53
70
- 54
71
- 55
72
- 56
73
- 57
74
- 58
75
- 59
76
- 60
77
- 61
78
- 62
79
- 63
80
- 64
81
- 65
82
- 66
83
- 67
84
- 68
85
- 69
86
- 70
87
- 71
88
- 72
89
- 73
90
- 74
91
- 75
92
- 76
93
- 77
94
- 78
95
- 79
96
- 80
97
- 81
98
- 82
99
- 83
100
- 84
101
- 85
102
- 86
103
- 87
104
- 88
105
- 89
106
- 90
107
- 91
108
- 92
109
- 93
110
- 94
111
- 95
112
- 96
113
- 97
114
- 98
115
- 99
116
- 100
117
- 101
118
- 102
119
- 103
120
- 104
121
- 105
122
- 106
123
- 107
124
- 108
125
- 109
126
- 110
127
- 111
128
- 112
129
- 113
130
- 114
131
- 115
132
- 116
133
- 117
134
- 118
135
- 119
136
- Wow.|
137
- <p code='3'>
138
- Holy cow multiline tags! A pipe (|) even!
139
- PipesIgnored|PipesIgnored|PipesIgnored|
140
- 1|2|3
141
- </p>
142
- <div class='silent' foo='17'>
143
- this shouldn't evaluate but now it should!
144
- </div>
145
- <ul class='really cool'>
146
- <li>a</li>
147
- <li>b</li>
148
- <li>c</li>
149
- <li>d</li>
150
- <li>e</li>
151
- <li>f</li>
152
- </ul>
153
- <div class='of_divs_with_underscore' id='combo'>with this text</div>
154
- foo
155
- <div class='footer'>
156
- <strong class='shout'>
157
- This is a really long ruby quote. It should be loved and wrapped because its more than 50 characters. This value may change in the future and this test may look stupid.
158
- So, I'm just making it *really* long. God, I hope this works
159
- </strong>
160
- </div>
161
- </body>
3
+ <head>
4
+ <title>Hampton Catlin Is Totally Awesome</title>
5
+ <meta content='text/html; charset=utf-8' http-equiv='Content-Type' />
6
+ </head>
7
+ <body>
8
+ <!-- You're In my house now! -->
9
+ <div class='header'>
10
+ Yes, ladies and gentileman. He is just that egotistical.
11
+ Fantastic! This should be multi-line output
12
+ The question is if this would translate! Ahah!
13
+ 20
14
+ </div>
15
+ <div id='body'> Quotes should be loved! Just like people!</div>
16
+ 0
17
+ 1
18
+ 2
19
+ 3
20
+ 4
21
+ 5
22
+ 6
23
+ 7
24
+ 8
25
+ 9
26
+ 10
27
+ 11
28
+ 12
29
+ 13
30
+ 14
31
+ 15
32
+ 16
33
+ 17
34
+ 18
35
+ 19
36
+ 20
37
+ 21
38
+ 22
39
+ 23
40
+ 24
41
+ 25
42
+ 26
43
+ 27
44
+ 28
45
+ 29
46
+ 30
47
+ 31
48
+ 32
49
+ 33
50
+ 34
51
+ 35
52
+ 36
53
+ 37
54
+ 38
55
+ 39
56
+ 40
57
+ 41
58
+ 42
59
+ 43
60
+ 44
61
+ 45
62
+ 46
63
+ 47
64
+ 48
65
+ 49
66
+ 50
67
+ 51
68
+ 52
69
+ 53
70
+ 54
71
+ 55
72
+ 56
73
+ 57
74
+ 58
75
+ 59
76
+ 60
77
+ 61
78
+ 62
79
+ 63
80
+ 64
81
+ 65
82
+ 66
83
+ 67
84
+ 68
85
+ 69
86
+ 70
87
+ 71
88
+ 72
89
+ 73
90
+ 74
91
+ 75
92
+ 76
93
+ 77
94
+ 78
95
+ 79
96
+ 80
97
+ 81
98
+ 82
99
+ 83
100
+ 84
101
+ 85
102
+ 86
103
+ 87
104
+ 88
105
+ 89
106
+ 90
107
+ 91
108
+ 92
109
+ 93
110
+ 94
111
+ 95
112
+ 96
113
+ 97
114
+ 98
115
+ 99
116
+ 100
117
+ 101
118
+ 102
119
+ 103
120
+ 104
121
+ 105
122
+ 106
123
+ 107
124
+ 108
125
+ 109
126
+ 110
127
+ 111
128
+ 112
129
+ 113
130
+ 114
131
+ 115
132
+ 116
133
+ 117
134
+ 118
135
+ 119
136
+ Wow.|
137
+ <p code='3'>
138
+ Holy cow multiline tags! A pipe (|) even!
139
+ PipesIgnored|PipesIgnored|PipesIgnored|
140
+ 1|2|3
141
+ </p>
142
+ <div class='silent' foo='17'>
143
+ this shouldn't evaluate but now it should!
144
+ </div>
145
+ <ul class='really cool'>
146
+ <li>a</li>
147
+ <li>b</li>
148
+ <li>c</li>
149
+ <li>d</li>
150
+ <li>e</li>
151
+ <li>f</li>
152
+ </ul>
153
+ <div class='of_divs_with_underscore' id='combo'>with this text</div>
154
+ foo<div class='footer'>
155
+ <strong class='shout'>This is a really long ruby quote. It should be loved and wrapped because its more than 50 characters. This value may change in the future and this test may look stupid.
156
+ So, I'm just making it *really* long. God, I hope this works</strong>
157
+ </div>
158
+ </body>
162
159
  </html>
@@ -1,23 +1,23 @@
1
1
  <div class='tags'>
2
- <foo>1</foo>
3
- <FOO>2</FOO>
4
- <fooBAR>3</fooBAR>
5
- <fooBar>4</fooBar>
6
- <foo_bar>5</foo_bar>
7
- <foo-bar>6</foo-bar>
8
- <foo:bar>7</foo:bar>
9
- <foo class='bar'>8</foo>
10
- <fooBAr_baz:boom_bar>9</fooBAr_baz:boom_bar>
11
- <foo13>10</foo13>
12
- <foo2u>11</foo2u>
2
+ <foo>1</foo>
3
+ <FOO>2</FOO>
4
+ <fooBAR>3</fooBAR>
5
+ <fooBar>4</fooBar>
6
+ <foo_bar>5</foo_bar>
7
+ <foo-bar>6</foo-bar>
8
+ <foo:bar>7</foo:bar>
9
+ <foo class='bar'>8</foo>
10
+ <fooBAr_baz:boom_bar>9</fooBAr_baz:boom_bar>
11
+ <foo13>10</foo13>
12
+ <foo2u>11</foo2u>
13
13
  </div>
14
14
  <div class='classes'>
15
- <p class='foo bar' id='boom'></p>
16
- <div class='fooBar'>a</div>
17
- <div class='foo-bar'>b</div>
18
- <div class='foo_bar'>c</div>
19
- <div class='FOOBAR'>d</div>
20
- <div class='foo16'>e</div>
21
- <div class='123'>f</div>
22
- <div class='foo2u'>g</div>
15
+ <p class='foo bar' id='boom'></p>
16
+ <div class='fooBar'>a</div>
17
+ <div class='foo-bar'>b</div>
18
+ <div class='foo_bar'>c</div>
19
+ <div class='FOOBAR'>d</div>
20
+ <div class='foo16'>e</div>
21
+ <div class='123'>f</div>
22
+ <div class='foo2u'>g</div>
23
23
  </div>
@@ -1,5 +1,5 @@
1
1
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
2
  <html>
3
- <head></head>
4
- <body></body>
3
+ <head></head>
4
+ <body></body>
5
5
  </html>
@@ -1,85 +1,91 @@
1
1
  <div id='whitespace_test'>
2
- <div class='text_area_test_area'>
3
- <textarea>Oneline</textarea>
2
+ <div class='text_area_test_area'>
3
+ <textarea>Oneline</textarea>
4
4
  </div>
5
5
  <textarea>BLAH
6
6
  </textarea>
7
- <div class='text_area_test_area'>
8
- <textarea>Two&#x000A;lines</textarea>
7
+
8
+ <div class='text_area_test_area'>
9
+ <textarea>Two&#x000A;lines</textarea>
9
10
  </div>
10
11
  <textarea>BLAH
11
12
  </textarea>
12
- <div class='text_area_test_area'>
13
- <textarea>Oneline</textarea>
13
+
14
+ <div class='text_area_test_area'>
15
+ <textarea>Oneline</textarea>
14
16
  </div>
15
17
  <textarea>BLAH</textarea>
16
- <div class='text_area_test_area'>
17
- <textarea>Two&#x000A;lines</textarea>
18
+
19
+ <div class='text_area_test_area'>
20
+ <textarea>Two&#x000A;lines</textarea>
21
+ </div>
22
+ <textarea>BLAH</textarea>
23
+
24
+ <div id='flattened'><div class='text_area_test_area'>
25
+ <textarea>Two&#x000A;lines</textarea>
18
26
  </div>
19
27
  <textarea>BLAH</textarea>
20
- <div id='flattened'><div class='text_area_test_area'>
21
- <textarea>Two&#x000A;lines</textarea>
22
28
  </div>
23
- <textarea>BLAH</textarea></div>
24
29
  </div>
25
30
  <div class='hithere'>
26
- Foo bar
27
- <pre>foo bar</pre>
28
- <pre>foo&#x000A;bar</pre>
29
- <p><pre>foo&#x000A;bar</pre></p>
30
- <p>
31
- foo
32
- bar
33
- </p>
31
+ Foo bar
32
+ <pre>foo bar</pre>
33
+ <pre>foo&#x000A;bar</pre>
34
+ <p><pre>foo&#x000A;bar</pre></p>
35
+ <p>foo
36
+ bar</p>
34
37
  </div>
35
38
  <div class='foo'>
36
- 13
37
- <textarea>
38
- a
39
- </textarea>
40
- <textarea>&#x000A;a</textarea>
41
- </div>
39
+ 13
40
+ <textarea>
41
+ a
42
+ </textarea>
43
+ <textarea>
44
+ a</textarea></div>
42
45
  <div id='whitespace_test'>
43
- <div class='text_area_test_area'>
44
- <textarea>Oneline</textarea>
46
+ <div class='text_area_test_area'>
47
+ <textarea>Oneline</textarea>
45
48
  </div>
46
49
  <textarea>BLAH
47
50
  </textarea>
48
- <div class='text_area_test_area'>
49
- <textarea>Two&#x000A;lines</textarea>
51
+
52
+ <div class='text_area_test_area'>
53
+ <textarea>Two&#x000A;lines</textarea>
50
54
  </div>
51
55
  <textarea>BLAH
52
56
  </textarea>
53
- <div class='text_area_test_area'>
54
- <textarea>Oneline</textarea>
57
+
58
+ <div class='text_area_test_area'>
59
+ <textarea>Oneline</textarea>
60
+ </div>
61
+ <textarea>BLAH</textarea>
62
+
63
+ <div class='text_area_test_area'>
64
+ <textarea>Two&#x000A;lines</textarea>
55
65
  </div>
56
66
  <textarea>BLAH</textarea>
57
- <div class='text_area_test_area'>
58
- <textarea>Two&#x000A;lines</textarea>
67
+
68
+ <div id='flattened'><div class='text_area_test_area'>
69
+ <textarea>Two&#x000A;lines</textarea>
59
70
  </div>
60
71
  <textarea>BLAH</textarea>
61
- <div id='flattened'><div class='text_area_test_area'>
62
- <textarea>Two&#x000A;lines</textarea>
63
72
  </div>
64
- <textarea>BLAH</textarea></div>
65
73
  </div>
66
74
  <div class='hithere'>
67
- Foo bar
68
- <pre>foo bar</pre>
69
- <pre>foo&#x000A;bar</pre>
70
- <p><pre>foo&#x000A;bar</pre></p>
71
- <p>
72
- foo
73
- bar
74
- </p>
75
- <pre> ___&#x000A; ,o88888&#x000A; ,o8888888'&#x000A; ,:o:o:oooo. ,8O88Pd8888"&#x000A; ,.::.::o:ooooOoOoO. ,oO8O8Pd888'"&#x000A; ,.:.::o:ooOoOoOO8O8OOo.8OOPd8O8O"&#x000A; , ..:.::o:ooOoOOOO8OOOOo.FdO8O8"&#x000A; , ..:.::o:ooOoOO8O888O8O,COCOO"&#x000A; , . ..:.::o:ooOoOOOO8OOOOCOCO"&#x000A; . ..:.::o:ooOoOoOO8O8OCCCC"o&#x000A; . ..:.::o:ooooOoCoCCC"o:o&#x000A; . ..:.::o:o:,cooooCo"oo:o:&#x000A; ` . . ..:.:cocoooo"'o:o:::'&#x000A; .` . ..::ccccoc"'o:o:o:::'&#x000A; :.:. ,c:cccc"':.:.:.:.:.'&#x000A; ..:.:"'`::::c:"'..:.:.:.:.:.' http://www.chris.com/ASCII/&#x000A; ...:.'.:.::::"' . . . . .'&#x000A; .. . ....:."' ` . . . ''&#x000A; . . . ...."'&#x000A; .. . ."' -hrr-&#x000A; .&#x000A;&#x000A;&#x000A; It's a planet!&#x000A;%strong This shouldn't be bold!</pre>
76
- <strong>This should!</strong>
77
- <textarea> ___ ___ ___ ___ &#x000A; /\__\ /\ \ /\__\ /\__\&#x000A; /:/ / /::\ \ /::| | /:/ /&#x000A; /:/__/ /:/\:\ \ /:|:| | /:/ / &#x000A; /::\ \ ___ /::\~\:\ \ /:/|:|__|__ /:/ / &#x000A; /:/\:\ /\__\ /:/\:\ \:\__\ /:/ |::::\__\ /:/__/ &#x000A; \/__\:\/:/ / \/__\:\/:/ / \/__/~~/:/ / \:\ \ &#x000A; \::/ / \::/ / /:/ / \:\ \ &#x000A; /:/ / /:/ / /:/ / \:\ \ &#x000A; /:/ / /:/ / /:/ / \:\__\&#x000A; \/__/ \/__/ \/__/ \/__/&#x000A; &#x000A; Many&#x000A; thanks&#x000A; to&#x000A; http://www.network-science.de/ascii/
78
- <strong>indeed!</strong></textarea>
75
+ Foo bar
76
+ <pre>foo bar</pre>
77
+ <pre>foo&#x000A;bar</pre>
78
+ <p><pre>foo&#x000A;bar</pre></p>
79
+ <p>foo
80
+ bar</p>
81
+ <pre> ___&#x000A; ,o88888&#x000A; ,o8888888'&#x000A; ,:o:o:oooo. ,8O88Pd8888"&#x000A; ,.::.::o:ooooOoOoO. ,oO8O8Pd888'"&#x000A; ,.:.::o:ooOoOoOO8O8OOo.8OOPd8O8O"&#x000A; , ..:.::o:ooOoOOOO8OOOOo.FdO8O8"&#x000A; , ..:.::o:ooOoOO8O888O8O,COCOO"&#x000A; , . ..:.::o:ooOoOOOO8OOOOCOCO"&#x000A; . ..:.::o:ooOoOoOO8O8OCCCC"o&#x000A; . ..:.::o:ooooOoCoCCC"o:o&#x000A; . ..:.::o:o:,cooooCo"oo:o:&#x000A; ` . . ..:.:cocoooo"'o:o:::'&#x000A; .` . ..::ccccoc"'o:o:o:::'&#x000A; :.:. ,c:cccc"':.:.:.:.:.'&#x000A; ..:.:"'`::::c:"'..:.:.:.:.:.' http://www.chris.com/ASCII/&#x000A; ...:.'.:.::::"' . . . . .'&#x000A; .. . ....:."' ` . . . ''&#x000A; . . . ...."'&#x000A; .. . ."' -hrr-&#x000A; .&#x000A;&#x000A;&#x000A; It's a planet!&#x000A;%strong This shouldn't be bold!</pre>
82
+ <strong>This should!</strong>
83
+ <textarea> ___ ___ ___ ___ &#x000A; /\__\ /\ \ /\__\ /\__\&#x000A; /:/ / /::\ \ /::| | /:/ /&#x000A; /:/__/ /:/\:\ \ /:|:| | /:/ / &#x000A; /::\ \ ___ /::\~\:\ \ /:/|:|__|__ /:/ / &#x000A; /:/\:\ /\__\ /:/\:\ \:\__\ /:/ |::::\__\ /:/__/ &#x000A; \/__\:\/:/ / \/__\:\/:/ / \/__/~~/:/ / \:\ \ &#x000A; \::/ / \::/ / /:/ / \:\ \ &#x000A; /:/ / /:/ / /:/ / \:\ \ &#x000A; /:/ / /:/ / /:/ / \:\__\&#x000A; \/__/ \/__/ \/__/ \/__/&#x000A; &#x000A; Many&#x000A; thanks&#x000A; to&#x000A; http://www.network-science.de/ascii/
84
+ <strong>indeed!</strong></textarea>
79
85
  </div>
80
86
  <div class='foo'>
81
- 13
87
+ 13
82
88
  </div>
83
89
  <pre> __ ______ __ ______&#x000A;.----.| |--.|__ |.----.| |--..--------.| __ |&#x000A;| __|| ||__ || __|| < | || __ |&#x000A;|____||__|__||______||____||__|__||__|__|__||______|</pre>
84
90
  <pre>foo
85
- bar</pre>
91
+ bar</pre>