metanorma-iso 1.5.5 → 1.5.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/lib/asciidoctor/iso/basicdoc.rng +23 -0
  3. data/lib/asciidoctor/iso/front.rb +9 -15
  4. data/lib/asciidoctor/iso/isodoc.rng +121 -15
  5. data/lib/asciidoctor/iso/isostandard.rng +8 -1
  6. data/lib/asciidoctor/iso/section.rb +0 -7
  7. data/lib/isodoc/iso/html/isodoc.css +16 -4
  8. data/lib/isodoc/iso/html/isodoc.scss +18 -4
  9. data/lib/isodoc/iso/html/style-human.css +1 -1
  10. data/lib/isodoc/iso/html/style-iso.css +1 -1
  11. data/lib/isodoc/iso/iso.amendment.xsl +982 -291
  12. data/lib/isodoc/iso/iso.international-standard.xsl +982 -291
  13. data/lib/isodoc/iso/isosts_convert.rb +31 -0
  14. data/lib/isodoc/iso/xref.rb +7 -11
  15. data/lib/metanorma-iso.rb +1 -0
  16. data/lib/metanorma/iso/processor.rb +4 -1
  17. data/lib/metanorma/iso/version.rb +1 -1
  18. data/metanorma-iso.gemspec +2 -2
  19. data/spec/asciidoctor-iso/amd_spec.rb +7 -39
  20. data/spec/asciidoctor-iso/base_spec.rb +122 -6
  21. data/spec/asciidoctor-iso/cleanup_spec.rb +30 -30
  22. data/spec/asciidoctor-iso/table_spec.rb +111 -111
  23. data/spec/asciidoctor-iso/validate_spec.rb +35 -15
  24. data/spec/assets/xref_error.adoc +7 -0
  25. data/spec/isodoc/amd_spec.rb +32 -23
  26. data/spec/isodoc/blocks_spec.rb +1 -1
  27. data/spec/isodoc/i18n_spec.rb +17 -4
  28. data/spec/isodoc/inline_spec.rb +1 -1
  29. data/spec/isodoc/iso_spec.rb +5 -5
  30. data/spec/isodoc/metadata_spec.rb +2 -16
  31. data/spec/isodoc/postproc_spec.rb +4 -1
  32. data/spec/isodoc/ref_spec.rb +5 -2
  33. data/spec/isodoc/section_spec.rb +2 -2
  34. data/spec/isodoc/table_spec.rb +1 -1
  35. data/spec/isodoc/terms_spec.rb +1 -1
  36. data/spec/isodoc/xref_spec.rb +11 -11
  37. data/spec/metanorma/processor_spec.rb +1 -1
  38. data/spec/spec_helper.rb +5 -1
  39. metadata +8 -6
@@ -17,16 +17,16 @@ RSpec.describe Asciidoctor::ISO do
17
17
  <name>Table Name</name>
18
18
  <thead>
19
19
  <tr>
20
- <th align="left">A</th>
21
- <th align="left">B</th>
22
- <th align="left">C</th>
20
+ <th valign="top" align="left">A</th>
21
+ <th valign="top" align="left">B</th>
22
+ <th valign="top" align="left">C</th>
23
23
  </tr>
24
24
  </thead>
25
25
  <tbody>
26
26
  <tr>
27
- <th align="left">1</th>
28
- <td align="left">2</td>
29
- <td align="left">3</td>
27
+ <th valign="top" align="left">1</th>
28
+ <td valign="top" align="left">2</td>
29
+ <td valign="top" align="left">3</td>
30
30
  </tr>
31
31
  </tbody>
32
32
  </table>
@@ -51,21 +51,21 @@ RSpec.describe Asciidoctor::ISO do
51
51
  <table id="_">
52
52
  <name>Table Name</name>
53
53
  <thead><tr>
54
- <th align="left">A</th>
55
- <th align="left">B</th>
56
- <th align="left">C</th>
54
+ <th valign="top" align="left">A</th>
55
+ <th valign="top" align="left">B</th>
56
+ <th valign="top" align="left">C</th>
57
57
  </tr><tr>
