kramdown 0.5.0 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of kramdown might be problematic. Click here for more details.

Files changed (43) hide show
  1. data/ChangeLog +315 -0
  2. data/Rakefile +35 -0
  3. data/VERSION +1 -1
  4. data/benchmark/generate_data.rb +6 -4
  5. data/benchmark/historic-jruby-1.4.0.dat +7 -7
  6. data/benchmark/historic-ruby-1.8.6.dat +7 -7
  7. data/benchmark/historic-ruby-1.8.7.dat +7 -7
  8. data/benchmark/historic-ruby-1.9.1p243.dat +7 -7
  9. data/benchmark/historic-ruby-1.9.2dev.dat +7 -7
  10. data/bin/kramdown +15 -4
  11. data/data/kramdown/document.html +9 -0
  12. data/data/kramdown/document.latex +38 -0
  13. data/doc/default.less.css +468 -0
  14. data/doc/default.template +23 -34
  15. data/doc/index.page +25 -20
  16. data/doc/news.page +1 -1
  17. data/doc/syntax.page +226 -159
  18. data/doc/tests.page +2 -1
  19. data/lib/kramdown/converter/html.rb +14 -2
  20. data/lib/kramdown/converter/latex.rb +19 -1
  21. data/lib/kramdown/document.rb +17 -9
  22. data/lib/kramdown/parser/kramdown.rb +4 -3
  23. data/lib/kramdown/parser/kramdown/autolink.rb +7 -2
  24. data/lib/kramdown/parser/kramdown/emphasis.rb +3 -2
  25. data/lib/kramdown/parser/kramdown/escaped_chars.rb +1 -1
  26. data/lib/kramdown/parser/kramdown/list.rb +2 -1
  27. data/lib/kramdown/parser/kramdown/math.rb +53 -0
  28. data/lib/kramdown/version.rb +1 -1
  29. data/man/man1/kramdown.1 +189 -0
  30. data/test/testcases/block/08_list/mixed.html +9 -3
  31. data/test/testcases/block/08_list/special_cases.html +49 -0
  32. data/test/testcases/block/08_list/special_cases.text +29 -0
  33. data/test/testcases/block/15_math/normal.html +19 -0
  34. data/test/testcases/block/15_math/normal.text +18 -0
  35. data/test/testcases/span/02_emphasis/errors.html +1 -1
  36. data/test/testcases/span/02_emphasis/nesting.html +4 -0
  37. data/test/testcases/span/02_emphasis/nesting.text +3 -0
  38. data/test/testcases/span/autolinks/url_links.html +3 -0
  39. data/test/testcases/span/autolinks/url_links.text +3 -0
  40. data/test/testcases/span/math/normal.html +5 -0
  41. data/test/testcases/span/math/normal.text +5 -0
  42. metadata +21 -6
  43. data/doc/default.css +0 -293
@@ -15,7 +15,9 @@
15
15
  <li>
16
16
  <p>item2</p>
17
17
  </li>
18
- <li>item3</li>
18
+ <li>
19
+ <p>item3</p>
20
+ </li>
19
21
  </ul>
20
22
 
21
23
  <p>With tabs/spaces, no paras:</p>
@@ -35,7 +37,9 @@
35
37
  <li>
36
38
  <p>item2</p>
37
39
  </li>
38
- <li>item3</li>
40
+ <li>
41
+ <p>item3</p>
42
+ </li>
39
43
  </ol>
40
44
 
41
45
  <p>Nested, without paras:</p>
@@ -97,7 +101,9 @@
97
101
  <li>now</li>
98
102
  </ul>
99
103
  </li>
100
- <li>item3</li>
104
+ <li>
105
+ <p>item3</p>
106
+ </li>
101
107
  </ol>
102
108
 
103
109
  <p>Mixed tabs and spaces:</p>
@@ -27,3 +27,52 @@ here
27
27
  <p>A paragraph
28
28
  1. followed not by ol
29
29
  - followed not by ul</p>
