burr 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (103) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +3 -0
  3. data/.ruby-version +1 -0
  4. data/Gemfile +3 -0
  5. data/LICENSE.md +30 -0
  6. data/README.md +180 -0
  7. data/Rakefile +118 -0
  8. data/bin/burr +9 -0
  9. data/burr.gemspec +36 -0
  10. data/generators/Gemfile.txt +3 -0
  11. data/generators/config.yml +55 -0
  12. data/generators/contents/chapter1.md +7 -0
  13. data/generators/contents/chapter2.md +7 -0
  14. data/generators/stylesheets/pdf.css +569 -0
  15. data/generators/stylesheets/site.css +1 -0
  16. data/lib/burr.rb +56 -0
  17. data/lib/burr/book.rb +289 -0
  18. data/lib/burr/cli.rb +64 -0
  19. data/lib/burr/converter.rb +19 -0
  20. data/lib/burr/core_ext/blank.rb +107 -0
  21. data/lib/burr/dependency.rb +28 -0
  22. data/lib/burr/eeepub_ext/maker.rb +131 -0
  23. data/lib/burr/exporter.rb +137 -0
  24. data/lib/burr/exporters/epub.rb +163 -0
  25. data/lib/burr/exporters/pdf.rb +95 -0
  26. data/lib/burr/exporters/site.rb +101 -0
  27. data/lib/burr/generator.rb +41 -0
  28. data/lib/burr/kramdown_ext/converter.rb +145 -0
  29. data/lib/burr/kramdown_ext/options.rb +38 -0
  30. data/lib/burr/kramdown_ext/parser.rb +65 -0
  31. data/lib/burr/liquid_ext/block.rb +58 -0
  32. data/lib/burr/liquid_ext/extends.rb +114 -0
  33. data/lib/burr/plugin.rb +70 -0
  34. data/lib/burr/plugins/aside.rb +44 -0
  35. data/lib/burr/plugins/codeblock.rb +42 -0
  36. data/lib/burr/plugins/figure.rb +62 -0
  37. data/lib/burr/plugins/link.rb +47 -0
  38. data/lib/burr/plugins/parser_plugin.rb +18 -0
  39. data/lib/burr/plugins/table.rb +42 -0
  40. data/lib/burr/plugins/toc.rb +105 -0
  41. data/lib/burr/ruby_version_check.rb +4 -0
  42. data/lib/burr/server.rb +27 -0
  43. data/lib/burr/ui.rb +46 -0
  44. data/lib/burr/version.rb +8 -0
  45. data/resources/locales/labels/en.yml +45 -0
  46. data/resources/locales/labels/zh_CN.yml +46 -0
  47. data/resources/locales/titles/en.yml +21 -0
  48. data/resources/locales/titles/zh_CN.yml +21 -0
  49. data/resources/templates/epub/_layout.liquid +17 -0
  50. data/resources/templates/epub/acknowledgement.liquid +10 -0
  51. data/resources/templates/epub/afterword.liquid +10 -0
  52. data/resources/templates/epub/appendix.liquid +10 -0
  53. data/resources/templates/epub/author.liquid +10 -0
  54. data/resources/templates/epub/chapter.liquid +10 -0
  55. data/resources/templates/epub/conclusion.liquid +10 -0
  56. data/resources/templates/epub/cover.liquid +9 -0
  57. data/resources/templates/epub/dedication.liquid +10 -0
  58. data/resources/templates/epub/edition.liquid +1 -0
  59. data/resources/templates/epub/epilogue.liquid +1 -0
  60. data/resources/templates/epub/foreword.liquid +10 -0
  61. data/resources/templates/epub/glossary.liquid +1 -0
  62. data/resources/templates/epub/introduction.liquid +1 -0
  63. data/resources/templates/epub/license.liquid +1 -0
  64. data/resources/templates/epub/lof.liquid +24 -0
  65. data/resources/templates/epub/lot.liquid +24 -0
  66. data/resources/templates/epub/part.liquid +4 -0
  67. data/resources/templates/epub/preface.liquid +10 -0
  68. data/resources/templates/epub/prologue.liquid +1 -0
  69. data/resources/templates/epub/table.liquid +7 -0
  70. data/resources/templates/epub/title.liquid +3 -0
  71. data/resources/templates/epub/toc.liquid +10 -0
  72. data/resources/templates/pdf/_item.liquid +6 -0
  73. data/resources/templates/pdf/acknowledgement.liquid +1 -0
  74. data/resources/templates/pdf/afterword.liquid +1 -0
  75. data/resources/templates/pdf/appendix.liquid +4 -0
  76. data/resources/templates/pdf/author.liquid +1 -0
  77. data/resources/templates/pdf/blank.liquid +3 -0
  78. data/resources/templates/pdf/book.liquid +42 -0
  79. data/resources/templates/pdf/chapter.liquid +4 -0
  80. data/resources/templates/pdf/code.liquid +3 -0
  81. data/resources/templates/pdf/conclusion.liquid +1 -0
  82. data/resources/templates/pdf/cover.liquid +6 -0
  83. data/resources/templates/pdf/dedication.liquid +3 -0
  84. data/resources/templates/pdf/edition.liquid +1 -0
  85. data/resources/templates/pdf/epilogue.liquid +1 -0
  86. data/resources/templates/pdf/foreword.liquid +1 -0
  87. data/resources/templates/pdf/glossary.liquid +1 -0
  88. data/resources/templates/pdf/introduction.liquid +1 -0
  89. data/resources/templates/pdf/license.liquid +1 -0
  90. data/resources/templates/pdf/lof.liquid +24 -0
  91. data/resources/templates/pdf/lot.liquid +24 -0
  92. data/resources/templates/pdf/part.liquid +4 -0
  93. data/resources/templates/pdf/preface.liquid +1 -0
  94. data/resources/templates/pdf/prologue.liquid +1 -0
  95. data/resources/templates/pdf/table.liquid +7 -0
  96. data/resources/templates/pdf/title.liquid +3 -0
  97. data/resources/templates/pdf/toc.liquid +4 -0
  98. data/resources/templates/site/_layout.liquid +27 -0
  99. data/resources/templates/site/author.liquid +13 -0
  100. data/resources/templates/site/chapter.liquid +13 -0
  101. data/resources/templates/site/foreword.liquid +13 -0
  102. data/resources/templates/site/preface.liquid +13 -0
  103. metadata +232 -0