58
- <th align="left">1</th>
59
- <th align="left">2</th>
60
- <th align="left">3</th>
58
+ <th valign="top" align="left">1</th>
59
+ <th valign="top" align="left">2</th>
60
+ <th valign="top" align="left">3</th>
61
61
  </tr></thead>
62
62
  <tbody>
63
63
 
64
64
 
65
65
  <tr>
66
- <th align="left">1</th>
67
- <td align="left">2</td>
68
- <td align="left">3</td>
66
+ <th valign="top" align="left">1</th>
67
+ <td valign="top" align="left">2</td>
68
+ <td valign="top" align="left">3</td>
69
69
  </tr>
70
70
  </tbody>
71
71
  </table>
@@ -88,21 +88,21 @@ RSpec.describe Asciidoctor::ISO do
88
88
  #{BLANK_HDR}
89
89
  <sections>
90
90
  <table id="_"><thead><tr>
91
- <th align="left">A</th>
92
- <th align="left">B</th>
93
- <th align="left">C</th>
91
+ <th valign="top" align="left">A</th>
92
+ <th valign="top" align="left">B</th>
93
+ <th valign="top" align="left">C</th>
94
94
  </tr><tr>
95
- <th align="left">1</th>
96
- <th align="left">2</th>
97
- <th align="left">3</th>
95
+ <th valign="top" align="left">1</th>
96
+ <th valign="top" align="left">2</th>
97
+ <th valign="top" align="left">3</th>
98
98
  </tr></thead>
99
99
  <tbody>
100
100
 
101
101
 
102
102
  <tr>
103
- <th align="left">1</th>
104
- <td align="left">2</td>
105
- <td align="left">3</td>
103
+ <th valign="top" align="left">1</th>
104
+ <td valign="top" align="left">2</td>
105
+ <td valign="top" align="left">3</td>
106
106
  </tr>
107
107
  </tbody>
108
108
  </table>
@@ -148,8 +148,8 @@ RSpec.describe Asciidoctor::ISO do
148
148
  <name>Maximum permissible mass fraction of defects</name>
149
149
  <thead>
150
150
  <tr>
151
- <th rowspan="2" align="left">Defect</th>
152
- <th colspan="4" align="center">Maximum permissible mass fraction of defects in husked rice<br/>
151
+ <th rowspan="2" valign="top" align="left">Defect</th>
152
+ <th colspan="4" valign="top" align="center">Maximum permissible mass fraction of defects in husked rice<br/>
153
153
  <stem type="MathML"><math xmlns="http://www.w3.org/1998/Math/MathML"><msub><mrow>
154
154
  <mi>w</mi>
155
155
  </mrow>
@@ -159,147 +159,147 @@ RSpec.describe Asciidoctor::ISO do
159
159
  </msub></math></stem></th>
160
160
  </tr>
161
161
  <tr>
162
- <th align="left">in husked rice</th>
163
- <th align="center">in milled rice (non-glutinous)</th>
164
- <th align="center">in husked parboiled rice</th>
165
- <th align="center">in milled parboiled rice</th>
162
+ <th valign="top" align="left">in husked rice</th>
163
+ <th valign="top" align="center">in milled rice (non-glutinous)</th>
164
+ <th valign="top" align="center">in husked parboiled rice</th>
165
+ <th valign="top" align="center">in milled parboiled rice</th>
166
166
  </tr></thead>
167
167
  <tbody>
168
168
 
169
169
  <tr>
170
- <td align="left">Extraneous matter: organic<fn reference="a">
170
+ <td valign="top" align="left">Extraneous matter: organic<fn reference="a">
171
171
  <p id="_">Organic extraneous matter includes foreign seeds, husks, bran, parts of straw, etc.</p>
172
172
  </fn></td>
173
- <td align="center">1,0</td>
174
- <td align="center">0,5</td>
175
- <td align="center">1,0</td>
176
- <td align="center">0,5</td>
173
+ <td valign="top" align="center">1,0</td>
174
+ <td valign="top" align="center">0,5</td>
175
+ <td valign="top" align="center">1,0</td>
176
+ <td valign="top" align="center">0,5</td>
177
177
  </tr>
