markdownplus 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +137 -3
- data/lib/markdownplus.rb +5 -0
- data/lib/markdownplus/directive_parser.rb +17 -0
- data/lib/markdownplus/directives.treetop +33 -0
- data/lib/markdownplus/github_renderer.rb +19 -0
- data/lib/markdownplus/handler.rb +120 -0
- data/lib/markdownplus/handler_registry.rb +17 -0
- data/lib/markdownplus/literals.rb +101 -0
- data/lib/markdownplus/parser.rb +75 -125
- data/lib/markdownplus/version.rb +1 -1
- data/markdownplus.gemspec +1 -0
- data/spec/directive_parser_spec.rb +275 -0
- data/spec/fixtures/bad_json.json +1 -0
- data/spec/fixtures/directives.html +110 -0
- data/spec/fixtures/directives.mdp +28 -0
- data/spec/fixtures/fake.csv +21 -0
- data/spec/fixtures/fake.json +1 -0
- data/spec/fixtures/simple.mdp +2 -6
- data/spec/fixtures/variables.html +29 -0
- data/spec/fixtures/variables.mdp +14 -0
- data/spec/parser_spec.rb +124 -47
- metadata +38 -4
- data/spec/fixtures/include.mdp +0 -33
@@ -0,0 +1 @@
|
|
1
|
+
[{"name":"Winnifred Legros","email":"zakary.wiza@runte.name","company":"Howell-Rempel","credit_card_number":"1212-1221-1121-1234","color":"mint green"},{"name":"Sincere Fritsch","email":"neha@schuppe.name","company":"Bahringer and Sons","credit_card_number":"1228-1221-1221-1431","color":"lavender"},{"name":"Anya Ruecker","email":"brown@vonrueden.org","company":"Sporer and Sons","credit_card_number":"1212-1221-1121-1234","color":"violet"},{"name":"Cicero Funk","email":"retta_rempel@parisianbotsford.biz","company":"Feeney, Auer and Schuster","credit_card_number":"1211-1221-1234-2201","color":"lavender"},{"name":"Alessandro Mertz","email":"glenna@hand.name","company":"Schowalter and Sons","credit_card_number":"1211-1221-1234-2201","color":"salmon"
|
@@ -0,0 +1,110 @@
|
|
1
|
+
<p>This is a markdown plus document illustrating include conditions</p>
|
2
|
+
|
3
|
+
<p>Fake Name,Fake Email,Fake Company,Fake Credit Card,Fake Favorite Color
|
4
|
+
Dena Auer,ward.wuckert@gleason.org,Ward Group,1211-1221-1234-2201,purple
|
5
|
+
Rosalyn Jast,viva@bartell.org,"Wyman, Hartmann and Bradtke",1228-1221-1221-1431,grey
|
6
|
+
Lavada Klein,bret@heaneywintheiser.com,Thompson Inc,1228-1221-1221-1431,salmon
|
7
|
+
Hailee Green,marty@luettgen.com,Feest-Hilpert,1212-1221-1121-1234,silver
|
8
|
+
Lula Orn,zaria<em>torp@ferryfritsch.org,"Bartell, Batz and Bosco",1234-2121-1221-1211,blue
|
9
|
+
Eloisa Sauer,hiram@keelingfisher.net,Lemke-Robel,1228-1221-1221-1431,green
|
10
|
+
Mose Dietrich MD,irwin@lockmanbatz.biz,Wuckert Group,1212-1221-1121-1234,plum
|
11
|
+
Elijah Cronin,alice</em>bednar@keeling.info,Schroeder and Sons,1228-1221-1221-1431,black
|
12
|
+
Icie McLaughlin,bianka@monahan.biz,"Kozey, Hudson and Carter",1228-1221-1221-1431,red
|
13
|
+
Nova Schumm,rosalee<em>beer@willbeier.biz,Luettgen-Padberg,1212-1221-1121-1234,red
|
14
|
+
Adell Heaney,juanita</em>dietrich@durgan.com,"Howe, Streich and Weimann",1211-1221-1234-2201,purple
|
15
|
+
Lurline Jones,jalyn.fisher@deckow.com,"MacGyver, Klocko and Gibson",1212-1221-1121-1234,grey
|
16
|
+
Danyka Hagenes,raoul.hagenes@bode.com,Pagac Inc,1212-1221-1121-1234,mint green
|
17
|
+
Lenna Kunze PhD,maynard@kovacekjaskolski.org,Gulgowski Group,1212-1221-1121-1234,pink
|
18
|
+
Jazmin Brown DDS,gayle@hermannparker.biz,Bayer-Hyatt,1212-1221-1121-1234,plum
|
19
|
+
Daphne Green,lisa@larson.name,Bayer Group,1212-1221-1121-1234,black
|
20
|
+
Webster Lakin,kavon_graham@beahancarroll.info,"Pfannerstill, Medhurst and Blanda",1234-2121-1221-1211,indigo
|
21
|
+
Mauricio Batz,alyce@quigley.info,"Swift, Willms and Bogisich",1228-1221-1221-1431,orchid
|
22
|
+
Vita Rutherford,anastasia.king@bartoletti.info,Daugherty-McGlynn,1234-2121-1221-1211,lavender
|
23
|
+
Augusta Grimes,elaina@feil.org,Pacocha-Mosciski,1234-2121-1221-1211,pink</p>
|
24
|
+
|
25
|
+
<table class='table table-striped'><thead><tr><th>Fake Name</th><th>Fake Email</th><th>Fake Company</th><th>Fake Credit Card</th><th>Fake Favorite Color</th></tr></thead>
|
26
|
+
<tbody>
|
27
|
+
<tr><td>Dena Auer</td><td>ward.wuckert@gleason.org</td><td>Ward Group</td><td>1211-1221-1234-2201</td><td>purple</td></tr>
|
28
|
+
<tr><td>Rosalyn Jast</td><td>viva@bartell.org</td><td>Wyman, Hartmann and Bradtke</td><td>1228-1221-1221-1431</td><td>grey</td></tr>
|
29
|
+
<tr><td>Lavada Klein</td><td>bret@heaneywintheiser.com</td><td>Thompson Inc</td><td>1228-1221-1221-1431</td><td>salmon</td></tr>
|
30
|
+
<tr><td>Hailee Green</td><td>marty@luettgen.com</td><td>Feest-Hilpert</td><td>1212-1221-1121-1234</td><td>silver</td></tr>
|
31
|
+
<tr><td>Lula Orn</td><td>zaria_torp@ferryfritsch.org</td><td>Bartell, Batz and Bosco</td><td>1234-2121-1221-1211</td><td>blue</td></tr>
|
32
|
+
<tr><td>Eloisa Sauer</td><td>hiram@keelingfisher.net</td><td>Lemke-Robel</td><td>1228-1221-1221-1431</td><td>green</td></tr>
|
33
|
+
<tr><td>Mose Dietrich MD</td><td>irwin@lockmanbatz.biz</td><td>Wuckert Group</td><td>1212-1221-1121-1234</td><td>plum</td></tr>
|
34
|
+
<tr><td>Elijah Cronin</td><td>alice_bednar@keeling.info</td><td>Schroeder and Sons</td><td>1228-1221-1221-1431</td><td>black</td></tr>
|
35
|
+
<tr><td>Icie McLaughlin</td><td>bianka@monahan.biz</td><td>Kozey, Hudson and Carter</td><td>1228-1221-1221-1431</td><td>red</td></tr>
|
36
|
+
<tr><td>Nova Schumm</td><td>rosalee_beer@willbeier.biz</td><td>Luettgen-Padberg</td><td>1212-1221-1121-1234</td><td>red</td></tr>
|
37
|
+
<tr><td>Adell Heaney</td><td>juanita_dietrich@durgan.com</td><td>Howe, Streich and Weimann</td><td>1211-1221-1234-2201</td><td>purple</td></tr>
|
38
|
+
<tr><td>Lurline Jones</td><td>jalyn.fisher@deckow.com</td><td>MacGyver, Klocko and Gibson</td><td>1212-1221-1121-1234</td><td>grey</td></tr>
|
39
|
+
<tr><td>Danyka Hagenes</td><td>raoul.hagenes@bode.com</td><td>Pagac Inc</td><td>1212-1221-1121-1234</td><td>mint green</td></tr>
|
40
|
+
<tr><td>Lenna Kunze PhD</td><td>maynard@kovacekjaskolski.org</td><td>Gulgowski Group</td><td>1212-1221-1121-1234</td><td>pink</td></tr>
|
41
|
+
<tr><td>Jazmin Brown DDS</td><td>gayle@hermannparker.biz</td><td>Bayer-Hyatt</td><td>1212-1221-1121-1234</td><td>plum</td></tr>
|
42
|
+
<tr><td>Daphne Green</td><td>lisa@larson.name</td><td>Bayer Group</td><td>1212-1221-1121-1234</td><td>black</td></tr>
|
43
|
+
<tr><td>Webster Lakin</td><td>kavon_graham@beahancarroll.info</td><td>Pfannerstill, Medhurst and Blanda</td><td>1234-2121-1221-1211</td><td>indigo</td></tr>
|
44
|
+
<tr><td>Mauricio Batz</td><td>alyce@quigley.info</td><td>Swift, Willms and Bogisich</td><td>1228-1221-1221-1431</td><td>orchid</td></tr>
|
45
|
+
<tr><td>Vita Rutherford</td><td>anastasia.king@bartoletti.info</td><td>Daugherty-McGlynn</td><td>1234-2121-1221-1211</td><td>lavender</td></tr>
|
46
|
+
<tr><td>Augusta Grimes</td><td>elaina@feil.org</td><td>Pacocha-Mosciski</td><td>1234-2121-1221-1211</td><td>pink</td></tr>
|
47
|
+
</tbody></table>
|
48
|
+
|
49
|
+
<table class='table table-striped'><thead><tr><th>Fake Name</th><th>Fake Email</th><th>Fake Company</th><th>Fake Credit Card</th><th>Fake Favorite Color</th></tr></thead>
|
50
|
+
<tbody>
|
51
|
+
<tr><td>Dena Auer</td><td>ward.wuckert@gleason.org</td><td>Ward Group</td><td>1211-1221-1234-2201</td><td>purple</td></tr>
|
52
|
+
<tr><td>Rosalyn Jast</td><td>viva@bartell.org</td><td>Wyman, Hartmann and Bradtke</td><td>1228-1221-1221-1431</td><td>grey</td></tr>
|
53
|
+
<tr><td>Lavada Klein</td><td>bret@heaneywintheiser.com</td><td>Thompson Inc</td><td>1228-1221-1221-1431</td><td>salmon</td></tr>
|
54
|
+
<tr><td>Hailee Green</td><td>marty@luettgen.com</td><td>Feest-Hilpert</td><td>1212-1221-1121-1234</td><td>silver</td></tr>
|
55
|
+
<tr><td>Lula Orn</td><td>zaria_torp@ferryfritsch.org</td><td>Bartell, Batz and Bosco</td><td>1234-2121-1221-1211</td><td>blue</td></tr>
|
56
|
+
<tr><td>Eloisa Sauer</td><td>hiram@keelingfisher.net</td><td>Lemke-Robel</td><td>1228-1221-1221-1431</td><td>green</td></tr>
|
57
|
+
<tr><td>Mose Dietrich MD</td><td>irwin@lockmanbatz.biz</td><td>Wuckert Group</td><td>1212-1221-1121-1234</td><td>plum</td></tr>
|
58
|
+
<tr><td>Elijah Cronin</td><td>alice_bednar@keeling.info</td><td>Schroeder and Sons</td><td>1228-1221-1221-1431</td><td>black</td></tr>
|
59
|
+
<tr><td>Icie McLaughlin</td><td>bianka@monahan.biz</td><td>Kozey, Hudson and Carter</td><td>1228-1221-1221-1431</td><td>red</td></tr>
|
60
|
+
<tr><td>Nova Schumm</td><td>rosalee_beer@willbeier.biz</td><td>Luettgen-Padberg</td><td>1212-1221-1121-1234</td><td>red</td></tr>
|
61
|
+
<tr><td>Adell Heaney</td><td>juanita_dietrich@durgan.com</td><td>Howe, Streich and Weimann</td><td>1211-1221-1234-2201</td><td>purple</td></tr>
|
62
|
+
<tr><td>Lurline Jones</td><td>jalyn.fisher@deckow.com</td><td>MacGyver, Klocko and Gibson</td><td>1212-1221-1121-1234</td><td>grey</td></tr>
|
63
|
+
<tr><td>Danyka Hagenes</td><td>raoul.hagenes@bode.com</td><td>Pagac Inc</td><td>1212-1221-1121-1234</td><td>mint green</td></tr>
|
64
|
+
<tr><td>Lenna Kunze PhD</td><td>maynard@kovacekjaskolski.org</td><td>Gulgowski Group</td><td>1212-1221-1121-1234</td><td>pink</td></tr>
|
65
|
+
<tr><td>Jazmin Brown DDS</td><td>gayle@hermannparker.biz</td><td>Bayer-Hyatt</td><td>1212-1221-1121-1234</td><td>plum</td></tr>
|
66
|
+
<tr><td>Daphne Green</td><td>lisa@larson.name</td><td>Bayer Group</td><td>1212-1221-1121-1234</td><td>black</td></tr>
|
67
|
+
<tr><td>Webster Lakin</td><td>kavon_graham@beahancarroll.info</td><td>Pfannerstill, Medhurst and Blanda</td><td>1234-2121-1221-1211</td><td>indigo</td></tr>
|
68
|
+
<tr><td>Mauricio Batz</td><td>alyce@quigley.info</td><td>Swift, Willms and Bogisich</td><td>1228-1221-1221-1431</td><td>orchid</td></tr>
|
69
|
+
<tr><td>Vita Rutherford</td><td>anastasia.king@bartoletti.info</td><td>Daugherty-McGlynn</td><td>1234-2121-1221-1211</td><td>lavender</td></tr>
|
70
|
+
<tr><td>Augusta Grimes</td><td>elaina@feil.org</td><td>Pacocha-Mosciski</td><td>1234-2121-1221-1211</td><td>pink</td></tr>
|
71
|
+
</tbody></table>
|
72
|
+
<div class="highlight"><pre><span class="p">[</span>
|
73
|
+
<span class="p">{</span>
|
74
|
+
<span class="nt">"name"</span><span class="p">:</span> <span class="s2">"Winnifred Legros"</span><span class="p">,</span>
|
75
|
+
<span class="nt">"email"</span><span class="p">:</span> <span class="s2">"zakary.wiza@runte.name"</span><span class="p">,</span>
|
76
|
+
<span class="nt">"company"</span><span class="p">:</span> <span class="s2">"Howell-Rempel"</span><span class="p">,</span>
|
77
|
+
<span class="nt">"credit_card_number"</span><span class="p">:</span> <span class="s2">"1212-1221-1121-1234"</span><span class="p">,</span>
|
78
|
+
<span class="nt">"color"</span><span class="p">:</span> <span class="s2">"mint green"</span>
|
79
|
+
<span class="p">},</span>
|
80
|
+
<span class="p">{</span>
|
81
|
+
<span class="nt">"name"</span><span class="p">:</span> <span class="s2">"Sincere Fritsch"</span><span class="p">,</span>
|
82
|
+
<span class="nt">"email"</span><span class="p">:</span> <span class="s2">"neha@schuppe.name"</span><span class="p">,</span>
|
83
|
+
<span class="nt">"company"</span><span class="p">:</span> <span class="s2">"Bahringer and Sons"</span><span class="p">,</span>
|
84
|
+
<span class="nt">"credit_card_number"</span><span class="p">:</span> <span class="s2">"1228-1221-1221-1431"</span><span class="p">,</span>
|
85
|
+
<span class="nt">"color"</span><span class="p">:</span> <span class="s2">"lavender"</span>
|
86
|
+
<span class="p">},</span>
|
87
|
+
<span class="p">{</span>
|
88
|
+
<span class="nt">"name"</span><span class="p">:</span> <span class="s2">"Anya Ruecker"</span><span class="p">,</span>
|
89
|
+
<span class="nt">"email"</span><span class="p">:</span> <span class="s2">"brown@vonrueden.org"</span><span class="p">,</span>
|
90
|
+
<span class="nt">"company"</span><span class="p">:</span> <span class="s2">"Sporer and Sons"</span><span class="p">,</span>
|
91
|
+
<span class="nt">"credit_card_number"</span><span class="p">:</span> <span class="s2">"1212-1221-1121-1234"</span><span class="p">,</span>
|
92
|
+
<span class="nt">"color"</span><span class="p">:</span> <span class="s2">"violet"</span>
|
93
|
+
<span class="p">},</span>
|
94
|
+
<span class="p">{</span>
|
95
|
+
<span class="nt">"name"</span><span class="p">:</span> <span class="s2">"Cicero Funk"</span><span class="p">,</span>
|
96
|
+
<span class="nt">"email"</span><span class="p">:</span> <span class="s2">"retta_rempel@parisianbotsford.biz"</span><span class="p">,</span>
|
97
|
+
<span class="nt">"company"</span><span class="p">:</span> <span class="s2">"Feeney, Auer and Schuster"</span><span class="p">,</span>
|
98
|
+
<span class="nt">"credit_card_number"</span><span class="p">:</span> <span class="s2">"1211-1221-1234-2201"</span><span class="p">,</span>
|
99
|
+
<span class="nt">"color"</span><span class="p">:</span> <span class="s2">"lavender"</span>
|
100
|
+
<span class="p">},</span>
|
101
|
+
<span class="p">{</span>
|
102
|
+
<span class="nt">"name"</span><span class="p">:</span> <span class="s2">"Alessandro Mertz"</span><span class="p">,</span>
|
103
|
+
<span class="nt">"email"</span><span class="p">:</span> <span class="s2">"glenna@hand.name"</span><span class="p">,</span>
|
104
|
+
<span class="nt">"company"</span><span class="p">:</span> <span class="s2">"Schowalter and Sons"</span><span class="p">,</span>
|
105
|
+
<span class="nt">"credit_card_number"</span><span class="p">:</span> <span class="s2">"1211-1221-1234-2201"</span><span class="p">,</span>
|
106
|
+
<span class="nt">"color"</span><span class="p">:</span> <span class="s2">"salmon"</span>
|
107
|
+
<span class="p">}</span>
|
108
|
+
<span class="p">]</span>
|
109
|
+
</pre></div><div class="highlight"><pre><span class="p">[{</span><span class="nt">"name"</span><span class="p">:</span><span class="s2">"Winnifred Legros"</span><span class="p">,</span><span class="nt">"email"</span><span class="p">:</span><span class="s2">"zakary.wiza@runte.name"</span><span class="p">,</span><span class="nt">"company"</span><span class="p">:</span><span class="s2">"Howell-Rempel"</span><span class="p">,</span><span class="nt">"credit_card_number"</span><span class="p">:</span><span class="s2">"1212-1221-1121-1234"</span><span class="p">,</span><span class="nt">"color"</span><span class="p">:</span><span class="s2">"mint green"</span><span class="p">},{</span><span class="nt">"name"</span><span class="p">:</span><span class="s2">"Sincere Fritsch"</span><span class="p">,</span><span class="nt">"email"</span><span class="p">:</span><span class="s2">"neha@schuppe.name"</span><span class="p">,</span><span class="nt">"company"</span><span class="p">:</span><span class="s2">"Bahringer and Sons"</span><span class="p">,</span><span class="nt">"credit_card_number"</span><span class="p">:</span><span class="s2">"1228-1221-1221-1431"</span><span class="p">,</span><span class="nt">"color"</span><span class="p">:</span><span class="s2">"lavender"</span><span class="p">},{</span><span class="nt">"name"</span><span class="p">:</span><span class="s2">"Anya Ruecker"</span><span class="p">,</span><span class="nt">"email"</span><span class="p">:</span><span class="s2">"brown@vonrueden.org"</span><span class="p">,</span><span class="nt">"company"</span><span class="p">:</span><span class="s2">"Sporer and Sons"</span><span class="p">,</span><span class="nt">"credit_card_number"</span><span class="p">:</span><span class="s2">"1212-1221-1121-1234"</span><span class="p">,</span><span class="nt">"color"</span><span class="p">:</span><span class="s2">"violet"</span><span class="p">},{</span><span class="nt">"name"</span><span class="p">:</span><span class="s2">"Cicero Funk"</span><span class="p">,</span><span class="nt">"email"</span><span class="p">:</span><span class="s2">"retta_rempel@parisianbotsford.biz"</span><span class="p">,</span><span class="nt">"company"</span><span class="p">:</span><span class="s2">"Feeney, Auer and Schuster"</span><span class="p">,</span><span class="nt">"credit_card_number"</span><span class="p">:</span><span class="s2">"1211-1221-1234-2201"</span><span class="p">,</span><span class="nt">"color"</span><span class="p">:</span><span class="s2">"lavender"</span><span class="p">},{</span><span class="nt">"name"</span><span class="p">:</span><span class="s2">"Alessandro Mertz"</span><span class="p">,</span><span class="nt">"email"</span><span class="p">:</span><span class="s2">"glenna@hand.name"</span><span class="p">,</span><span class="nt">"company"</span><span class="p">:</span><span class="s2">"Schowalter and Sons"</span><span class="p">,</span><span class="nt">"credit_card_number"</span><span class="p">:</span><span class="s2">"1211-1221-1234-2201"</span><span class="p">,</span><span class="nt">"color"</span><span class="p">:</span><span class="s2">"salmon"</span>
|
110
|
+
</pre></div>
|
@@ -0,0 +1,28 @@
|
|
1
|
+
This is a markdown plus document illustrating include conditions
|
2
|
+
|
3
|
+
```include('https://gist.githubusercontent.com/cpetersen/b5a473ddf0b796cd9502/raw/e140bdc32ff2f6a600e357c2575220c0312a88ee/fake.csv')
|
4
|
+
```
|
5
|
+
|
6
|
+
```include('https://gist.githubusercontent.com/cpetersen/b5a473ddf0b796cd9502/raw/e140bdc32ff2f6a600e357c2575220c0312a88ee/fake.csv'),csv2html()
|
7
|
+
```
|
8
|
+
|
9
|
+
```include()
|
10
|
+
```
|
11
|
+
|
12
|
+
```include('https://gist.githubusercontent.com/cpetersen/b5a473ddf0b796cd9502/raw/e140bdc32ff2f6a600e357c2575220c0312a88ee/fake.csv'),csv2html()
|
13
|
+
this
|
14
|
+
should
|
15
|
+
be
|
16
|
+
a
|
17
|
+
warning
|
18
|
+
```
|
19
|
+
|
20
|
+
```include('https://gist.githubusercontent.com/cpetersen/c6571117df132443ac81/raw/e5ac97e8e0665a0e4014ebc85ecef214763a7729/fake.json'),pretty_json()
|
21
|
+
```
|
22
|
+
|
23
|
+
```include('https://gist.githubusercontent.com/cpetersen/4ac0ab5fb4d1fda22322/raw/3856ed58d5cdfd07800067fc9fb8fcbcfc631d65/bad_json.json'),pretty_json()
|
24
|
+
```
|
25
|
+
|
26
|
+
```include()
|
27
|
+
this should just be an error
|
28
|
+
```
|
@@ -0,0 +1,21 @@
|
|
1
|
+
Fake Name,Fake Email,Fake Company,Fake Credit Card,Fake Favorite Color
|
2
|
+
Dena Auer,ward.wuckert@gleason.org,Ward Group,1211-1221-1234-2201,purple
|
3
|
+
Rosalyn Jast,viva@bartell.org,"Wyman, Hartmann and Bradtke",1228-1221-1221-1431,grey
|
4
|
+
Lavada Klein,bret@heaneywintheiser.com,Thompson Inc,1228-1221-1221-1431,salmon
|
5
|
+
Hailee Green,marty@luettgen.com,Feest-Hilpert,1212-1221-1121-1234,silver
|
6
|
+
Lula Orn,zaria_torp@ferryfritsch.org,"Bartell, Batz and Bosco",1234-2121-1221-1211,blue
|
7
|
+
Eloisa Sauer,hiram@keelingfisher.net,Lemke-Robel,1228-1221-1221-1431,green
|
8
|
+
Mose Dietrich MD,irwin@lockmanbatz.biz,Wuckert Group,1212-1221-1121-1234,plum
|
9
|
+
Elijah Cronin,alice_bednar@keeling.info,Schroeder and Sons,1228-1221-1221-1431,black
|
10
|
+
Icie McLaughlin,bianka@monahan.biz,"Kozey, Hudson and Carter",1228-1221-1221-1431,red
|
11
|
+
Nova Schumm,rosalee_beer@willbeier.biz,Luettgen-Padberg,1212-1221-1121-1234,red
|
12
|
+
Adell Heaney,juanita_dietrich@durgan.com,"Howe, Streich and Weimann",1211-1221-1234-2201,purple
|
13
|
+
Lurline Jones,jalyn.fisher@deckow.com,"MacGyver, Klocko and Gibson",1212-1221-1121-1234,grey
|
14
|
+
Danyka Hagenes,raoul.hagenes@bode.com,Pagac Inc,1212-1221-1121-1234,mint green
|
15
|
+
Lenna Kunze PhD,maynard@kovacekjaskolski.org,Gulgowski Group,1212-1221-1121-1234,pink
|
16
|
+
Jazmin Brown DDS,gayle@hermannparker.biz,Bayer-Hyatt,1212-1221-1121-1234,plum
|
17
|
+
Daphne Green,lisa@larson.name,Bayer Group,1212-1221-1121-1234,black
|
18
|
+
Webster Lakin,kavon_graham@beahancarroll.info,"Pfannerstill, Medhurst and Blanda",1234-2121-1221-1211,indigo
|
19
|
+
Mauricio Batz,alyce@quigley.info,"Swift, Willms and Bogisich",1228-1221-1221-1431,orchid
|
20
|
+
Vita Rutherford,anastasia.king@bartoletti.info,Daugherty-McGlynn,1234-2121-1221-1211,lavender
|
21
|
+
Augusta Grimes,elaina@feil.org,Pacocha-Mosciski,1234-2121-1221-1211,pink
|
@@ -0,0 +1 @@
|
|
1
|
+
[{"name":"Winnifred Legros","email":"zakary.wiza@runte.name","company":"Howell-Rempel","credit_card_number":"1212-1221-1121-1234","color":"mint green"},{"name":"Sincere Fritsch","email":"neha@schuppe.name","company":"Bahringer and Sons","credit_card_number":"1228-1221-1221-1431","color":"lavender"},{"name":"Anya Ruecker","email":"brown@vonrueden.org","company":"Sporer and Sons","credit_card_number":"1212-1221-1121-1234","color":"violet"},{"name":"Cicero Funk","email":"retta_rempel@parisianbotsford.biz","company":"Feeney, Auer and Schuster","credit_card_number":"1211-1221-1234-2201","color":"lavender"},{"name":"Alessandro Mertz","email":"glenna@hand.name","company":"Schowalter and Sons","credit_card_number":"1211-1221-1234-2201","color":"salmon"}]
|
data/spec/fixtures/simple.mdp
CHANGED
@@ -8,14 +8,10 @@ This is a a code block
|
|
8
8
|
This is a ruby code block
|
9
9
|
```
|
10
10
|
|
11
|
-
```include
|
11
|
+
```include()
|
12
12
|
This is a include block
|
13
13
|
```
|
14
14
|
|
15
|
-
```include
|
15
|
+
```include(),json()
|
16
16
|
This is a include block with a filter
|
17
17
|
```
|
18
|
-
|
19
|
-
```execute|julia
|
20
|
-
This is an execute block with a language
|
21
|
-
```
|
@@ -0,0 +1,29 @@
|
|
1
|
+
<p>This is a markdown plus document illustrating variable setting and getting</p>
|
2
|
+
|
3
|
+
<p>This is a test</p>
|
4
|
+
|
5
|
+
<p>This is a test</p>
|
6
|
+
|
7
|
+
<table class='table table-striped'><thead><tr><th>Fake Name</th><th>Fake Email</th><th>Fake Company</th><th>Fake Credit Card</th><th>Fake Favorite Color</th></tr></thead>
|
8
|
+
<tbody>
|
9
|
+
<tr><td>Dena Auer</td><td>ward.wuckert@gleason.org</td><td>Ward Group</td><td>1211-1221-1234-2201</td><td>purple</td></tr>
|
10
|
+
<tr><td>Rosalyn Jast</td><td>viva@bartell.org</td><td>Wyman, Hartmann and Bradtke</td><td>1228-1221-1221-1431</td><td>grey</td></tr>
|
11
|
+
<tr><td>Lavada Klein</td><td>bret@heaneywintheiser.com</td><td>Thompson Inc</td><td>1228-1221-1221-1431</td><td>salmon</td></tr>
|
12
|
+
<tr><td>Hailee Green</td><td>marty@luettgen.com</td><td>Feest-Hilpert</td><td>1212-1221-1121-1234</td><td>silver</td></tr>
|
13
|
+
<tr><td>Lula Orn</td><td>zaria_torp@ferryfritsch.org</td><td>Bartell, Batz and Bosco</td><td>1234-2121-1221-1211</td><td>blue</td></tr>
|
14
|
+
<tr><td>Eloisa Sauer</td><td>hiram@keelingfisher.net</td><td>Lemke-Robel</td><td>1228-1221-1221-1431</td><td>green</td></tr>
|
15
|
+
<tr><td>Mose Dietrich MD</td><td>irwin@lockmanbatz.biz</td><td>Wuckert Group</td><td>1212-1221-1121-1234</td><td>plum</td></tr>
|
16
|
+
<tr><td>Elijah Cronin</td><td>alice_bednar@keeling.info</td><td>Schroeder and Sons</td><td>1228-1221-1221-1431</td><td>black</td></tr>
|
17
|
+
<tr><td>Icie McLaughlin</td><td>bianka@monahan.biz</td><td>Kozey, Hudson and Carter</td><td>1228-1221-1221-1431</td><td>red</td></tr>
|
18
|
+
<tr><td>Nova Schumm</td><td>rosalee_beer@willbeier.biz</td><td>Luettgen-Padberg</td><td>1212-1221-1121-1234</td><td>red</td></tr>
|
19
|
+
<tr><td>Adell Heaney</td><td>juanita_dietrich@durgan.com</td><td>Howe, Streich and Weimann</td><td>1211-1221-1234-2201</td><td>purple</td></tr>
|
20
|
+
<tr><td>Lurline Jones</td><td>jalyn.fisher@deckow.com</td><td>MacGyver, Klocko and Gibson</td><td>1212-1221-1121-1234</td><td>grey</td></tr>
|
21
|
+
<tr><td>Danyka Hagenes</td><td>raoul.hagenes@bode.com</td><td>Pagac Inc</td><td>1212-1221-1121-1234</td><td>mint green</td></tr>
|
22
|
+
<tr><td>Lenna Kunze PhD</td><td>maynard@kovacekjaskolski.org</td><td>Gulgowski Group</td><td>1212-1221-1121-1234</td><td>pink</td></tr>
|
23
|
+
<tr><td>Jazmin Brown DDS</td><td>gayle@hermannparker.biz</td><td>Bayer-Hyatt</td><td>1212-1221-1121-1234</td><td>plum</td></tr>
|
24
|
+
<tr><td>Daphne Green</td><td>lisa@larson.name</td><td>Bayer Group</td><td>1212-1221-1121-1234</td><td>black</td></tr>
|
25
|
+
<tr><td>Webster Lakin</td><td>kavon_graham@beahancarroll.info</td><td>Pfannerstill, Medhurst and Blanda</td><td>1234-2121-1221-1211</td><td>indigo</td></tr>
|
26
|
+
<tr><td>Mauricio Batz</td><td>alyce@quigley.info</td><td>Swift, Willms and Bogisich</td><td>1228-1221-1221-1431</td><td>orchid</td></tr>
|
27
|
+
<tr><td>Vita Rutherford</td><td>anastasia.king@bartoletti.info</td><td>Daugherty-McGlynn</td><td>1234-2121-1221-1211</td><td>lavender</td></tr>
|
28
|
+
<tr><td>Augusta Grimes</td><td>elaina@feil.org</td><td>Pacocha-Mosciski</td><td>1234-2121-1221-1211</td><td>pink</td></tr>
|
29
|
+
</tbody></table>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
This is a markdown plus document illustrating variable setting and getting
|
2
|
+
|
3
|
+
```set('x')
|
4
|
+
This is a test
|
5
|
+
```
|
6
|
+
|
7
|
+
```include('https://gist.githubusercontent.com/cpetersen/b5a473ddf0b796cd9502/raw/e140bdc32ff2f6a600e357c2575220c0312a88ee/fake.csv'),set('y'),empty()
|
8
|
+
```
|
9
|
+
|
10
|
+
```get('x')
|
11
|
+
```
|
12
|
+
|
13
|
+
```get('y'),csv2html()
|
14
|
+
```
|
data/spec/parser_spec.rb
CHANGED
@@ -13,30 +13,26 @@ describe Markdownplus::Parser do
|
|
13
13
|
let(:parser) { Markdownplus::Parser.parse(file) }
|
14
14
|
|
15
15
|
it "should have the correct number of lines" do
|
16
|
-
expect(parser.lines.count).to eq(
|
16
|
+
expect(parser.lines.count).to eq(17)
|
17
17
|
end
|
18
18
|
|
19
19
|
it "should have the correct number of blocks" do
|
20
|
-
expect(parser.blocks.count).to eq(
|
20
|
+
expect(parser.blocks.count).to eq(8)
|
21
21
|
end
|
22
22
|
|
23
23
|
it "should have the correct number of code blocks" do
|
24
|
-
expect(parser.code_blocks.count).to eq(
|
24
|
+
expect(parser.code_blocks.count).to eq(4)
|
25
25
|
end
|
26
26
|
|
27
|
-
it "should have the correct number of
|
28
|
-
expect(parser.
|
27
|
+
it "should have the correct number of executable blocks" do
|
28
|
+
expect(parser.executable_blocks.count).to eq(2)
|
29
29
|
end
|
30
30
|
|
31
|
-
|
32
|
-
|
33
|
-
end
|
34
|
-
|
35
|
-
context "the markdown method" do
|
36
|
-
let(:markdown) { parser.markdown }
|
31
|
+
context "input_markdown input_markdown method" do
|
32
|
+
let(:input_markdown) { parser.input_markdown }
|
37
33
|
|
38
34
|
it "should match the contents of the original file" do
|
39
|
-
expect(
|
35
|
+
expect(input_markdown).to eq(file)
|
40
36
|
end
|
41
37
|
end
|
42
38
|
|
@@ -54,7 +50,7 @@ describe Markdownplus::Parser do
|
|
54
50
|
end
|
55
51
|
|
56
52
|
it "should have no directives" do
|
57
|
-
expect(block.
|
53
|
+
expect(block.directive).to eq("")
|
58
54
|
end
|
59
55
|
end
|
60
56
|
|
@@ -65,7 +61,7 @@ describe Markdownplus::Parser do
|
|
65
61
|
end
|
66
62
|
|
67
63
|
it "should have the proper directives" do
|
68
|
-
expect(block.
|
64
|
+
expect(block.directive).to eq("ruby")
|
69
65
|
end
|
70
66
|
end
|
71
67
|
|
@@ -76,11 +72,11 @@ describe Markdownplus::Parser do
|
|
76
72
|
end
|
77
73
|
|
78
74
|
it "should have the proper directives" do
|
79
|
-
expect(block.
|
75
|
+
expect(block.directive).to eq("include()")
|
80
76
|
end
|
81
77
|
|
82
|
-
it "should be an
|
83
|
-
expect(block).to
|
78
|
+
it "should be an executable block" do
|
79
|
+
expect(block).to be_executable
|
84
80
|
end
|
85
81
|
end
|
86
82
|
|
@@ -90,36 +86,41 @@ describe Markdownplus::Parser do
|
|
90
86
|
expect(block.class).to eq(Markdownplus::CodeBlock)
|
91
87
|
end
|
92
88
|
|
93
|
-
it "should
|
94
|
-
expect(block
|
89
|
+
it "should be an executable block" do
|
90
|
+
expect(block).to be_executable
|
95
91
|
end
|
96
92
|
|
97
|
-
it "should
|
98
|
-
expect(block).to
|
93
|
+
it "should have 2 functions" do
|
94
|
+
expect(block.functions.size).to eq(2)
|
99
95
|
end
|
100
|
-
end
|
101
96
|
|
102
|
-
|
103
|
-
|
104
|
-
it "should be a code block" do
|
105
|
-
expect(block.class).to eq(Markdownplus::CodeBlock)
|
106
|
-
end
|
97
|
+
context "the first function" do
|
98
|
+
let(:function) { block.functions[0] }
|
107
99
|
|
108
|
-
|
109
|
-
|
100
|
+
it "should have the proper name" do
|
101
|
+
expect(function.function_name).to eq("include")
|
102
|
+
end
|
110
103
|
end
|
111
104
|
|
112
|
-
|
113
|
-
|
105
|
+
context "the second function" do
|
106
|
+
let(:function) { block.functions[1] }
|
107
|
+
|
108
|
+
it "should have the proper name" do
|
109
|
+
expect(function.function_name).to eq("json")
|
110
|
+
end
|
114
111
|
end
|
115
112
|
end
|
116
113
|
end
|
117
114
|
end
|
118
115
|
|
119
|
-
context "
|
120
|
-
let(:parser) {
|
121
|
-
|
122
|
-
|
116
|
+
context "directives" do
|
117
|
+
let(:parser) {
|
118
|
+
allow(Markdownplus::IncludeHandler).to receive(:cached).with("https://gist.githubusercontent.com/cpetersen/b5a473ddf0b796cd9502/raw/e140bdc32ff2f6a600e357c2575220c0312a88ee/fake.csv").and_return( File.read(File.join(File.dirname(__FILE__), "..", "spec", "fixtures", "fake.csv")) )
|
119
|
+
allow(Markdownplus::IncludeHandler).to receive(:cached).with("https://gist.githubusercontent.com/cpetersen/c6571117df132443ac81/raw/e5ac97e8e0665a0e4014ebc85ecef214763a7729/fake.json").and_return( File.read(File.join(File.dirname(__FILE__), "..", "spec", "fixtures", "fake.json")) )
|
120
|
+
allow(Markdownplus::IncludeHandler).to receive(:cached).with("https://gist.githubusercontent.com/cpetersen/4ac0ab5fb4d1fda22322/raw/3856ed58d5cdfd07800067fc9fb8fcbcfc631d65/bad_json.json").and_return( File.read(File.join(File.dirname(__FILE__), "..", "spec", "fixtures", "bad_json.json")) )
|
121
|
+
|
122
|
+
parser = Markdownplus::Parser.parse(File.read(File.join(File.dirname(__FILE__), "..", "spec", "fixtures", "directives.mdp")))
|
123
|
+
parser.execute
|
123
124
|
parser
|
124
125
|
}
|
125
126
|
it "should have the right number of blocks" do
|
@@ -130,27 +131,36 @@ describe Markdownplus::Parser do
|
|
130
131
|
expect(parser.warnings.count).to eq(2)
|
131
132
|
end
|
132
133
|
|
133
|
-
it "should have
|
134
|
-
expect(parser.errors.count).to eq(
|
134
|
+
it "should have 3 errors" do
|
135
|
+
expect(parser.errors.count).to eq(3)
|
135
136
|
end
|
136
137
|
|
137
138
|
context "the second block" do
|
138
139
|
let(:block) { parser.blocks[1] }
|
139
140
|
|
140
|
-
it "should include the proper number of lines" do
|
141
|
-
expect(block.
|
141
|
+
it "should include the proper number of output lines" do
|
142
|
+
expect(block.output_lines.count).to eq(21)
|
143
|
+
end
|
144
|
+
end
|
145
|
+
|
146
|
+
context "the html" do
|
147
|
+
let(:generated_html) { parser.html }
|
148
|
+
let(:static_html) { File.read(File.join(File.dirname(__FILE__), "..", "spec", "fixtures", "directives.html")) }
|
149
|
+
|
150
|
+
it "should match" do
|
151
|
+
expect(generated_html).to eq(static_html)
|
142
152
|
end
|
143
153
|
end
|
144
154
|
|
145
155
|
context "the sixth block" do
|
146
156
|
let(:block) { parser.blocks[5] }
|
147
157
|
|
148
|
-
it "should have
|
149
|
-
expect(block.
|
158
|
+
it "should have an error" do
|
159
|
+
expect(block.errors.count).to eq(1)
|
150
160
|
end
|
151
161
|
|
152
|
-
it "should have the missing url
|
153
|
-
expect(block.
|
162
|
+
it "should have the missing url error" do
|
163
|
+
expect(block.errors.first).to eq("No url given")
|
154
164
|
end
|
155
165
|
end
|
156
166
|
|
@@ -161,8 +171,20 @@ describe Markdownplus::Parser do
|
|
161
171
|
expect(block.warnings.count).to eq(1)
|
162
172
|
end
|
163
173
|
|
164
|
-
it "should have
|
165
|
-
expect(block.warnings.first).to eq("
|
174
|
+
it "should have input ignored warning" do
|
175
|
+
expect(block.warnings.first).to eq("Include handler ignores input")
|
176
|
+
end
|
177
|
+
end
|
178
|
+
|
179
|
+
context "the twelfth block" do
|
180
|
+
let(:block) { parser.blocks[11] }
|
181
|
+
|
182
|
+
it "should have 1 error" do
|
183
|
+
expect(block.errors.count).to eq(1)
|
184
|
+
end
|
185
|
+
|
186
|
+
it "should have invalid json" do
|
187
|
+
expect(block.errors.first).to eq("Invalid json")
|
166
188
|
end
|
167
189
|
end
|
168
190
|
|
@@ -173,8 +195,63 @@ describe Markdownplus::Parser do
|
|
173
195
|
expect(block.errors.count).to eq(1)
|
174
196
|
end
|
175
197
|
|
176
|
-
it "should have the
|
177
|
-
expect(block.errors.first).to eq("
|
198
|
+
it "should have the missing url error" do
|
199
|
+
expect(block.errors.first).to eq("No url given")
|
200
|
+
end
|
201
|
+
|
202
|
+
it "should have a warning" do
|
203
|
+
expect(block.warnings.count).to eq(1)
|
204
|
+
end
|
205
|
+
|
206
|
+
it "should have input ignored warning" do
|
207
|
+
expect(block.warnings.first).to eq("Include handler ignores input")
|
208
|
+
end
|
209
|
+
end
|
210
|
+
end
|
211
|
+
|
212
|
+
|
213
|
+
context "variables" do
|
214
|
+
let(:parser) {
|
215
|
+
allow(Markdownplus::IncludeHandler).to receive(:cached).with("https://gist.githubusercontent.com/cpetersen/b5a473ddf0b796cd9502/raw/e140bdc32ff2f6a600e357c2575220c0312a88ee/fake.csv").and_return( File.read(File.join(File.dirname(__FILE__), "..", "spec", "fixtures", "fake.csv")) )
|
216
|
+
|
217
|
+
parser = Markdownplus::Parser.parse(File.read(File.join(File.dirname(__FILE__), "..", "spec", "fixtures", "variables.mdp")))
|
218
|
+
parser.execute
|
219
|
+
parser
|
220
|
+
}
|
221
|
+
it "should have the right number of blocks" do
|
222
|
+
expect(parser.blocks.count).to eq(8)
|
223
|
+
end
|
224
|
+
|
225
|
+
it "shouldn't have any warnings" do
|
226
|
+
expect(parser.warnings).to be_empty
|
227
|
+
end
|
228
|
+
|
229
|
+
it "shouldn't have any errors" do
|
230
|
+
expect(parser.errors).to be_empty
|
231
|
+
end
|
232
|
+
|
233
|
+
context "the fourth block" do
|
234
|
+
let(:block) { parser.blocks[3] }
|
235
|
+
|
236
|
+
it "should be empty" do
|
237
|
+
expect(block.output_lines.count).to eq(0)
|
238
|
+
end
|
239
|
+
end
|
240
|
+
|
241
|
+
context "the seventh block" do
|
242
|
+
let(:block) { parser.blocks[7] }
|
243
|
+
|
244
|
+
it "should include the proper number of output lines" do
|
245
|
+
expect(block.output_lines.count).to eq(23)
|
246
|
+
end
|
247
|
+
end
|
248
|
+
|
249
|
+
context "the html" do
|
250
|
+
let(:generated_html) { parser.html }
|
251
|
+
let(:static_html) { File.read(File.join(File.dirname(__FILE__), "..", "spec", "fixtures", "variables.html")) }
|
252
|
+
|
253
|
+
it "should match" do
|
254
|
+
expect(generated_html).to eq(static_html)
|
178
255
|
end
|
179
256
|
end
|
180
257
|
end
|