@@ -0,0 +1,7 @@
1
+ # The title of the first chapter #
2
+
3
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
4
+
5
+ ## Ut enim ad minim veniam ##
6
+
7
+ Quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
@@ -0,0 +1,7 @@
1
+ # The title of the second chapter #
2
+
3
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
4
+
5
+ ## Ut enim ad minim veniam ##
6
+
7
+ Quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
@@ -0,0 +1,569 @@
1
+ @charset 'utf-8';
2
+
3
+ html {
4
+ margin: 0;
5
+ font: 10pt/1.5 times, simsun, serif;
6
+ }
7
+
8
+ body {
9
+ margin: 0;
10
+ }
11
+
12
+ h1, h2, h3, h4, h5, h6 {
13
+ font-family: Helvetica, simhei, sans-serif;
14
+ font-weight: bold;
15
+ margin: 1em 0 .5em 0;
16
+ /*page-break-after: avoid;*/
17
+ }
18
+
19
+ h1 {
20
+ border-bottom: 3pt solid #ccc;
21
+ margin: 0 0 2em 0;
22
+ padding: 2em 0 .5em 0;
23
+ font-size: 20pt;
24
+ text-align: right;
25
+ string-set: header content();
26
+ }
27
+
28
+ h2 {
29
+ font-size: 18pt;
30
+ }
31
+
32
+ h3 {
33
+ font-size: 16pt;
34
+ }
35
+
36
+ h4 {
37
+ font-size: 14pt;
38
+ prince-bookmark-level: none;
39
+ }
40
+
41
+ h5 {
42
+ font-size: 12pt;
43
+ prince-bookmark-level: none;
44
+ }
45
+
46
+ h6 {
47
+ font-size: 10pt;
48
+ prince-bookmark-level: none;
49
+ }
50
+
51
+ q::before {
52
+ content: "\201C";
53
+ }
54
+
55
+ q::after {
56
+ content: "\201D";
57
+ }
58
+
59
+ p { margin: 1em 0; }
60
+
61
+ pre {
62
+ margin: 1em 1.3em;
63
+ white-space: pre;
64
+ white-space: pre-wrap;
65
+ word-wrap: break-word;
66
+ }
67
+
68
+ code {
69
+ font: Courier, monospace;
70
+ }
71
+
72
+ a {
73
+ color: #06c;
74
+ text-decoration: none;
75
+ }
76
+
77
+ img {
78
+ prince-image-resolution: 110dpi;
79
+ }
80
+
81
+ /* cross-references */
82
+
83
+ a.pageref::after { content: " on page " target-counter(attr(href), page); }
84
+ a.chapref::before { content: " Chapter " target-counter(attr(href), chapter) ", "; }
85
+ a.figref { content: " Figure " target-counter(attr(href), figure); }
86
+ a.tableref { content: " Table " target-counter(attr(href), figure); }
87
+
88
+ /* sidenotes */
89
+
90
+ .sidenote {
91
+ float: left;
92
+ clear: left;
93
+ margin: 0 0 1em -41%;
94
+ width: 37%;
95
+ font-size: 0.9em;
96
+ font-style: normal;
97
+ text-indent: 0;
98
+ text-align: right;
99
+ page-break-inside: avoid;
100
+ }
101
+
102
+ /* sidebars */
103
+
104
+ div.sidebar {
105
+ float: top-next;
106
+ margin: 1.2em 0 1.2em 0;
107
+ border: thin solid;
108
+ background: #CCC;
109
+ padding: 0.5em 1em;
110
+ page-break-inside: avoid;
111
+ column-count: 2;
112
+ column-gap: 1.5em;
113
+ }
114
+
115
+ div.sidebar h2 {
116
+ margin-top: 0;
117
+ }
118
+
119
+ /* figures and tables*/
120
+
121
+ div.figure {
122
+ margin: 1em 0;
123
+ counter-increment: figure;
124
+ }
125
+
126
+ div.figure img {
127
+ display: block;
128
+ margin: 0 auto;
129
+ }
130
+
131
+ div.figure .caption, div.table .caption {
132
+ text-align: center;
133
+ }
134
+
135
+ div.figure .caption span {
136
+ font-weight: bold;
137
+ }
138
+
139
+ div.table .caption::before {
140
+ content: "Table " counter(table) ": ";
141
+ font-weight: bold;
142
+ }
143
+
144
+ div.table {
145
+ margin: 1em 0;
146
+ counter-increment: table;
147
+ }
148
+
149
+ div.table th {
150
+ text-align: left;
151
+ }
152
+
153
+ table th, table td {
154
+ text-align: left;
155
+ padding-right: 1em;
156
+ }
157
+
158
+ table.lined td, table.lined th {
159
+ border-top: none;
160
+ border-bottom: thin dotted;
161
+ padding-top: 0.2em;
162
+ padding-bottom: 0.2em;
163
+ }
164
+
165
+
166
+ @page {
167
+ margin: 27mm 16mm 27mm 16mm;
168
+ size: A4;
169
+
170
+ @footnotes {
171
+ border-top: thin solid black;
172
+ padding-top: 0.3em;
173
+ }
174
+ }
175
+
176
+
177
+ /* define default page and names pages: cover, blank, frontmatter */
178
+
179
+ @page :left {
180
+ @top-left {
181
+ font: 11pt Times, simsun, serif;
182
+ content: string(booktitle);
183
+ vertical-align: bottom;
184
+ padding-bottom: 2em;
185
+ }
186
+
187
+ @bottom-left {
188
+ font: 11pt Times, simsun, serif;
189
+ content: counter(page);
190
+ padding-top: 2em;
191
+ vertical-align: top;
192
+ }
193
+ }
194
+
195
+ @page :right {
196
+ @top-right {
197
+ font: 11pt Times, simsun, serif;
198
+ content: string(header, first);
199
+ vertical-align: bottom;
200
+ padding-bottom: 2em;
201
+ }
202
+
203
+ @bottom-right {
204
+ font: 11pt Times, simsun, serif;
205
+ content: counter(page);
206
+ text-align: right;
207
+ vertical-align: top;
208
+ padding-top: 2em;
209
+ }
210
+ }
211
+
212
+ @page cover { margin: 0; }
213
+
214
+ @page frontmatter :left {
215
+ @top-left {
216
+ font: 11pt Times, simsun, serif;
217
+ content: string(title);
218
+ vertical-align: bottom;
219
+ padding-bottom: 2em;
220
+ }
221
+
222
+ @bottom-left {
223
+ font: 11pt Times, simsun, serif;
224
+ content: counter(page, lower-roman);
225
+ padding-top: 2em;
226
+ vertical-align: top;
227
+ }
228
+ }
229
+
230
+ @page frontmatter :right {
231
+ @top-right {
232
+ font: 11pt Times, simsun, serif;
233
+ content: string(header, first);
234
+ vertical-align: bottom;
235
+ padding-bottom: 2em;
236
+ }
237
+
238
+ @bottom-right {
239
+ font: 11pt Times, simsun, serif;
240
+ content: counter(page, lower-roman);
241
+ text-align: right;
242
+ vertical-align: top;
243
+ padding-top: 2em;
244
+ }
245
+ }
246
+
247
+ @page blank :left {
248
+ @top-left { content: normal }
249
+ @bottom-left { content: normal }
250
+ }
251
+
252
+ @page blank :right {
253
+ @top-right { content: normal }
254
+ @bottom-right { content: normal }
255
+ }
256
+
257
+ /* page number */
258
+
259
+ div.bodymatter {
260
+ counter-reset: page 1;
261
+ }
262
+
263
+ /* footnotes */
264
+
265
+ .footnote {
266
+ display: none; /* default rule */
267
+ display: prince-footnote; /* prince-specific rules */
268
+ position: footnote;
269
+ counter-increment: footnote;
270
+ font-size: 9pt;
271
+ line-height: 1.4;
272
+ footnote-style-position: inside;
273
+ }
274
+
275
+ .footnote::footnote-call {
276
+ vertical-align: super;
277
+ font-size: 8pt;
278
+ }
279
+
280
+ .footnote::footnote-marker {
281
+ color: green;
282
+ }
283
+
284
+ .chapter {
285
+ counter-reset: footnote;
286
+ }
287
+
288
+
289
+ /*
290
+ A book consists of different types of sections. We propose to use
291
+ DIV elements with these class names:
292
+
293
+ cover
294
+ halftitlepage: contains the title of the book
295
+ titlepage: contains the title of the book, name of author(s) and publisher
296
+ imprint: left page with copyright, publisher, library printing information
297
+ dedication: right page with short dedication
298
+ foreword: written by someone other than the author(s)
299
+ toc: table of contents
300
+ preface: preface, including acknowledgements
301
+ chapter: each chapter is given its own DIV element
302
+ references: contains list of references
303
+ appendix: each appendix is given its own
304
+ bibliography
305
+ glossary
306
+ index
307
+ colophon: describes how the book was produced
308
+ backcover
309
+
310
+ A book will use several of the types listed above, but few books
311
+ will use all of them.
312
+ */
313
+
314
+ /* which section uses which named page */
315
+
316
+ div.halftitlepage, div.titlepage, div.imprint, div.dedication, div.blank { page: blank }
317
+ div.foreword, div.toc, div.preface { page: frontmatter }
318
+
319
+
320
+ /* page breaks */
321
+
322
+ div.cover, div.halftitlepage, div.titlepage { page-break-before: right }
323
+ div.imprint { page-break-before: always }
324
+ div.dedication, div.foreword, div.toc, div.preface, div.chapter, div.reference,
325
+ div.appendix, div.bibliography, div.glossary, div.index, div.colophon {
326
+ page-break-before: always
327
+ }
328
+ div.backcover { page-break-before: left }
329
+
330
+ /* the front cover; this code is probably not very reusable by other books */
331
+
332
+ div.cover { page: cover; }
333
+
334
+ div.cover img {
335
+ position: absolute;
336
+ width: 7in;
337
+ height: 9.25in;
338
+ left: 0;
339
+ top: 0;
340
+ z-index: -1;
341
+ }
342
+
343
+ div.cover h1 {
344
+ border-bottom: none;
345
+ position: absolute;
346
+ left: 0;
347
+ top: 1cm;
348
+ color: #000;
349
+ font-size: 32pt;
350
+ font-weight: normal;
351
+ text-align: center;
352
+ width: 100%;
353
+ prince-bookmark-level: none;
354
+ string-set: booktitle content();
355
+ }
356
+
357
+ div.cover h2 {
358
+ position: absolute;
359
+ right: 2cm;
360
+ top: 5cm;
361
+ color: #000;
362
+ font-size: 16pt;
363
+ font-weight: normal;
364
+ padding: 0.2em 5em 0.2em 1em;
365
+ letter-spacing: 0.15em;
366
+ prince-bookmark-level: none;
367
+ }
368
+
369
+ div.cover h3 {
370
+ position: absolute;
371
+ left: 0;
372
+ top: 7cm;
373
+ color: #000;
374
+ font-size: 14pt;
375
+ font-weight: normal;
376
+ text-align: center;
377
+ width: 100%;
378
+ prince-bookmark-level: none;
379
+ }
380
+
381
+ div.cover p {
382
+ position: absolute;
383
+ left: 2cm;
384
+ bottom: 1.5cm;
385
+ font-size: 14pt;
386
+ color: black;
387
+ text-transform: uppercase;
388
+ }
389
+
390
+ div.cover p.edition {
391
+ left: 15cm;
392
+ top: 2cm;
393
+ font-size: 16pt;
394
+ }
395
+
396
+ /* blank page */
397
+ div.blank p {
398
+ text-align: center;
399
+ }
400
+
401
+ /* titlepage, halftitlepage */
402
+
403
+ div.titlepage h1, div.halftitlepage h1 { margin-bottom: 2em; }
404
+ div.titlepage h2, div.halftitlepage h2 { font-size: 1.2em; margin-bottom: 3em; }
405
+ div.titlepage h3, div.halftitlepage h3 { font-size: 1em; margin-bottom: 3em; }
406
+ div.titlepage p, div.halftitlepage p {
407
+ font-size: 1.4em;
408
+ font-weight: bold;
409
+ margin: 0;
410
+ padding: 0;
411
+ }
412
+
413
+ /* imprint */
414
+ div.imprint p {
415
+ text-indent: 0;
416
+ margin-bottom: 1em;
417
+ }
418
+ div.imprint img {
419
+ width: 200px; height: 157px;
420
+ }
421
+
422
+ /* TOC */
423
+
424
+ ol.toc-list {
425
+ list-style-type: none;
426
+ margin: 0;
427
+ padding: 0;
428
+ }
429
+ ol.toc-list li.level-1 {
430
+ font-weight: bold;
431
+ }
432
+ ol.toc-list li.level-2 {
433
+ margin-left: 3.5em;
434
+ font-weight: normal;
435
+ }
436
+ ol.toc-list li.level-3 {
437
+ margin-left: 4.5em;
438
+ font-weight: normal;
439
+ }
440
+ ol.toc-list a::after {
441
+ content: leader('.') target-counter(attr(href), page);
442
+ font-style: normal;
443
+ }
444
+ ol.toc-list li.frontmatter a::after {
445
+ content: leader('.') target-counter(attr(href), page, lower-roman);
446
+ font-style: normal;
447
+ }
448
+ ol.toc-list > li.backmatter a::after {
449
+ content: leader('.') target-counter(attr(href), page);
450
+ font-style: normal;
451
+ }
452
+
453
+ ol.toc-list a {
454
+ color: #000;
455
+ }
456
+
457
+ /* Aside */
458
+
459
+ div.aside {
460
+ background: #eee;
461
+ padding: 1em;
462
+ }
463
+
464
+ div.aside h4 {
465
+ background: #ccc;
466
+ font-size: 10pt;
467
+ margin: 0;
468
+ padding: .5em 1em;
469
+ text-align: center;
470
+ }
471
+
472
+ /* index */
473
+
474
+ ol.index {
475
+ list-style-type: none;
476
+ margin: 0; padding: 0;
477
+ column-count: 2;
478
+ column-gap: 1em;
479
+ }
480
+
481
+ ul.index a::after { content: ", " target-counter(attr(href), page); }
482
+
483
+ /* codeblock */
484
+
485
+ .codeblock .caption {
486
+ margin: 0 0 .5em;
487
+ }
488
+
489
+ .codeblock .caption span {
490
+ font-weight: bold;
491
+ }
492
+
493
+ .codeblock .highlight {
494
+ background: #eee;
495
+ padding: 0.5em;
496
+ }
497
+
498
+ .codeblock .highlight pre {
499
+ margin: 0;
500
+ }
501
+
502
+ .highlight .c{color:#999988;font-style:italic}
503
+ .highlight .err{color:#a61717;background-color:#e3d2d2}
504
+ .highlight .k{font-weight:bold}
505
+ .highlight .o{font-weight:bold}
506
+ .highlight .cm{color:#999988;font-style:italic}
507
+ .highlight .cp{color:#999999;font-weight:bold}
508
+ .highlight .c1{color:#999988;font-style:italic}
509
+ .highlight .cs{color:#999999;font-weight:bold;font-style:italic}
510
+ .highlight .gd{color:#000000;background-color:#ffdddd}
511
+ .highlight .gd .x{color:#000000;background-color:#ffaaaa}
512
+ .highlight .ge{font-style:italic}
513
+ .highlight .gr{color:#aa0000}
514
+ .highlight .gh{color:#999999}
515
+ .highlight .gi{color:#000000;background-color:#ddffdd}
516
+ .highlight .gi .x{color:#000000;background-color:#aaffaa}
517
+ .highlight .go{color:#888888}
518
+ .highlight .gp{color:#555555}
519
+ .highlight .gs{font-weight:bold}
520
+ .highlight .gu{color:#800080;font-weight:bold}
521
+ .highlight .gt{color:#aa0000}
522
+ .highlight .kc{font-weight:bold}
523
+ .highlight .kd{font-weight:bold}
524
+ .highlight .kn{font-weight:bold}
525
+ .highlight .kp{font-weight:bold}
526
+ .highlight .kr{font-weight:bold}
527
+ .highlight .kt{color:#445588;font-weight:bold}
528
+ .highlight .m{color:#009999}
529
+ .highlight .s{color:#d14}
530
+ .highlight .na{color:#008080}
531
+ .highlight .nb{color:#0086B3}
532
+ .highlight .nc{color:#445588;font-weight:bold}
533
+ .highlight .no{color:#008080}
534
+ .highlight .ni{color:#800080}
535
+ .highlight .ne{color:#990000;font-weight:bold}
536
+ .highlight .nf{color:#990000;font-weight:bold}
537
+ .highlight .nn{color:#555555}
538
+ .highlight .nt{color:#000080}
539
+ .highlight .nv{color:#008080}
540
+ .highlight .ow{font-weight:bold}
541
+ .highlight .w{color:#bbbbbb}
542
+ .highlight .mf{color:#009999}
543
+ .highlight .mh{color:#009999}
544
+ .highlight .mi{color:#009999}
545
+ .highlight .mo{color:#009999}
546
+ .highlight .sb{color:#d14}
547
+ .highlight .sc{color:#d14}
548
+ .highlight .sd{color:#d14}
549
+ .highlight .s2{color:#d14}
550
+ .highlight .se{color:#d14}
551
+ .highlight .sh{color:#d14}
552
+ .highlight .si{color:#d14}
553
+ .highlight .sx{color:#d14}
554
+ .highlight .sr{color:#009926}
555
+ .highlight .s1{color:#d14}
556
+ .highlight .ss{color:#990073}
557
+ .highlight .bp{color:#999999}
558
+ .highlight .vc{color:#008080}
559
+ .highlight .vg{color:#008080}
560
+ .highlight .vi{color:#008080}
561
+ .highlight .il{color:#009999}
562
+ .highlight .gc{color:#999;background-color:#EAF2F5}
563
+
564
+ @media screen, handheld {
565
+ html { margin: 1em; font: 14px Helvetica, simhei, sans-serif; }
566
+ h1 { margin-bottom: 0.5em }
567
+ div.cover, div.halftitlepage,
568
+ div.dedication, div.foreword, div.toc, div.index { display: none }
569
+ }