30
+
31
+ <p>A compact list:</p>
32
+
33
+ <ul>
34
+ <li>compact</li>
35
+ <li>list</li>
36
+ <li>items</li>
37
+ </ul>
38
+
39
+ <p>A normal list:</p>
40
+
41
+ <ul>
42
+ <li>
43
+ <p>not</p>
44
+ </li>
45
+ <li>
46
+ <p>compact</p>
47
+ </li>
48
+ <li>
49
+ <p>but here</p>
50
+ </li>
51
+ </ul>
52
+ <p>A normal list:</p>
53
+
54
+ <ul>
55
+ <li>
56
+ <p>not</p>
57
+ </li>
58
+ <li>
59
+ <p>compact</p>
60
+ </li>
61
+ <li>
62
+ <p>here</p>
63
+ </li>
64
+ </ul>
65
+
66
+ <p>A normal list:</p>
67
+
68
+ <ul>
69
+ <li>
70
+ <p>not</p>
71
+ </li>
72
+ <li>
73
+ <p>compact</p>
74
+ </li>
75
+ <li>
76
+ <p>here</p>
77
+ </li>
78
+ </ul>
@@ -17,3 +17,32 @@
17
17
  A paragraph
18
18
  1. followed not by ol
19
19
  - followed not by ul
20
+
21
+ A compact list:
22
+
23
+ * compact
24
+ * list
25
+ * items
26
+
27
+ A normal list:
28
+
29
+ * not
30
+
31
+ * compact
32
+
33
+ * but here
34
+ A normal list:
35
+
36
+ * not
37
+
38
+ * compact
39
+
40
+ * here
41
+
42
+ A normal list:
43
+
44
+ * not
45
+
46
+ * compact
47
+
48
+ * here
@@ -0,0 +1,19 @@
1
+ <p>This is a para.</p>
2
+ <div class="math"> \text{LaTeX} \lambda_5 </div>
3
+
4
+ <div class="math">\lambda_5 = \alpha + 4</div>
5
+
6
+ <div class="math">\lambda_\alpha &gt; 5</div>
7
+ <p>This is a para.</p>
8
+
9
+ <div class="math">\begin{align*}
10
+ &amp;=5 \\
11
+ &amp;=6 \\
12
+ \end{align*}</div>
13
+
14
+ <div class="math">5+5</div>
15
+ <div class="math">5+5</div>
16
+ <div class="math">5+5</div>
17
+ <div class="math">5+5</div>
18
+ <pre><code>$$5+5$$
19
+ </code></pre>
@@ -0,0 +1,18 @@
1
+ This is a para.
2
+ $$ \text{LaTeX} \lambda_5 $$
3
+
4
+ $$\lambda_5 = \alpha + 4$$
5
+
6
+ $$\lambda_\alpha > 5$$
7
+ This is a para.
8
+
9
+ $$\begin{align*}
10
+ &=5 \\
11
+ &=6 \\
12
+ \end{align*}$$
13
+
14
+ $$5+5$$
15
+ $$5+5$$
16
+ $$5+5$$
17
+ $$5+5$$
18
+ $$5+5$$
@@ -2,7 +2,7 @@
2
2
 
3
3
  <p>This is a **star.</p>
4
4
 
5
- <p>This is **a <em>star</em>.</p>
5
+ <p>This is <em>*a *star</em>.</p>
6
6
 
7
7
  <p>This is *a star*.</p>
8
8
 
@@ -32,3 +32,7 @@
32
32
  <li>a__b__</li>
33
33
  <li>a__b__c</li>
34
34
  </ul>
35
+ <ul>
36
+ <li><em>a _b_ c</em></li>
37
+ <li><strong>a __b__ c</strong></li>
38
+ </ul>
@@ -28,3 +28,6 @@
28
28
  - __a__b
29
29
  - a__b__
30
30
  - a__b__c
31
+ ^
32
+ - *a _b_ c*
33
+ - **a __b__ c**
@@ -4,6 +4,9 @@ As should <a href="&#109;&#097;&#105;&#108;&#116;&#111;:&#106;&#111;&#104;&#110;
4
4
  Another ampersand <a href="http://www.example.com/?doit&amp;x=y">http://www.example.com/?doit&amp;x=y</a> link.
5
5
  More entities <a href="http://www.example.com/?doit&amp;x=&quot;y&amp;z=y">http://www.example.com/?doit&amp;x=&quot;y&amp;z=y</a>.</p>
