middleman-asciidoc 1.0.0.rc.2 → 1.0.0.rc.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/Gemfile +7 -1
- data/LICENSE.adoc +1 -1
- data/README.adoc +222 -32
- data/features/asciidoc.feature +356 -16
- data/fixtures/asciidoc-app/source/ignored.adoc +4 -0
- data/fixtures/asciidoc-app/source/inspect-standard-page-data.html.erb +10 -0
- data/fixtures/asciidoc-app/source/layouts/showdate.erb +9 -0
- data/fixtures/asciidoc-app/source/link-to-page.adoc +5 -0
- data/fixtures/asciidoc-app/source/page-with-date-at-zone.adoc +5 -0
- data/fixtures/asciidoc-app/source/page-with-date.adoc +5 -0
- data/fixtures/asciidoc-app/source/safe-mode.adoc +3 -0
- data/fixtures/asciidoc-app/source/site-information.adoc +6 -0
- data/fixtures/asciidoc-app/source/standard-page-data.adoc +5 -0
- data/lib/middleman-asciidoc/extension.rb +183 -48
- data/lib/middleman-asciidoc/version.rb +1 -1
- data/middleman-asciidoc.gemspec +11 -3
- metadata +25 -14
- data/.bundle/config +0 -4
- data/.gitignore +0 -5
- data/.ruby-version +0 -1
- data/.travis.yml +0 -13
- data/fixtures/asciidoc-app/source/hello-no-layout.adoc +0 -2
- data/fixtures/asciidoc-app/source/hello-with-layout.adoc +0 -2
data/features/asciidoc.feature
CHANGED
@@ -23,12 +23,12 @@ Feature: AsciiDoc Support
|
|
23
23
|
</div>
|
24
24
|
"""
|
25
25
|
|
26
|
-
Scenario: Rendering html with
|
26
|
+
Scenario: Rendering html with layout defined in extension config
|
27
27
|
Given a fixture app "asciidoc-app"
|
28
28
|
And a file named "config.rb" with:
|
29
29
|
"""
|
30
|
-
activate :asciidoc
|
31
|
-
set :layout, :
|
30
|
+
activate :asciidoc, layout: :default
|
31
|
+
set :layout, :global
|
32
32
|
"""
|
33
33
|
Given the Server is running at "asciidoc-app"
|
34
34
|
When I go to "/hello.html"
|
@@ -48,9 +48,49 @@ Feature: AsciiDoc Support
|
|
48
48
|
</html>
|
49
49
|
"""
|
50
50
|
|
51
|
-
Scenario: Rendering html with
|
51
|
+
Scenario: Rendering html with no layout specified
|
52
|
+
Given a fixture app "asciidoc-app"
|
53
|
+
And a file named "config.rb" with:
|
54
|
+
"""
|
55
|
+
activate :asciidoc
|
56
|
+
set :layout, :default
|
57
|
+
"""
|
58
|
+
And a file named "source/no-layout.adoc" with:
|
59
|
+
"""
|
60
|
+
Hello, AsciiDoc!
|
61
|
+
"""
|
62
|
+
Given the Server is running at "asciidoc-app"
|
63
|
+
When I go to "/no-layout.html"
|
64
|
+
Then I should see:
|
65
|
+
"""
|
66
|
+
<!DOCTYPE html>
|
67
|
+
<html>
|
68
|
+
<head>
|
69
|
+
<title>Fallback</title>
|
70
|
+
</head>
|
71
|
+
<body>
|
72
|
+
<div class="paragraph">
|
73
|
+
<p>Hello, AsciiDoc!</p>
|
74
|
+
</div>
|
75
|
+
</body>
|
76
|
+
</html>
|
77
|
+
"""
|
78
|
+
|
79
|
+
Scenario: Rendering html with auto layout specified
|
80
|
+
Given a fixture app "asciidoc-app"
|
81
|
+
And a file named "config.rb" with:
|
82
|
+
"""
|
83
|
+
activate :asciidoc
|
84
|
+
set :layout, :default
|
85
|
+
"""
|
86
|
+
And a file named "source/auto-layout.adoc" with:
|
87
|
+
"""
|
88
|
+
:page-layout: _auto_layout
|
89
|
+
|
90
|
+
Hello, AsciiDoc!
|
91
|
+
"""
|
52
92
|
Given the Server is running at "asciidoc-app"
|
53
|
-
When I go to "/
|
93
|
+
When I go to "/auto-layout.html"
|
54
94
|
Then I should see:
|
55
95
|
"""
|
56
96
|
<!DOCTYPE html>
|
@@ -66,17 +106,129 @@ Feature: AsciiDoc Support
|
|
66
106
|
</html>
|
67
107
|
"""
|
68
108
|
|
69
|
-
Scenario: Rendering html with
|
109
|
+
Scenario: Rendering html with blank layout specified
|
110
|
+
Given a fixture app "asciidoc-app"
|
111
|
+
And a file named "config.rb" with:
|
112
|
+
"""
|
113
|
+
activate :asciidoc
|
114
|
+
set :layout, :default
|
115
|
+
"""
|
116
|
+
And a file named "source/blank-layout.adoc" with:
|
117
|
+
"""
|
118
|
+
:page-layout:
|
119
|
+
|
120
|
+
Hello, AsciiDoc!
|
121
|
+
"""
|
70
122
|
Given the Server is running at "asciidoc-app"
|
71
|
-
When I go to "/
|
123
|
+
When I go to "/blank-layout.html"
|
72
124
|
Then I should see:
|
73
125
|
"""
|
126
|
+
<!DOCTYPE html>
|
127
|
+
<html>
|
128
|
+
<head>
|
129
|
+
<title>Fallback</title>
|
130
|
+
</head>
|
131
|
+
<body>
|
74
132
|
<div class="paragraph">
|
75
133
|
<p>Hello, AsciiDoc!</p>
|
76
134
|
</div>
|
135
|
+
</body>
|
136
|
+
</html>
|
77
137
|
"""
|
78
138
|
|
79
|
-
Scenario: Rendering html
|
139
|
+
Scenario: Rendering html with explicit layout specified
|
140
|
+
Given a fixture app "asciidoc-app"
|
141
|
+
And a file named "source/explicit-layout.adoc" with:
|
142
|
+
"""
|
143
|
+
:page-layout: default
|
144
|
+
|
145
|
+
Hello, AsciiDoc!
|
146
|
+
"""
|
147
|
+
Given the Server is running at "asciidoc-app"
|
148
|
+
When I go to "/explicit-layout.html"
|
149
|
+
Then I should see:
|
150
|
+
"""
|
151
|
+
<!DOCTYPE html>
|
152
|
+
<html>
|
153
|
+
<head>
|
154
|
+
<title>Fallback</title>
|
155
|
+
</head>
|
156
|
+
<body>
|
157
|
+
<div class="paragraph">
|
158
|
+
<p>Hello, AsciiDoc!</p>
|
159
|
+
</div>
|
160
|
+
</body>
|
161
|
+
</html>
|
162
|
+
"""
|
163
|
+
|
164
|
+
Scenario: Rendering html with layout unset
|
165
|
+
Given a fixture app "asciidoc-app"
|
166
|
+
And a file named "source/unset-layout.adoc" with:
|
167
|
+
"""
|
168
|
+
:!page-layout:
|
169
|
+
|
170
|
+
Hello, AsciiDoc!
|
171
|
+
"""
|
172
|
+
Given the Server is running at "asciidoc-app"
|
173
|
+
When I go to "/unset-layout.html"
|
174
|
+
Then I should see:
|
175
|
+
"""
|
176
|
+
<meta name="generator" content="Asciidoctor
|
177
|
+
"""
|
178
|
+
Then I should see:
|
179
|
+
"""
|
180
|
+
<div class="paragraph">
|
181
|
+
<p>Hello, AsciiDoc!</p>
|
182
|
+
</div>
|
183
|
+
"""
|
184
|
+
|
185
|
+
Scenario: Rendering html with false layout specified
|
186
|
+
Given a fixture app "asciidoc-app"
|
187
|
+
And a file named "source/false-layout.adoc" with:
|
188
|
+
"""
|
189
|
+
:page-layout: false
|
190
|
+
|
191
|
+
Hello, AsciiDoc!
|
192
|
+
"""
|
193
|
+
Given the Server is running at "asciidoc-app"
|
194
|
+
When I go to "/false-layout.html"
|
195
|
+
Then I should see:
|
196
|
+
"""
|
197
|
+
<meta name="generator" content="Asciidoctor
|
198
|
+
"""
|
199
|
+
Then I should see:
|
200
|
+
"""
|
201
|
+
<div class="paragraph">
|
202
|
+
<p>Hello, AsciiDoc!</p>
|
203
|
+
</div>
|
204
|
+
"""
|
205
|
+
|
206
|
+
Scenario: Rendering html with ~ layout specified
|
207
|
+
Given a fixture app "asciidoc-app"
|
208
|
+
And a file named "source/minus-layout.adoc" with:
|
209
|
+
"""
|
210
|
+
:page-layout: -
|
211
|
+
|
212
|
+
Hello, AsciiDoc!
|
213
|
+
"""
|
214
|
+
Given the Server is running at "asciidoc-app"
|
215
|
+
When I go to "/minus-layout.html"
|
216
|
+
Then I should not see:
|
217
|
+
"""
|
218
|
+
<!DOCTYPE html>
|
219
|
+
"""
|
220
|
+
Then I should not see:
|
221
|
+
"""
|
222
|
+
<meta name="generator" content="Asciidoctor
|
223
|
+
"""
|
224
|
+
Then I should see:
|
225
|
+
"""
|
226
|
+
<div class="paragraph">
|
227
|
+
<p>Hello, AsciiDoc!</p>
|
228
|
+
</div>
|
229
|
+
"""
|
230
|
+
|
231
|
+
Scenario: Rendering html using title and tags from document
|
80
232
|
Given the Server is running at "asciidoc-app"
|
81
233
|
When I go to "/hello-with-title.html"
|
82
234
|
Then I should see:
|
@@ -96,6 +248,54 @@ Feature: AsciiDoc Support
|
|
96
248
|
</html>
|
97
249
|
"""
|
98
250
|
|
251
|
+
Scenario: Default safe mode for AsciiDoc processor
|
252
|
+
Given a fixture app "asciidoc-app"
|
253
|
+
And a file named "config.rb" with:
|
254
|
+
"""
|
255
|
+
activate :asciidoc
|
256
|
+
set :layout, :default
|
257
|
+
"""
|
258
|
+
Given the Server is running at "asciidoc-app"
|
259
|
+
When I go to "/safe-mode.html"
|
260
|
+
Then I should see:
|
261
|
+
"""
|
262
|
+
<!DOCTYPE html>
|
263
|
+
<html>
|
264
|
+
<head>
|
265
|
+
<title>Safe Mode</title>
|
266
|
+
</head>
|
267
|
+
<body>
|
268
|
+
<div class="paragraph">
|
269
|
+
<p>safe</p>
|
270
|
+
</div>
|
271
|
+
</body>
|
272
|
+
</html>
|
273
|
+
"""
|
274
|
+
|
275
|
+
Scenario: Setting safe mode on AsciiDoc processor
|
276
|
+
Given a fixture app "asciidoc-app"
|
277
|
+
And a file named "config.rb" with:
|
278
|
+
"""
|
279
|
+
activate :asciidoc, safe: :unsafe
|
280
|
+
set :layout, :default
|
281
|
+
"""
|
282
|
+
Given the Server is running at "asciidoc-app"
|
283
|
+
When I go to "/safe-mode.html"
|
284
|
+
Then I should see:
|
285
|
+
"""
|
286
|
+
<!DOCTYPE html>
|
287
|
+
<html>
|
288
|
+
<head>
|
289
|
+
<title>Safe Mode</title>
|
290
|
+
</head>
|
291
|
+
<body>
|
292
|
+
<div class="paragraph">
|
293
|
+
<p>unsafe</p>
|
294
|
+
</div>
|
295
|
+
</body>
|
296
|
+
</html>
|
297
|
+
"""
|
298
|
+
|
99
299
|
Scenario: Rendering html with title and layout from front matter
|
100
300
|
Given the Server is running at "asciidoc-app"
|
101
301
|
When I go to "/hello-with-front-matter.html"
|
@@ -114,7 +314,23 @@ Feature: AsciiDoc Support
|
|
114
314
|
</html>
|
115
315
|
"""
|
116
316
|
|
117
|
-
Scenario:
|
317
|
+
Scenario: Ignoring files marked as ignored
|
318
|
+
Given the Server is running at "asciidoc-app"
|
319
|
+
When I go to "/ignored.html"
|
320
|
+
Then I should see:
|
321
|
+
"""
|
322
|
+
<h1>File Not Found</h1>
|
323
|
+
"""
|
324
|
+
|
325
|
+
Scenario: Publishing site information as AsciiDoc attributes
|
326
|
+
Given the Server is running at "asciidoc-app"
|
327
|
+
When I go to "/site-information.html"
|
328
|
+
Then I should see content matching %r{<p>site-root=.+/tmp/aruba/asciidoc-app</p>}
|
329
|
+
Then I should see content matching %r{<p>site-source=.+/tmp/aruba/asciidoc-app/source</p>}
|
330
|
+
Then I should see content matching %r{<p>site-destination=.+/tmp/aruba/asciidoc-app/build</p>}
|
331
|
+
Then I should see content matching %r{<p>site-environment=development</p>}
|
332
|
+
|
333
|
+
Scenario: Merging page data in front matter and AsciiDoc header
|
118
334
|
Given the Server is running at "asciidoc-app"
|
119
335
|
When I go to "/hello-with-mixed-page-data.html"
|
120
336
|
Then I should see:
|
@@ -133,6 +349,41 @@ Feature: AsciiDoc Support
|
|
133
349
|
</html>
|
134
350
|
"""
|
135
351
|
|
352
|
+
Scenario: Promoting standard AsciiDoc attributes to page data
|
353
|
+
Given the Server is running at "asciidoc-app"
|
354
|
+
When I go to "/inspect-standard-page-data.html"
|
355
|
+
Then I should see:
|
356
|
+
"""
|
357
|
+
<p>Page Title</p>
|
358
|
+
<p>Doc Writer</p>
|
359
|
+
<p>Doc Writer | Junior Writer</p>
|
360
|
+
<p>doc.writer@example.com</p>
|
361
|
+
<p>This is a sample page.</p>
|
362
|
+
<p>meta, AsciiDoc, Middleman</p>
|
363
|
+
"""
|
364
|
+
|
365
|
+
Scenario: Honor time zone specified in revdate
|
366
|
+
Given the Server is running at "asciidoc-app"
|
367
|
+
When I go to "/page-with-date-at-zone.html"
|
368
|
+
Then I should see:
|
369
|
+
"""
|
370
|
+
<html data-date="2017-01-01T16:00:00Z">
|
371
|
+
"""
|
372
|
+
|
373
|
+
Scenario: Add application time zone to revdate when none specified
|
374
|
+
Given a fixture app "asciidoc-app"
|
375
|
+
And a file named "config.rb" with:
|
376
|
+
"""
|
377
|
+
set :time_zone, 'MST'
|
378
|
+
activate :asciidoc
|
379
|
+
"""
|
380
|
+
Given the Server is running at "asciidoc-app"
|
381
|
+
When I go to "/page-with-date.html"
|
382
|
+
Then I should see:
|
383
|
+
"""
|
384
|
+
<html data-date="2017-01-01T16:00:00Z">
|
385
|
+
"""
|
386
|
+
|
136
387
|
Scenario: Including a file relative to source root
|
137
388
|
Given the Server is running at "asciidoc-app"
|
138
389
|
When I go to "/master.html"
|
@@ -160,11 +411,24 @@ Feature: AsciiDoc Support
|
|
160
411
|
</div>
|
161
412
|
"""
|
162
413
|
|
163
|
-
Scenario: Including a file relative to document in subdirectory when base_dir is set
|
414
|
+
Scenario: Including a file relative to document in subdirectory when base_dir is set to :source
|
415
|
+
Given a fixture app "asciidoc-app"
|
416
|
+
And a file named "config.rb" with:
|
417
|
+
"""
|
418
|
+
activate :asciidoc, base_dir: :source
|
419
|
+
"""
|
420
|
+
Given the Server is running at "asciidoc-app"
|
421
|
+
When I go to "/manual/index.html"
|
422
|
+
Then I should see:
|
423
|
+
"""
|
424
|
+
<p>Unresolved directive in <stdin> - include::_chapters/ch01.adoc[]</p>
|
425
|
+
"""
|
426
|
+
|
427
|
+
Scenario: Including a file relative to document in subdirectory when base_dir is set to app.source_dir
|
164
428
|
Given a fixture app "asciidoc-app"
|
165
429
|
And a file named "config.rb" with:
|
166
430
|
"""
|
167
|
-
activate :asciidoc, base_dir: app.source_dir
|
431
|
+
activate :asciidoc, base_dir: app.source_dir
|
168
432
|
"""
|
169
433
|
Given the Server is running at "asciidoc-app"
|
170
434
|
When I go to "/manual/index.html"
|
@@ -173,6 +437,50 @@ Feature: AsciiDoc Support
|
|
173
437
|
<p>Unresolved directive in <stdin> - include::_chapters/ch01.adoc[]</p>
|
174
438
|
"""
|
175
439
|
|
440
|
+
Scenario: Linking to a sibling page with directory indexes activated
|
441
|
+
Given a fixture app "asciidoc-app"
|
442
|
+
And a file named "config.rb" with:
|
443
|
+
"""
|
444
|
+
activate :asciidoc
|
445
|
+
activate :directory_indexes
|
446
|
+
"""
|
447
|
+
Given the Server is running at "asciidoc-app"
|
448
|
+
When I go to "/link-to-page/"
|
449
|
+
Then I should see:
|
450
|
+
"""
|
451
|
+
<p>See <a href="../code/">code</a> run.</p>
|
452
|
+
"""
|
453
|
+
|
454
|
+
Scenario: Linking to a sibling page with directory indexes activated and trailing slash disabled
|
455
|
+
Given a fixture app "asciidoc-app"
|
456
|
+
And a file named "config.rb" with:
|
457
|
+
"""
|
458
|
+
activate :asciidoc
|
459
|
+
activate :directory_indexes
|
460
|
+
set :trailing_slash, false
|
461
|
+
"""
|
462
|
+
Given the Server is running at "asciidoc-app"
|
463
|
+
When I go to "/link-to-page/"
|
464
|
+
Then I should see:
|
465
|
+
"""
|
466
|
+
<p>See <a href="../code">code</a> run.</p>
|
467
|
+
"""
|
468
|
+
|
469
|
+
Scenario: Linking to a sibling page with directory indexes activated and strip index file disabled
|
470
|
+
Given a fixture app "asciidoc-app"
|
471
|
+
And a file named "config.rb" with:
|
472
|
+
"""
|
473
|
+
activate :asciidoc
|
474
|
+
activate :directory_indexes
|
475
|
+
set :strip_index_file, false
|
476
|
+
"""
|
477
|
+
Given the Server is running at "asciidoc-app"
|
478
|
+
When I go to "/link-to-page/"
|
479
|
+
Then I should see:
|
480
|
+
"""
|
481
|
+
<p>See <a href="../code/index.html">code</a> run.</p>
|
482
|
+
"""
|
483
|
+
|
176
484
|
Scenario: Linking to an image
|
177
485
|
Given the Server is running at "asciidoc-app"
|
178
486
|
When I go to "/gallery.html"
|
@@ -195,7 +503,39 @@ Feature: AsciiDoc Support
|
|
195
503
|
</div>
|
196
504
|
"""
|
197
505
|
|
198
|
-
Scenario: imagesdir
|
506
|
+
Scenario: Restoring imagesdir to value defined in page
|
507
|
+
Given a fixture app "asciidoc-app"
|
508
|
+
And a file named "config.rb" with:
|
509
|
+
"""
|
510
|
+
activate :asciidoc, attributes: %w(imagesdir=@)
|
511
|
+
"""
|
512
|
+
Given the Server is running at "asciidoc-app"
|
513
|
+
When I go to "/custom-imagesdir.html"
|
514
|
+
Then I should see:
|
515
|
+
"""
|
516
|
+
<div class="imageblock">
|
517
|
+
<div class="content">
|
518
|
+
<img src="img/tiger.gif" alt="tiger">
|
519
|
+
</div>
|
520
|
+
"""
|
521
|
+
|
522
|
+
Scenario: Restoring imagesdir to default value
|
523
|
+
Given a fixture app "asciidoc-app"
|
524
|
+
And a file named "config.rb" with:
|
525
|
+
"""
|
526
|
+
activate :asciidoc, attributes: %w(imagesdir!)
|
527
|
+
"""
|
528
|
+
Given the Server is running at "asciidoc-app"
|
529
|
+
When I go to "/custom-imagesdir.html"
|
530
|
+
Then I should see:
|
531
|
+
"""
|
532
|
+
<div class="imageblock">
|
533
|
+
<div class="content">
|
534
|
+
<img src="tiger.gif" alt="tiger">
|
535
|
+
</div>
|
536
|
+
"""
|
537
|
+
|
538
|
+
Scenario: Overriding imagesdir attribute in page with imagesdir configuration
|
199
539
|
Given a fixture app "asciidoc-app"
|
200
540
|
And a file named "config.rb" with:
|
201
541
|
"""
|
@@ -215,21 +555,21 @@ Feature: AsciiDoc Support
|
|
215
555
|
Given a fixture app "asciidoc-app"
|
216
556
|
And a file named "config.rb" with:
|
217
557
|
"""
|
218
|
-
activate :asciidoc, attributes: %w(foo=bar)
|
558
|
+
activate :asciidoc, attributes: %w(bar=bar@ foo={bar}{baz})
|
219
559
|
"""
|
220
560
|
Given the Server is running at "asciidoc-app"
|
221
561
|
When I go to "/custom-attribute.html"
|
222
|
-
Then I should see "bar"
|
562
|
+
Then I should see "bar{baz}"
|
223
563
|
|
224
564
|
Scenario: Configuring custom AsciiDoc attributes as Hash
|
225
565
|
Given a fixture app "asciidoc-app"
|
226
566
|
And a file named "config.rb" with:
|
227
567
|
"""
|
228
|
-
activate :asciidoc, attributes: { 'foo' => 'bar' }
|
568
|
+
activate :asciidoc, attributes: { 'bar' => 'bar@', 'foo' => '{bar}{baz}' }
|
229
569
|
"""
|
230
570
|
Given the Server is running at "asciidoc-app"
|
231
571
|
When I go to "/custom-attribute.html"
|
232
|
-
Then I should see "bar"
|
572
|
+
Then I should see "bar{baz}"
|
233
573
|
|
234
574
|
Scenario: Highlighting source code
|
235
575
|
Given a fixture app "asciidoc-app"
|
@@ -0,0 +1,10 @@
|
|
1
|
+
---
|
2
|
+
layout: false
|
3
|
+
---
|
4
|
+
<% page_data = ((sitemap.find_resource_by_page_id 'standard-page-data') || (sitemap.find_resource_by_page_id 'standard-page-data.html')).data %>
|
5
|
+
<p><%= page_data.title %></p>
|
6
|
+
<p><%= page_data.author %></p>
|
7
|
+
<p><%= (page_data.authors || []) * ' | ' %></p>
|
8
|
+
<p><%= page_data.email %></p>
|
9
|
+
<p><%= page_data.description %></p>
|
10
|
+
<p><%= page_data.keywords %></p>
|