178
178
  <tr>
179
- <td align="left">Extraneous matter: inorganic<fn reference="b">
179
+ <td valign="top" align="left">Extraneous matter: inorganic<fn reference="b">
180
180
  <p id="_">Inorganic extraneous matter includes stones, sand, dust, etc.</p>
181
181
  </fn></td>
182
- <td align="center">0,5</td>
183
- <td align="center">0,5</td>
184
- <td align="center">0,5</td>
185
- <td align="center">0,5</td>
182
+ <td valign="top" align="center">0,5</td>
183
+ <td valign="top" align="center">0,5</td>
184
+ <td valign="top" align="center">0,5</td>
185
+ <td valign="top" align="center">0,5</td>
186
186
  </tr>
187
187
  <tr>
188
- <td align="left">Paddy</td>
189
- <td align="center">2,5</td>
190
- <td align="center">0,3</td>
191
- <td align="center">2,5</td>
192
- <td align="center">0,3</td>
188
+ <td valign="top" align="left">Paddy</td>
189
+ <td valign="top" align="center">2,5</td>
190
+ <td valign="top" align="center">0,3</td>
191
+ <td valign="top" align="center">2,5</td>
192
+ <td valign="top" align="center">0,3</td>
193
193
  </tr>
194
194
  <tr>
195
- <td align="left">Husked rice, non-parboiled</td>
196
- <td align="center">Not applicable</td>
197
- <td align="center">1,0</td>
198
- <td align="center">1,0</td>
199
- <td align="center">1,0</td>
195
+ <td valign="top" align="left">Husked rice, non-parboiled</td>
196
+ <td valign="top" align="center">Not applicable</td>
197
+ <td valign="top" align="center">1,0</td>
198
+ <td valign="top" align="center">1,0</td>
199
+ <td valign="top" align="center">1,0</td>
200
200
  </tr>
201
201
  <tr>
202
- <td align="left">Milled rice, non-parboiled</td>
203
- <td align="center">1,0</td>
204
- <td align="center">Not applicable</td>
205
- <td align="center">1,0</td>
206
- <td align="center">1,0</td>
202
+ <td valign="top" align="left">Milled rice, non-parboiled</td>
203
+ <td valign="top" align="center">1,0</td>
204
+ <td valign="top" align="center">Not applicable</td>
205
+ <td valign="top" align="center">1,0</td>
206
+ <td valign="top" align="center">1,0</td>
207
207
  </tr>
208
208
  <tr>
209
- <td align="left">Husked rice, parboiled</td>
210
- <td align="center">1,0</td>
211
- <td align="center">1,0</td>
212
- <td align="center">Not applicable</td>
213
- <td align="center">1,0</td>
209
+ <td valign="top" align="left">Husked rice, parboiled</td>
210
+ <td valign="top" align="center">1,0</td>
211
+ <td valign="top" align="center">1,0</td>
212
+ <td valign="top" align="center">Not applicable</td>
213
+ <td valign="top" align="center">1,0</td>
214
214
  </tr>
215
215
  <tr>
216
- <td align="left">Milled rice, parboiled</td>
217
- <td align="center">1,0</td>
218
- <td align="center">1,0</td>
219
- <td align="center">1,0</td>
220
- <td align="center">Not applicable</td>
216
+ <td valign="top" align="left">Milled rice, parboiled</td>
217
+ <td valign="top" align="center">1,0</td>
218
+ <td valign="top" align="center">1,0</td>
219
+ <td valign="top" align="center">1,0</td>
220
+ <td valign="top" align="center">Not applicable</td>
221
221
  </tr>
222
222
  <tr>
223
- <td align="left">Chips</td>
224
- <td align="center">0,1</td>
225
- <td align="center">0,1</td>
226
- <td align="center">0,1</td>
227
- <td align="center">0,1</td>
223
+ <td valign="top" align="left">Chips</td>
224
+ <td valign="top" align="center">0,1</td>
225
+ <td valign="top" align="center">0,1</td>
226
+ <td valign="top" align="center">0,1</td>
227
+ <td valign="top" align="center">0,1</td>
228
228
  </tr>