6
6
 
7
+ <p>Email international <a href="&#109;&#097;&#105;&#108;&#116;&#111;:ü&#098;&#117;&#110;&#103;&#064;&#109;&#097;&#099;&#104;&#116;&#046;&#100;&#101;&#110;&#046;&#109;&#101;&#105;&#115;&#116;&#101;&#114;&#046;&#100;&#101;">ü&#098;&#117;&#110;&#103;&#064;&#109;&#097;&#099;&#104;&#116;&#046;&#100;&#101;&#110;&#046;&#109;&#101;&#105;&#115;&#116;&#101;&#114;&#046;&#100;&#101;</a>, <a href="&#109;&#097;&#105;&#108;&#116;&#111;:ü&#046;äß&#064;&#104;ü&#108;&#115;&#101;&#046;&#100;&#101;">ü&#046;äß&#064;&#104;ü&#108;&#115;&#101;&#046;&#100;&#101;</a>
8
+ Email invalid: &lt;<a href="mailtos:me@example.com">me@example.com</a>&gt;</p>
9
+
7
10
  <p>Autolink with underscore: <a href="http://www.example.com/with_under_score">http://www.example.com/with_under_score</a></p>
8
11
 
9
12
  <p><a href="http://www.example.com/">http://www.example.com/</a></p>
@@ -4,6 +4,9 @@ As should <john.doe@example.com> this.
4
4
  Another ampersand <http://www.example.com/?doit&x=y> link.
5
5
  More entities <http://www.example.com/?doit&amp;x=&quot;y&z=y>.
6
6
 
7
+ Email international <übung@macht.den.meister.de>, <ü.äß@hülse.de>
8
+ Email invalid: <[me@example.com](mailtos:me@example.com)>
9
+
7
10
  Autolink with underscore: <http://www.example.com/with_under_score>
8
11
 
9
12
  <http://www.example.com/>
@@ -0,0 +1,5 @@
1
+ <p>This is <span class="math">\lambda_\alpha &gt; 5</span> some math.</p>
2
+
3
+ <p><span class="math">5+5</span> inline math, $5.00 $$no math$$</p>
4
+
5
+ <p>$$5+5$$ inline math</p>
@@ -0,0 +1,5 @@
1
+ This is $$\lambda_\alpha > 5$$ some math.
2
+
3
+ \$$5+5$$ inline math, $5.00 \$$no math$$
4
+
5
+ \$\$5+5$$ inline math
metadata CHANGED
@@ -1,7 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kramdown
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 6
8
+ - 0
9
+ version: 0.6.0
5
10
  platform: ruby
6
11
  authors:
7
12
  - Thomas Leitner
@@ -9,7 +14,7 @@ autorequire:
9
14
  bindir: bin
10
15
  cert_chain: []
11
16
 
12
- date: 2010-02-15 00:00:00 +01:00
17
+ date: 2010-04-06 00:00:00 +02:00
13
18
  default_executable: kramdown
14
19
  dependencies: []
15
20
 
@@ -76,6 +81,7 @@ files:
76
81
  - lib/kramdown/parser/kramdown/line_break.rb
77
82
  - lib/kramdown/parser/kramdown/link.rb
78
83
  - lib/kramdown/parser/kramdown/list.rb
84
+ - lib/kramdown/parser/kramdown/math.rb
79
85
  - lib/kramdown/parser/kramdown/paragraph.rb
80
86
  - lib/kramdown/parser/kramdown/smart_quotes.rb
81
87
  - lib/kramdown/parser/kramdown/table.rb
@@ -84,7 +90,10 @@ files:
84
90
  - lib/kramdown/parser.rb
85
91
  - lib/kramdown/version.rb
86
92
  - lib/kramdown.rb
87
- - doc/default.css
93
+ - man/man1/kramdown.1
94
+ - data/kramdown/document.html
95
+ - data/kramdown/document.latex
96
+ - doc/default.less.css
88
97
  - doc/default.template
89
98
  - doc/index.page
90
99
  - doc/installation.page
@@ -260,6 +269,8 @@ files:
260
269
  - test/testcases/block/14_table/no_table.text
