markdownplus 0.1.0 → 0.2.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.
- 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
|