229
229
  <tr>
230
- <td align="left">HDK</td>
231
- <td align="center">2,0<fn reference="c">
230
+ <td valign="top" align="left">HDK</td>
231
+ <td valign="top" align="center">2,0<fn reference="c">
232
232
  <p id="_">The maximum permissible mass fraction of defects shall be determined with respect to the mass fraction obtained after milling.</p>
233
233
  </fn></td>
234
- <td align="center">2,0</td>
235
- <td align="center">2,0<fn reference="c">
234
+ <td valign="top" align="center">2,0</td>
235
+ <td valign="top" align="center">2,0<fn reference="c">
236
236
  <p id="_">The maximum permissible mass fraction of defects shall be determined with respect to the mass fraction obtained after milling.</p>
237
237
  </fn></td>
238
- <td align="center">2,0</td>
238
+ <td valign="top" align="center">2,0</td>
239
239
  </tr>
240
240
  <tr>
241
- <td align="left">Damaged kernels</td>
242
- <td align="center">4,0</td>
243
- <td align="center">3,0</td>
244
- <td align="center">4,0</td>
245
- <td align="center">3,0</td>
241
+ <td valign="top" align="left">Damaged kernels</td>
242
+ <td valign="top" align="center">4,0</td>
243
+ <td valign="top" align="center">3,0</td>
244
+ <td valign="top" align="center">4,0</td>
245
+ <td valign="top" align="center">3,0</td>
246
246
  </tr>
247
247
  <tr>
248
- <td align="left">Immature and/or malformed kernels</td>
249
- <td align="center">8,0</td>
250
- <td align="center">2,0</td>
251
- <td align="center">8,0</td>
252
- <td align="center">2,0</td>
248
+ <td valign="top" align="left">Immature and/or malformed kernels</td>
249
+ <td valign="top" align="center">8,0</td>
250
+ <td valign="top" align="center">2,0</td>
251
+ <td valign="top" align="center">8,0</td>
252
+ <td valign="top" align="center">2,0</td>
253
253
  </tr>
254
254
  <tr>
255
- <td align="left">Chalky kernels</td>
256
- <td align="center">5,0<fn reference="c">
255
+ <td valign="top" align="left">Chalky kernels</td>
256
+ <td valign="top" align="center">5,0<fn reference="c">
257
257
  <p id="_">The maximum permissible mass fraction of defects shall be determined with respect to the mass fraction obtained after milling.</p>
258
258
  </fn></td>
259
- <td align="center">5,0</td>
260
- <td align="center">Not applicable</td>
261
- <td align="center">Not applicable</td>
259
+ <td valign="top" align="center">5,0</td>
260
+ <td valign="top" align="center">Not applicable</td>
261
+ <td valign="top" align="center">Not applicable</td>
262
262
  </tr>
263
263
  <tr>
264
- <td align="left">Red kernels and red-streaked kernels</td>
265
- <td align="center">12,0</td>
266
- <td align="center">12,0</td>
267
- <td align="center">12,0<fn reference="c">
264
+ <td valign="top" align="left">Red kernels and red-streaked kernels</td>
265
+ <td valign="top" align="center">12,0</td>
266
+ <td valign="top" align="center">12,0</td>
267
+ <td valign="top" align="center">12,0<fn reference="c">
268
268
  <p id="_">The maximum permissible mass fraction of defects shall be determined with respect to the mass fraction obtained after milling.</p>
269
269
  </fn></td>
270
- <td align="center">12,0</td>
270
+ <td valign="top" align="center">12,0</td>
271
271
  </tr>
272
272
  <tr>
273
- <td align="left">Partly gelatinized kernels</td>
274
- <td align="center">Not applicable</td>
275
- <td align="center">Not applicable</td>
276
- <td align="center">11,0<fn reference="c">
273
+ <td valign="top" align="left">Partly gelatinized kernels</td>
274
+ <td valign="top" align="center">Not applicable</td>
275
+ <td valign="top" align="center">Not applicable</td>
276
+ <td valign="top" align="center">11,0<fn reference="c">
277
277
  <p id="_">The maximum permissible mass fraction of defects shall be determined with respect to the mass fraction obtained after milling.</p>