261
270
  - test/testcases/block/14_table/simple.html
262
271
  - test/testcases/block/14_table/simple.text
272
+ - test/testcases/block/15_math/normal.html
273
+ - test/testcases/block/15_math/normal.text
263
274
  - test/testcases/encoding.html
264
275
  - test/testcases/encoding.text
265
276
  - test/testcases/span/01_link/empty.html
@@ -313,6 +324,8 @@ files:
313
324
  - test/testcases/span/ial/simple.text
314
325
  - test/testcases/span/line_breaks/normal.html
315
326
  - test/testcases/span/line_breaks/normal.text
327
+ - test/testcases/span/math/normal.html
328
+ - test/testcases/span/math/normal.text
316
329
  - test/testcases/span/text_substitutions/entities.html
317
330
  - test/testcases/span/text_substitutions/entities.text
318
331
  - test/testcases/span/text_substitutions/greaterthan.html
@@ -336,18 +349,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
336
349
  requirements:
337
350
  - - ">="
338
351
  - !ruby/object:Gem::Version
352
+ segments:
353
+ - 0
339
354
  version: "0"
340
- version:
341
355
  required_rubygems_version: !ruby/object:Gem::Requirement
342
356
  requirements:
343
357
  - - ">="
344
358
  - !ruby/object:Gem::Version
359
+ segments:
360
+ - 0
345
361
  version: "0"
346
- version:
347
362
  requirements: []
348
363
 
349
364
  rubyforge_project: kramdown
350
- rubygems_version: 1.3.5
365
+ rubygems_version: 1.3.6
351
366
  signing_key:
352
367
  specification_version: 3
353
368
  summary: kramdown is a fast, pure-Ruby Markdown-superset converter.