278
278
  </fn></td>
279
- <td align="center">11,0</td>
279
+ <td valign="top" align="center">11,0</td>
280
280
  </tr>
281
281
  <tr>
282
- <td align="left">Pecks</td>
283
- <td align="center">Not applicable</td>
284
- <td align="center">Not applicable</td>
285
- <td align="center">4,0</td>
286
- <td align="center">2,0</td>
282
+ <td valign="top" align="left">Pecks</td>
283
+ <td valign="top" align="center">Not applicable</td>
284
+ <td valign="top" align="center">Not applicable</td>
285
+ <td valign="top" align="center">4,0</td>
286
+ <td valign="top" align="center">2,0</td>
287
287
  </tr>
288
288
  <tr>
289
- <td align="left">Waxy rice</td>
290
- <td align="center">1,0<fn reference="c">
289
+ <td valign="top" align="left">Waxy rice</td>
290
+ <td valign="top" align="center">1,0<fn reference="c">
291
291
  <p id="_">The maximum permissible mass fraction of defects shall be determined with respect to the mass fraction obtained after milling.</p>
292
292
  </fn></td>
293
- <td align="center">1,0</td>
294
- <td align="center">1,0<fn reference="c">
293
+ <td valign="top" align="center">1,0</td>
294
+ <td valign="top" align="center">1,0<fn reference="c">
295
295
  <p id="_">The maximum permissible mass fraction of defects shall be determined with respect to the mass fraction obtained after milling.</p>
296
296
  </fn></td>
297
- <td align="center">1,0</td>
297
+ <td valign="top" align="center">1,0</td>
298
298
  </tr>
299
299
  </tbody>
300
300
  <tfoot>
301
301
  <tr>
302
- <td colspan="5" align="left">
302
+ <td colspan="5" valign="top" align="left">
303
303
  <p id="_">Live insects shall not be present. Dead insects shall be included in extraneous matter.</p>
304
304
  </td>
305
305
  </tr>
@@ -2,6 +2,26 @@ require "spec_helper"
2
2
  require "fileutils"
3
3
 
4
4
  RSpec.describe Asciidoctor::ISO do
5
+ context "when xref_error.adoc compilation" do
6
+ around do |example|
7
+ FileUtils.rm_f "spec/assets/xref_error.err"
8
+ example.run
9
+ Dir["spec/assets/xref_error*"].each do |file|
10
+ next if file.match?(/adoc$/)
11
+
12
+ FileUtils.rm_f(file)
13
+ end
14
+ end
15
+
16
+ it "generates error file" do
17
+ expect do
18
+ Metanorma::Compile
19
+ .new
20
+ .compile("spec/assets/xref_error.adoc", type: "iso")
21
+ end.to(change { File.exist?("spec/assets/xref_error.err") }
22
+ .from(false).to(true))
23
+ end
24
+ end
5
25
 
6
26
  it "Warns of missing scope" do
7
27
  FileUtils.rm_f "test.err"
@@ -332,7 +352,7 @@ it "warns that undated reference has locality" do
332
352
  FileUtils.rm_f "test.err"
333
353
  Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)
334
354
  #{VALIDATING_BLANK_HDR}
335
-
355
+
336
356
  == Scope
337
357
  <<iso123,clause=1>>
338
358
 
@@ -417,7 +437,7 @@ it "warns that Scope contains subclauses" do
417
437
  #{VALIDATING_BLANK_HDR}
418
438
 
419
439
  == Scope
420
-
440
+
421
441
  === Scope subclause
422
442
  INPUT
423
443
  expect(File.read("test.err")).to include "Scope contains subclauses: should be succinct"
@@ -427,7 +447,7 @@ end
427
447
  it "warns that Table should have title" do
428
448
  FileUtils.rm_f "test.err"
429
449
  Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)
430
- #{VALIDATING_BLANK_HDR}
450
+ #{VALIDATING_BLANK_HDR}
431
451
 
432
452
  |===
433
453
  |a |b |c
@@ -439,7 +459,7 @@ end
439
459
  it "gives Style warning if number not broken up in threes" do
440
460
  FileUtils.rm_f "test.err"
441
461
  Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)
442
- #{VALIDATING_BLANK_HDR}
462
+ #{VALIDATING_BLANK_HDR}
443
463
 
444
464
  == Clause
445
465
  12121
@@ -450,7 +470,7 @@ end
450
470
  it "gives No style warning if number not broken up in threes is ISO reference" do
451
471
  FileUtils.rm_f "test.err"
452
472
  Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)
453
- #{VALIDATING_BLANK_HDR}
473
+ #{VALIDATING_BLANK_HDR}
454
474
 
455
475
  == Clause
456
476
  ISO 12121
@@ -461,7 +481,7 @@ end
461
481
  it "Style warning if decimal point" do
462
482
  FileUtils.rm_f "test.err"
463
483
  Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)
464
- #{VALIDATING_BLANK_HDR}
484
+ #{VALIDATING_BLANK_HDR}
465
485
 
466
486
  == Clause
467
487
  8.1
@@ -472,7 +492,7 @@ end
472
492
  it "Style warning if billion used" do
473
493
  FileUtils.rm_f "test.err"
474
494
  Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)
475
- #{VALIDATING_BLANK_HDR}
495
+ #{VALIDATING_BLANK_HDR}
476
496
 
477
497
  == Clause
478
498
  "Billions" are a term of art.
@@ -483,7 +503,7 @@ end
483
503
  it "Style warning if no space before percent sign" do
484
504
  FileUtils.rm_f "test.err"
485
505
  Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)
486
- #{VALIDATING_BLANK_HDR}
506
+ #{VALIDATING_BLANK_HDR}
487
507
 
488
508
  == Clause
489
509
  95%
@@ -572,7 +592,7 @@ end
572
592
  # it "Style warning if foreword contains subclauses" do
573
593
  # expect { Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true) }.to output(%r{non-standard unit}).to_stderr
574
594
  # #{VALIDATING_BLANK_HDR}
575
- #
595
+ #
576
596
  # INPUT
577
597
  # end
578
598
 
@@ -644,7 +664,7 @@ it "Warning if introduction not followed by scope" do
644
664
  Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)
645
665
  #{VALIDATING_BLANK_HDR}
646
666
 
647
- .Foreword
667
+ .Foreword
648
668
  Foreword
649
669
 
650
670
  == Introduction
@@ -661,7 +681,7 @@ it "Warning if normative references not followed by terms and definitions" do
661
681
  Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)
662
682
  #{VALIDATING_BLANK_HDR}
663
683
 
664
- .Foreword
684
+ .Foreword
665
685
  Foreword
666
686
 
667
687
  == Scope
@@ -681,7 +701,7 @@ it "Warning if there are no clauses in the document" do
681
701
  Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)
682
702
  #{VALIDATING_BLANK_HDR}
683
703
 
684
- .Foreword
704
+ .Foreword
685
705
  Foreword
686
706
 
687
707
  == Scope
@@ -1089,7 +1109,7 @@ it "Warning if term definition starts with article" do
1089
1109
  Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)
1090
1110
  #{VALIDATING_BLANK_HDR}
1091
1111
  == Terms and Definitions
1092
-
1112
+
1093
1113
  === Term
1094
1114
 
1095
1115
  The definition of a term is a part of the specialized vocabulary of a particular field
@@ -1102,7 +1122,7 @@ it "Warning if term definition ends with period" do
1102
1122
  Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)
1103
1123
  #{VALIDATING_BLANK_HDR}
1104
1124
  == Terms and Definitions
1105
-
1125
+
1106
1126
  === Term
1107
1127
 
1108
1128
  Part of the specialized vocabulary of a particular field.
@@ -1202,7 +1222,7 @@ it "Warn if an undated reference has no associated footnote" do
1202
1222
  FileUtils.rm_f "test.err"
1203
1223
  Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)
1204
1224
  #{VALIDATING_BLANK_HDR}
1205
-
1225
+
1206
1226
  [bibliography]
1207
1227
  == Bibliography
1208
1228
  * [[[ISO8,ISO 8:--]]], _Title_