data/doc/default.css DELETED
@@ -1,293 +0,0 @@
1
- * { margin:0; padding:0; }
2
- body, div, span, p, a, img, ul, ol, li, table, th, tr, td, form, fieldset, legend, dl, dt, dd, blockquote, applet, object { border:0; }
3
- body {
4
- padding: 0;
5
- background: #fff url("img/bg.jpg") repeat-x;
6
- font: 0.8em/1.5 "arial",sans-serif;
7
- color: #354146;
8
- text-align: center;
9
- }
10
-
11
- /* links --------------------------------------------------------------- */
12
- a {color:#1666a3;}
13
- a:link {color:#1666a3;}
14
- a:hover {color:#0b4775;}
15
-
16
- /* header tags --------------------------------------------------------------------- */
17
- h1, h2, h3, h4, h5, h6 { margin:15px 0 10px 0; }
18
- h1 { font-size:200%; font-family: Georgia;}
19
- h1#logo a{color: #ced1d2; text-decoration: none; display: block;padding: 18px 0 17px; font-weight: normal;}
20
- h1#logo a:hover{color: #fff;}
21
- h1#logo span.slogan {font-size: 60%; padding-left: 1.5em;}
22
- h2 { font-size:130%; color: #354146;font-weight: bold; padding: 0; }
23
- h3 { font-size:120%; }
24
- h4 { font-size:120%; }
25
- h5 { font-size:100%; }
26
-
27
- /* layout ---------------------------------------------------------------------- */
28
- #layout {
29
- text-align:left;
30
- }
31
- #container {
32
- clear: both;
33
- }
34
- #intro{
35
- background: #e6e8e9; height: auto;
36
- }
37
- #intro-in{
38
- width:891px;
39
- margin: 0 auto;
40
- padding: 20px 0;
41
- }
42
-
43
- #header {
44
- width:891px;
45
- margin:0 auto;
46
- }
47
-
48
-
49
- /* horizontal navigation --------------------------------------------------- */
50
- #nav {
51
- width:891px;
52
- margin:0 auto;
53
- }
54
- #nav ul {
55
- margin:0;
56
- padding:0;
57
- list-style:none;
58
- height: 35px;
59
- }
60
- #nav ul li {
61
- float:left;
62
- display:block;
63
- margin:0;
64
- padding:0;}
65
- #nav ul li a, #nav ul li span {
66
- display: block;
67
- float: left;
68
- font-size: 90%;
69
- color: #fff;
70
- text-decoration: none;
71
- padding: 12px 20px 8px;
72
- text-align: center;
73
- }
74
- #nav ul li a:hover, #nav ul li span:hover {
75
- color: #ced1d2;
76
- text-decoration: underline;
77
- }
78
- #nav ul li#active a, #nav ul li.webgen-menu-item-selected span {
79
- color: #101517;
80
- border: 1px solid #fff;
81
- border-bottom:1px solid #e6e8e9;
82
- background:#e6e8e9; text-decoration:none;}
83
-
84
- /* main content ---------------------------------------------------------------- */
85
-
86
- .content {
87
- padding: 0 0 0 0;
88
- z-index: 10;
89
- width:891px;
90
- margin:0 auto;
91
- }
92
- .content .in{
93
- padding: 20px 0 30px;
94
- }
95
- p.intro{
96
- background: url("img/line.jpg");
97
- line-height: 23px;
98
- margin:0 0 0;
99
- }
100
- .shadow{
101
- border-top: 1px solid #dddddd;
102
- padding: 10px 0;
103
- background: url("img/shadow.jpg") no-repeat;
104
- }
105
-
106
- img.thumb{padding: 3px; background: #fff; border: 1px solid #d1d1d1;}
107
-
108
- .columns {list-style: none;margin:10px 0 0 0;padding:0; font-size: 90%;}
109
- .columns li{float: left; width: 32%;}
110
- .columns li.col2{border-left: 1px solid #d7d7d7;border-right: 1px solid #d7d7d7;}
111
- .columns li h3{padding: 0 10px;color: #2e4650; margin: 0 0 5px;}
112
- .columns li.col2 h3{padding-left: 20px;}
113
- .columns li.col3 h3{padding-left: 20px;}
114
- .columns li p{line-height: 22px;padding: 0 20px 0 10px; margin: 0; color: #3f4345;}
115
- .columns li.col2 p{padding: 0 20px 0 20px;}
116
- .columns li.col3 p{padding: 0 10px 0 20px;}
117
- .columns li a.more{display: block;color: #1666a3;padding: 5px 0;}
118
- .columns li a.more:hover{color: #0b4775; text-decoration: none;}
119
-
120
-
121
-
122
- /* footer ----------------------------------------------------------------- */
123
- #footer {
124
- width:891px;
125
- margin:0 auto;
126
- clear:both;
127
- font-size: 85%;
128
- padding-bottom: 70px;
129
- color: #898989;
130
- }
131
- #footer a{color: #898989;}
132
- #footer a:hover{color: #666666; text-decoration: none;}
133
- #footer .f-left, #footer .f-right { padding: 0 10px; }
134
-
135
-
136
-
137
-
138
- /* paragraphs -------------------------------------------------------------------- */
139
- p { margin:15px 0; }
140
-
141
- /* tables --------------------------------------------------------------------- */
142
- table { margin:15px 0; border-collapse:collapse; border-spacing:0; font-size:100%; }
143
- th { text-align:center; font-weight:bold; }
144
- th, td { padding:3px 5px; }
145
-
146
- /* lists --------------------------------------------------------------------- */
147
- ul, ol { display:block; margin:15px 0 15px 40px; }
148
- ul ul, ul ul ul, ol ol, ol ol ol { margin:0; margin-left:20px; }
149
- ol { list-style-type:decimal; }
150
- ol ol { list-style-type:upper-alpha; }
151
- ol ol ol {list-style-type:lower-alpha; }
152
- li { display:list-item; }
153
- ul li a { text-decoration:underline; }
154
-
155
- /* definitions -------------------------------------------------------------------- */
156
- dl { margin:15px 0; }
157
- dt { font-weight:bold; }
158
- dd { margin-left:30px; }
159
-
160
- /* other HTML tags --------------------------------------------------------------------- */
161
- fieldset { margin:15px 0; padding:10px; border:1px solid #CCC; }
162
- legend { margin-left:10px; font-size:100%; font-weight:bold; color:#000; }
163
- abbr, acronym, .help { border-bottom:1px dotted #CCC; cursor:help; }
164
- blockquote { margin:15px 20px; font-style:italic; }
165
- del, .del { text-decoration:line-through; }
166
- strong, .strong { font-weight:bold; }
167
- cite, em, q, var { font-style:italic; }
168
- code, kbd, samp {font-family:monospace; font-size:110%; }
169
- hr { display:block; height:1px; margin:10px 0; padding:0; border:0 solid #CCC; background:#CCC; color:#CCC;}
170
- .f-left {float:left;}
171
- .f-right {float:right;}
172
- .a-left, tr.a-left td {text-align:left;}
173
- .a-center, tr.a-center td {text-align:center;}
174
- .a-right, tr.a-right td {text-align:right;}
175
- .a-justify {text-align:justify;}
176
- .va-top {vertical-align:top;}
177
- .va-middle {vertical-align:middle;}
178
- .va-bottom {vertical-align:bottom;}
179
- .clear { clear:both; }
180
- .box { min-height:1px; }
181
- .box:after { display:block; visibility:hidden; clear:both; line-height:0; font-size:0; content:"."; }
182
- .noscreen { display:none; }
183
- .mleft10 { margin-left: 10px; }
184
- .mright10 { margin-right: 10px; }
185
- .mtop10 { margin-top: 10px; }
186
- .mbottom10 { margin-bottom: 10px; }
187
-
188
-
189
-
190
- input.small{
191
- width: 50px;
192
- }
193
- input.normal{
194
- width: 146px;
195
- }
196
- .bigger {font-size:115%;}
197
- .smaller {font-size:85%;}
198
-
199
- .high {color:#00F;}
200
- .nonhigh {color:#777;}
201
-
202
- .foto{ display: block; border: 3px solid #ddd;}
203
-
204
-
205
- /* added definitions ------------------------------------------------------------ */
206
- .news-item + .news-item {
207
- border-top: 1px solid #dddddd;
208
- }
209
- .news-date {
210
- margin-top: 5px;
211
- }
212
-
213
- pre {
214
- margin: 15px 10px;
215
- background-color: #e6e8e9;
216
- color: #000;
217
- }
218
-
219
- pre.show-whitespaces .ws-space {
220
- background-color: #f44;
221
- }
222
- pre.show-whitespaces .ws-space-l {
223
- background-color: #f22;
224
- }
225
- pre.show-whitespaces .ws-space-r {
226
- background-color: #f00;
227
- }
228
-
229
- pre.show-whitespaces .ws-tab {
230
- background-color: #ff4;
231
- }
232
- pre.show-whitespaces .ws-tab-l {
233
- background-color: #ff2;
234
- }
235
- pre.show-whitespaces .ws-tab-r {
236
- background-color: #ff0;
237
- }
238
-
239
- pre.show-whitespaces.ws-lr .ws-tab {
240
- background-color: inherit;
241
- }
242
- pre.show-whitespaces.ws-lr .ws-space {
243
- background-color: inherit;
244
- opacity: 0;
245
- }
246
-
247
- blockquote.markdown-difference {
248
- margin: 15px 20px;
249
- padding: 5px;
250
- border: 2px solid #e6e8e9;
251
- background-color: #ffffee
252
- }
253
-
254
- blockquote.markdown-difference:before {
255
- content: "Difference to Standard Markdown";
256
- display: block;
257
- font-weight: bold;
258
- margin-top: 5px
259
- }
260
-
261
- pre.kdexample-before {
262
- width: 45%;
263
- float: left;
264
- }
265
-
266
- pre.kdexample-after-source {
267
- width: 45%;
268
- float: right;
269
- background-color: #ffffee;
270
- border: 2px solid #e6e8e9;
271
- margin-bottom: 3px;
272
- }
273
-
274
- div.kdexample-after-live {
275
- width: 45%;
276
- float: right;
277
- clear: right;
278
- background-color: #eeffee;
279
- border: 2px solid #e6e8e9;
280
- margin: 0px 10px;
281
- }
282
-
283
- div.kdsyntaxlink {
284
- float: right;
285
- padding: 5px;
286
- border: 1px solid #e6e8e9;
287
- margin-right: 10px;
288
- margin-left: 10px;
289
- }
290
-
291
- div.kdsyntaxlink a {
292
- text-decoration: none;
293
- }