asciidoctor 2.0.12 → 2.0.16

Sign up to get free protection for your applications and to get access to all the features.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.adoc +142 -22
  3. data/LICENSE +1 -1
  4. data/README-de.adoc +15 -6
  5. data/README-fr.adoc +14 -8
  6. data/README-jp.adoc +15 -6
  7. data/README-zh_CN.adoc +14 -5
  8. data/README.adoc +135 -125
  9. data/asciidoctor.gemspec +4 -11
  10. data/data/locale/attributes-be.adoc +23 -0
  11. data/data/locale/attributes-it.adoc +4 -4
  12. data/data/locale/attributes-nl.adoc +6 -6
  13. data/data/locale/attributes-th.adoc +23 -0
  14. data/data/locale/attributes-vi.adoc +23 -0
  15. data/data/reference/syntax.adoc +14 -7
  16. data/data/stylesheets/asciidoctor-default.css +51 -52
  17. data/lib/asciidoctor.rb +12 -12
  18. data/lib/asciidoctor/abstract_block.rb +4 -4
  19. data/lib/asciidoctor/abstract_node.rb +10 -9
  20. data/lib/asciidoctor/attribute_list.rb +6 -6
  21. data/lib/asciidoctor/block.rb +6 -6
  22. data/lib/asciidoctor/cli/invoker.rb +0 -1
  23. data/lib/asciidoctor/cli/options.rb +27 -26
  24. data/lib/asciidoctor/convert.rb +1 -0
  25. data/lib/asciidoctor/converter.rb +5 -3
  26. data/lib/asciidoctor/converter/docbook5.rb +45 -26
  27. data/lib/asciidoctor/converter/html5.rb +89 -69
  28. data/lib/asciidoctor/converter/manpage.rb +113 -86
  29. data/lib/asciidoctor/converter/template.rb +11 -12
  30. data/lib/asciidoctor/document.rb +44 -51
  31. data/lib/asciidoctor/extensions.rb +10 -12
  32. data/lib/asciidoctor/helpers.rb +3 -6
  33. data/lib/asciidoctor/list.rb +2 -6
  34. data/lib/asciidoctor/load.rb +13 -11
  35. data/lib/asciidoctor/logging.rb +10 -8
  36. data/lib/asciidoctor/parser.rb +135 -150
  37. data/lib/asciidoctor/path_resolver.rb +3 -3
  38. data/lib/asciidoctor/reader.rb +72 -71
  39. data/lib/asciidoctor/rx.rb +4 -3
  40. data/lib/asciidoctor/substitutors.rb +117 -117
  41. data/lib/asciidoctor/syntax_highlighter.rb +8 -11
  42. data/lib/asciidoctor/syntax_highlighter/coderay.rb +2 -1
  43. data/lib/asciidoctor/syntax_highlighter/highlightjs.rb +1 -1
  44. data/lib/asciidoctor/syntax_highlighter/pygments.rb +6 -5
  45. data/lib/asciidoctor/syntax_highlighter/rouge.rb +33 -26
  46. data/lib/asciidoctor/table.rb +17 -19
  47. data/lib/asciidoctor/timings.rb +3 -3
  48. data/lib/asciidoctor/version.rb +1 -1
  49. data/man/asciidoctor.1 +10 -11
  50. data/man/asciidoctor.adoc +8 -7
  51. metadata +14 -67
data/asciidoctor.gemspec CHANGED
@@ -33,22 +33,15 @@ Gem::Specification.new do |s|
33
33
  s.require_paths = ['lib']
34
34
  #s.test_files = files.grep %r/^(?:features|test)\/.+$/
35
35
 
36
- # asciimath is needed for testing AsciiMath in DocBook backend
37
- s.add_development_dependency 'asciimath', '~> 1.0.0'
38
- # coderay is needed for testing syntax highlighting
39
- s.add_development_dependency 'coderay', '~> 1.1.0'
40
36
  # concurrent-ruby, haml, slim, and tilt are needed for testing custom templates
41
37
  s.add_development_dependency 'concurrent-ruby', '~> 1.1.0'
42
38
  s.add_development_dependency 'cucumber', '~> 3.1.0'
43
39
  # erubi is needed for testing alternate eRuby impls
44
- s.add_development_dependency 'erubi', '~> 1.9.0'
45
- s.add_development_dependency 'haml', '~> 5.0.0'
46
- s.add_development_dependency 'minitest', '~> 5.11.0'
40
+ s.add_development_dependency 'erubi', '~> 1.10.0'
41
+ s.add_development_dependency 'haml', '~> 5.2.0'
42
+ s.add_development_dependency 'minitest', '~> 5.14.0'
47
43
  s.add_development_dependency 'nokogiri', '~> 1.10.0'
48
44
  s.add_development_dependency 'rake', '~> 12.3.0'
49
- # Asciidoctor supports Rouge >= 2
50
- s.add_development_dependency 'rouge', '~> 3.15.0'
51
- s.add_development_dependency 'rspec-expectations', '~> 3.8.0'
52
- s.add_development_dependency 'slim', '~> 4.0.0'
45
+ s.add_development_dependency 'slim', '~> 4.1.0'
53
46
  s.add_development_dependency 'tilt', '~> 2.0.0'
54
47
  end
@@ -0,0 +1,23 @@
1
+ // Belarusian translation, courtesy of Dexter Morganov <dexter.morganov@gmail.com>
2
+ :appendix-caption: Дадатак
3
+ :appendix-refsig: {appendix-caption}
4
+ :caution-caption: Увага
5
+ :chapter-signifier: Глава
6
+ :chapter-refsig: {chapter-signifier}
7
+ :example-caption: Прыклад
8
+ :figure-caption: Малюнак
9
+ :important-caption: Важна
10
+ :last-update-label: Апошняе абнаўленне
11
+ ifdef::listing-caption[:listing-caption: Лістынг]
12
+ ifdef::manname-title[:manname-title: Назва]
13
+ :note-caption: Заўвага
14
+ :part-signifier: Частка
15
+ :part-refsig: {part-signifier}
16
+ ifdef::preface-title[:preface-title: Прадмова]
17
+ :section-refsig: Раздзел
18
+ :table-caption: Табліца
19
+ :tip-caption: Падказка
20
+ :toc-title: Змест
21
+ :untitled-label: Без назвы
22
+ :version-label: Версія
23
+ :warning-caption: Папярэджанне
@@ -1,4 +1,4 @@
1
- // Italian translation, courtesy of Marco Ciampa <ciampix@libero.it>
1
+ // Italian translation, courtesy of Marco Ciampa <ciampix@posteo.net>
2
2
  :appendix-caption: Appendice
3
3
  :appendix-refsig: {appendix-caption}
4
4
  :caution-caption: Attenzione
@@ -11,10 +11,10 @@
11
11
  ifdef::listing-caption[:listing-caption: Elenco]
12
12
  ifdef::manname-title[:manname-title: Nome]
13
13
  :note-caption: Nota
14
- //:part-signifier: ???
15
- //:part-refsig: {part-signifier}
14
+ :part-signifier: Parte
15
+ :part-refsig: {part-signifier}
16
16
  ifdef::preface-title[:preface-title: Prefazione]
17
- //:section-refsig: ???
17
+ :section-refsig: Sezione
18
18
  :table-caption: Tabella
19
19
  :tip-caption: Suggerimento
20
20
  :toc-title: Indice
@@ -2,8 +2,8 @@
2
2
  :appendix-caption: Bijlage
3
3
  :appendix-refsig: {appendix-caption}
4
4
  :caution-caption: Opgelet
5
- //:chapter-signifier: Hoofdstuk
6
- //:chapter-refsig: {chapter-signifier}
5
+ :chapter-signifier: Hoofdstuk
6
+ :chapter-refsig: {chapter-signifier}
7
7
  :example-caption: Voorbeeld
8
8
  :figure-caption: Figuur
9
9
  :important-caption: Belangrijk
@@ -11,13 +11,13 @@
11
11
  ifdef::listing-caption[:listing-caption: Lijst]
12
12
  ifdef::manname-title[:manname-title: Naam]
13
13
  :note-caption: Noot
14
- //:part-signifier: ???
15
- //:part-refsig: {part-signifier}
14
+ :part-signifier: Deel
15
+ :part-refsig: {part-signifier}
16
16
  ifdef::preface-title[:preface-title: Inleiding]
17
- //:section-refsig: ???
17
+ :section-refsig: Paragraaf
18
18
  :table-caption: Tabel
19
19
  :tip-caption: Tip
20
- :toc-title: Ínhoudsopgave
20
+ :toc-title: Inhoudsopgave
21
21
  :untitled-label: Naamloos
22
22
  :version-label: Versie
23
23
  :warning-caption: Waarschuwing
@@ -0,0 +1,23 @@
1
+ // Thai translation
2
+ :appendix-caption: อ้างอิง
3
+ :appendix-refsig: {appendix-caption}
4
+ :caution-caption: ระวัง
5
+ :chapter-signifier: บท
6
+ :chapter-refsig: {chapter-signifier}
7
+ :example-caption: ตัวอย่าง
8
+ :figure-caption: คำอธิบายลักษณะจำลอง
9
+ :important-caption: สำคัญ
10
+ :last-update-label: ตัวอัพเดตล่าสุด
11
+ ifdef::listing-caption[:listing-caption: รายการ]
12
+ ifdef::manname-title[:manname-title: ซื่อ]
13
+ :note-caption: บันทึก
14
+ :part-signifier: ส่วน
15
+ :part-refsig: {part-signifier}
16
+ ifdef::preface-title[:preface-title: คำนำ]
17
+ :section-refsig: รายการย่อย
18
+ :table-caption: ตาราง
19
+ :tip-caption: เคล็ดลับ
20
+ :toc-title: สารบัญ
21
+ :untitled-label: ยังไม่มีชื่อ
22
+ :version-label: เวอร์ชัน
23
+ :warning-caption: คำเตือน
@@ -0,0 +1,23 @@
1
+ // Vietnamese translation, courtesy of Hoa Nguyen <ntthoa.uphcm@gmail.com>
2
+ :appendix-caption: Phụ lục
3
+ :appendix-refsig: {appendix-caption}
4
+ :caution-caption: Cảnh báo
5
+ :chapter-signifier: Chương
6
+ :chapter-refsig: {chapter-signifier}
7
+ :example-caption: Ví dụ
8
+ :figure-caption: Hình
9
+ :important-caption: Quan trọng
10
+ :last-update-label: Cập nhật lần cuối
11
+ ifdef::listing-caption[:listing-caption: Danh sách]
12
+ ifdef::manname-title[:manname-title: Tên]
13
+ :note-caption: Ghi chú
14
+ :part-signifier: Phần
15
+ :part-refsig: {part-signifier}
16
+ ifdef::preface-title[:preface-title: Lời nói đầu]
17
+ :section-refsig: Mục
18
+ :table-caption: Bảng
19
+ :tip-caption: Lời khuyên
20
+ :toc-title: Mục lục
21
+ :untitled-label: Không có tiêu đề
22
+ :version-label: Phiên bản
23
+ :warning-caption: Chú ý
@@ -17,7 +17,7 @@ Line breaks are not preserved.
17
17
  A blank line separates paragraphs.
18
18
 
19
19
  [%hardbreaks]
20
- This paragraph carries the `hardbreaks` option.
20
+ This paragraph is marked with the `hardbreaks` option.
21
21
  Notice how line breaks are now preserved.
22
22
 
23
23
  An indented (literal) paragraph disables text formatting,
@@ -25,14 +25,14 @@ Notice how line breaks are now preserved.
25
25
  monospaced font.
26
26
 
27
27
  [sidebar#id.role]
28
- A style, ID, and/or role gives a paragraph (or block) special meaning, like this sidebar.
28
+ Adding a style, ID, and/or role gives a paragraph (or block) special meaning, like this sidebar.
29
29
 
30
30
  NOTE: An admonition paragraph, like this note, grabs the reader's attention.
31
31
 
32
32
  TIP: Convert this document using the `asciidoctor` command to see the output produced from it.
33
33
 
34
34
  == Text Formatting
35
- :hardbreaks:
35
+ :hardbreaks-option:
36
36
 
37
37
  .Constrained (applied at word boundaries)
38
38
  *strong importance* (aka bold)
@@ -41,17 +41,24 @@ _stress emphasis_ (aka italic)
41
41
  "`double`" and '`single`' typographic quotes
42
42
  +passthrough text+ (substitutions disabled)
43
43
  `+literal text+` (monospaced with substitutions disabled)
44
+ a #mark# to remember (highlighted for notation)
44
45
 
45
46
  .Unconstrained (applied anywhere)
46
- **C**reate+**R**ead+**U**pdate+**D**elete
47
+ **C**reate, **R**ead, **U**pdate, and **D**elete (CRUD)
47
48
  fan__freakin__tastic
48
49
  ``mono``culture
50
+ ##mark##up your text
49
51
 
50
52
  .Replacements
51
53
  A long time ago in a galaxy far, far away...
52
54
  (C) 1976 Arty Artisan
53
55
  I believe I shall--no, actually I won't.
54
56
 
57
+ .ID and roles for phrases
58
+ [.line-through]#delete me#
59
+ the [.path]_images_ directory
60
+ a [#wibble.term]*wibble* does wobble
61
+
55
62
  .Macros
56
63
  // where c=specialchars, q=quotes, a=attributes, r=replacements, m=macros, p=post_replacements, etc.
57
64
  The European icon:flag[role=blue] is blue & contains pass:[************] arranged in a icon:circle-o[role=yellow].
@@ -60,7 +67,7 @@ Since `pass:[++]` has strong priority in AsciiDoc, you can rewrite pass:c,a,r[C+
60
67
  // activate stem support by adding `:stem:` to the document header
61
68
  stem:[sqrt(4) = 2]
62
69
 
63
- :!hardbreaks:
70
+ :!hardbreaks-option:
64
71
  == Attributes
65
72
 
66
73
  // define attributes in the document header; must be flush with left margin
@@ -242,7 +249,7 @@ comment - content which is not included in the output document
242
249
  == Tables
243
250
 
244
251
  .Table Attributes
245
- [cols=>1h;2d,width=50%,frame=topbot]
252
+ [cols=>1h;2d,width=50%,frame=ends]
246
253
  |===
247
254
  | Attribute Name | Values
248
255
 
@@ -256,7 +263,7 @@ comment - content which is not included in the output document
256
263
  | all \| cols \| rows \| none
257
264
 
258
265
  | frame
259
- | all \| sides \| topbot \| none
266
+ | all \| sides \| ends \| none
260
267
 
261
268
  | stripes
262
269
  | all \| even \| odd \| none
@@ -1,18 +1,16 @@
1
- /* Asciidoctor default stylesheet | MIT License | https://asciidoctor.org */
2
- /* Uncomment @import statement to use as custom stylesheet */
3
- /*@import "https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700";*/
4
- article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}
5
- audio,video{display:inline-block}
6
- audio:not([controls]){display:none;height:0}
7
- html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}
1
+ /*! Asciidoctor default stylesheet | MIT License | https://asciidoctor.org */
2
+ /* Uncomment the following line when using as a custom stylesheet */
3
+ /* @import "https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700"; */
4
+ html{font-family:sans-serif;-webkit-text-size-adjust:100%}
8
5
  a{background:none}
9
6
  a:focus{outline:thin dotted}
10
7
  a:active,a:hover{outline:0}
11
8
  h1{font-size:2em;margin:.67em 0}
12
- abbr[title]{border-bottom:1px dotted}
13
9
  b,strong{font-weight:bold}
10
+ abbr{font-size:.9em}
11
+ abbr[title]{cursor:help;border-bottom:1px dotted #dddddf;text-decoration:none}
14
12
  dfn{font-style:italic}
15
- hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}
13
+ hr{height:0}
16
14
  mark{background:#ff0;color:#000}
17
15
  code,kbd,pre,samp{font-family:monospace;font-size:1em}
18
16
  pre{white-space:pre-wrap}
@@ -24,20 +22,22 @@ sub{bottom:-.25em}
24
22
  img{border:0}
25
23
  svg:not(:root){overflow:hidden}
26
24
  figure{margin:0}
25
+ audio,video{display:inline-block}
26
+ audio:not([controls]){display:none;height:0}
27
27
  fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}
28
28
  legend{border:0;padding:0}
29
29
  button,input,select,textarea{font-family:inherit;font-size:100%;margin:0}
30
30
  button,input{line-height:normal}
31
31
  button,select{text-transform:none}
32
- button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}
32
+ button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}
33
33
  button[disabled],html input[disabled]{cursor:default}
34
- input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}
34
+ input[type=checkbox],input[type=radio]{padding:0}
35
35
  button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}
36
36
  textarea{overflow:auto;vertical-align:top}
37
37
  table{border-collapse:collapse;border-spacing:0}
38
- *,*::before,*::after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}
38
+ *,::before,::after{box-sizing:border-box}
39
39
  html,body{font-size:100%}
40
- body{background:#fff;color:rgba(0,0,0,.8);padding:0;margin:0;font-family:"Noto Serif","DejaVu Serif",serif;font-weight:400;font-style:normal;line-height:1;position:relative;cursor:auto;tab-size:4;word-wrap:anywhere;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}
40
+ body{background:#fff;color:rgba(0,0,0,.8);padding:0;margin:0;font-family:"Noto Serif","DejaVu Serif",serif;line-height:1;position:relative;cursor:auto;-moz-tab-size:4;-o-tab-size:4;tab-size:4;word-wrap:anywhere;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}
41
41
  a:hover{cursor:pointer}
42
42
  img,object,embed{max-width:100%;height:auto}
43
43
  object,embed{height:100%}
@@ -57,7 +57,7 @@ div,dl,dt,dd,ul,ol,li,h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6,
57
57
  a{color:#2156a5;text-decoration:underline;line-height:inherit}
58
58
  a:hover,a:focus{color:#1d4b8f}
59
59
  a img{border:0}
60
- p{font-family:inherit;font-weight:400;font-size:1em;line-height:1.6;margin-bottom:1.25em;text-rendering:optimizeLegibility}
60
+ p{line-height:1.6;margin-bottom:1.25em;text-rendering:optimizeLegibility}
61
61
  p aside{font-size:.875em;line-height:1.35;font-style:italic}
62
62
  h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{font-family:"Open Sans","DejaVu Sans",sans-serif;font-weight:300;font-style:normal;color:#ba3925;text-rendering:optimizeLegibility;margin-top:1em;margin-bottom:.5em;line-height:1.0125em}
63
63
  h1 small,h2 small,h3 small,#toctitle small,.sidebarblock>.content>.title small,h4 small,h5 small,h6 small{font-size:60%;color:#e99b8f;line-height:0}
@@ -66,14 +66,14 @@ h2{font-size:1.6875em}
66
66
  h3,#toctitle,.sidebarblock>.content>.title{font-size:1.375em}
67
67
  h4,h5{font-size:1.125em}
68
68
  h6{font-size:1em}
69
- hr{border:solid #dddddf;border-width:1px 0 0;clear:both;margin:1.25em 0 1.1875em;height:0}
69
+ hr{border:solid #dddddf;border-width:1px 0 0;clear:both;margin:1.25em 0 1.1875em}
70
70
  em,i{font-style:italic;line-height:inherit}
71
71
  strong,b{font-weight:bold;line-height:inherit}
72
72
  small{font-size:60%;line-height:inherit}
73
73
  code{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;font-weight:400;color:rgba(0,0,0,.9)}
74
- ul,ol,dl{font-size:1em;line-height:1.6;margin-bottom:1.25em;list-style-position:outside;font-family:inherit}
74
+ ul,ol,dl{line-height:1.6;margin-bottom:1.25em;list-style-position:outside;font-family:inherit}
75
75
  ul,ol{margin-left:1.5em}
76
- ul li ul,ul li ol{margin-left:1.25em;margin-bottom:0;font-size:1em}
76
+ ul li ul,ul li ol{margin-left:1.25em;margin-bottom:0}
77
77
  ul.square li ul,ul.circle li ul,ul.disc li ul{list-style:inherit}
78
78
  ul.square{list-style-type:square}
79
79
  ul.circle{list-style-type:circle}
@@ -81,19 +81,14 @@ ul.disc{list-style-type:disc}
81
81
  ol li ul,ol li ol{margin-left:1.25em;margin-bottom:0}
82
82
  dl dt{margin-bottom:.3125em;font-weight:bold}
83
83
  dl dd{margin-bottom:1.25em}
84
- abbr,acronym{text-transform:uppercase;font-size:90%;color:rgba(0,0,0,.8);border-bottom:1px dotted #ddd;cursor:help}
85
- abbr{text-transform:none}
86
84
  blockquote{margin:0 0 1.25em;padding:.5625em 1.25em 0 1.1875em;border-left:1px solid #ddd}
87
- blockquote cite{display:block;font-size:.9375em;color:rgba(0,0,0,.6)}
88
- blockquote cite::before{content:"\2014 \0020"}
89
- blockquote cite a,blockquote cite a:visited{color:rgba(0,0,0,.6)}
90
85
  blockquote,blockquote p{line-height:1.6;color:rgba(0,0,0,.85)}
91
86
  @media screen and (min-width:768px){h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2}
92
87
  h1{font-size:2.75em}
93
88
  h2{font-size:2.3125em}
94
89
  h3,#toctitle,.sidebarblock>.content>.title{font-size:1.6875em}
95
90
  h4{font-size:1.4375em}}
96
- table{background:#fff;margin-bottom:1.25em;border:solid 1px #dedede;word-wrap:normal}
91
+ table{background:#fff;margin-bottom:1.25em;border:1px solid #dedede;word-wrap:normal}
97
92
  table thead,table tfoot{background:#f7f8f7}
98
93
  table thead tr th,table thead tr td,table tfoot tr th,table tfoot tr td{padding:.5em .625em .625em;font-size:inherit;color:rgba(0,0,0,.8);text-align:left}
99
94
  table tr th,table tr td{padding:.5625em .625em;font-size:inherit;color:rgba(0,0,0,.8)}
@@ -108,7 +103,7 @@ h1 strong,h2 strong,h3 strong,#toctitle strong,.sidebarblock>.content>.title str
108
103
  :not(pre).nobreak{word-wrap:normal}
109
104
  :not(pre).nowrap{white-space:nowrap}
110
105
  :not(pre).pre-wrap{white-space:pre-wrap}
111
- :not(pre):not([class^=L])>code{font-size:.9375em;font-style:normal!important;letter-spacing:0;padding:.1em .5ex;word-spacing:-.15em;background:#f7f7f8;-webkit-border-radius:4px;border-radius:4px;line-height:1.45;text-rendering:optimizeSpeed}
106
+ :not(pre):not([class^=L])>code{font-size:.9375em;font-style:normal!important;letter-spacing:0;padding:.1em .5ex;word-spacing:-.15em;background:#f7f7f8;border-radius:4px;line-height:1.45;text-rendering:optimizeSpeed}
112
107
  pre{color:rgba(0,0,0,.9);font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;line-height:1.45;text-rendering:optimizeSpeed}
113
108
  pre code,pre pre{color:inherit;font-size:inherit;line-height:inherit}
114
109
  pre>code{display:block}
@@ -116,7 +111,7 @@ pre.nowrap,pre.nowrap pre{white-space:pre;word-wrap:normal}
116
111
  em em{font-style:normal}
117
112
  strong strong{font-weight:400}
118
113
  .keyseq{color:rgba(51,51,51,.8)}
119
- kbd{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;display:inline-block;color:rgba(0,0,0,.8);font-size:.65em;line-height:1.45;background:#f7f7f7;border:1px solid #ccc;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,.2),0 0 0 .1em white inset;box-shadow:0 1px 0 rgba(0,0,0,.2),0 0 0 .1em #fff inset;margin:0 .15em;padding:.2em .5em;vertical-align:middle;position:relative;top:-.1em;white-space:nowrap}
114
+ kbd{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;display:inline-block;color:rgba(0,0,0,.8);font-size:.65em;line-height:1.45;background:#f7f7f7;border:1px solid #ccc;border-radius:3px;box-shadow:0 1px 0 rgba(0,0,0,.2),inset 0 0 0 .1em #fff;margin:0 .15em;padding:.2em .5em;vertical-align:middle;position:relative;top:-.1em;white-space:nowrap}
120
115
  .keyseq kbd:first-child{margin-left:0}
121
116
  .keyseq kbd:last-child{margin-right:0}
122
117
  .menuseq,.menuref{color:#000}
@@ -128,7 +123,7 @@ b.button::before,b.button::after{position:relative;top:-1px;font-weight:400}
128
123
  b.button::before{content:"[";padding:0 3px 0 2px}
129
124
  b.button::after{content:"]";padding:0 2px 0 3px}
130
125
  p a>code:hover{color:rgba(0,0,0,.9)}
131
- #header,#content,#footnotes,#footer{width:100%;margin-left:auto;margin-right:auto;margin-top:0;margin-bottom:0;max-width:62.5em;*zoom:1;position:relative;padding-left:.9375em;padding-right:.9375em}
126
+ #header,#content,#footnotes,#footer{width:100%;margin:0 auto;max-width:62.5em;*zoom:1;position:relative;padding-left:.9375em;padding-right:.9375em}
132
127
  #header::before,#header::after,#content::before,#content::after,#footnotes::before,#footnotes::after,#footer::before,#footer::after{content:" ";display:table}
133
128
  #header::after,#content::after,#footnotes::after,#footer::after{clear:both}
134
129
  #content{margin-top:1.25em}
@@ -136,7 +131,7 @@ p a>code:hover{color:rgba(0,0,0,.9)}
136
131
  #header>h1:first-child{color:rgba(0,0,0,.85);margin-top:2.25rem;margin-bottom:0}
137
132
  #header>h1:first-child+#toc{margin-top:8px;border-top:1px solid #dddddf}
138
133
  #header>h1:only-child,body.toc2 #header>h1:nth-last-child(2){border-bottom:1px solid #dddddf;padding-bottom:8px}
139
- #header .details{border-bottom:1px solid #dddddf;line-height:1.45;padding-top:.25em;padding-bottom:.25em;padding-left:.25em;color:rgba(0,0,0,.6);display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-flow:row wrap;-webkit-flex-flow:row wrap;flex-flow:row wrap}
134
+ #header .details{border-bottom:1px solid #dddddf;line-height:1.45;padding-top:.25em;padding-bottom:.25em;padding-left:.25em;color:rgba(0,0,0,.6);display:flex;flex-flow:row wrap}
140
135
  #header .details span:first-child{margin-left:-.125em}
141
136
  #header .details span.email a{color:rgba(0,0,0,.85)}
142
137
  #header .details br{display:none}
@@ -170,11 +165,11 @@ body.toc2.toc-right #toc.toc2{border-right-width:0;border-left:1px solid #e7e7e9
170
165
  #toc.toc2>ul{font-size:.95em}
171
166
  #toc.toc2 ul ul{padding-left:1.25em}
172
167
  body.toc2.toc-right{padding-left:0;padding-right:20em}}
173
- #content #toc{border-style:solid;border-width:1px;border-color:#e0e0dc;margin-bottom:1.25em;padding:1.25em;background:#f8f8f7;-webkit-border-radius:4px;border-radius:4px}
168
+ #content #toc{border:1px solid #e0e0dc;margin-bottom:1.25em;padding:1.25em;background:#f8f8f7;border-radius:4px}
174
169
  #content #toc>:first-child{margin-top:0}
175
170
  #content #toc>:last-child{margin-bottom:0}
176
171
  #footer{max-width:none;background:rgba(0,0,0,.8);padding:1.25em}
177
- #footer-text{color:rgba(255,255,255,.8);line-height:1.44}
172
+ #footer-text{color:hsla(0,0%,100%,.8);line-height:1.44}
178
173
  #content{margin-bottom:.625em}
179
174
  .sect1{padding-bottom:.625em}
180
175
  @media screen and (min-width:768px){#content{margin-bottom:1.25em}
@@ -187,29 +182,32 @@ body.toc2.toc-right{padding-left:0;padding-right:20em}}
187
182
  #content h1>a.link,h2>a.link,h3>a.link,#toctitle>a.link,.sidebarblock>.content>.title>a.link,h4>a.link,h5>a.link,h6>a.link{color:#ba3925;text-decoration:none}
188
183
  #content h1>a.link:hover,h2>a.link:hover,h3>a.link:hover,#toctitle>a.link:hover,.sidebarblock>.content>.title>a.link:hover,h4>a.link:hover,h5>a.link:hover,h6>a.link:hover{color:#a53221}
189
184
  details,.audioblock,.imageblock,.literalblock,.listingblock,.stemblock,.videoblock{margin-bottom:1.25em}
190
- details>summary:first-of-type{cursor:pointer;display:list-item;outline:none;margin-bottom:.75em}
185
+ details{margin-left:1.25rem}
186
+ details>summary{cursor:pointer;display:block;position:relative;line-height:1.6;margin-bottom:.625rem;-webkit-tap-highlight-color:transparent}
187
+ details>summary::before{content:"";border:solid transparent;border-left:solid;border-width:.3em 0 .3em .5em;position:absolute;top:.5em;left:-1.25rem;transform:translateX(15%)}
188
+ details[open]>summary::before{border:solid transparent;border-top:solid;border-width:.5em .3em 0;transform:translateY(15%)}
189
+ details>summary::after{content:"";width:1.25rem;height:1em;position:absolute;top:.3em;left:-1.25rem}
191
190
  .admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{text-rendering:optimizeLegibility;text-align:left;font-family:"Noto Serif","DejaVu Serif",serif;font-size:1rem;font-style:italic}
192
191
  table.tableblock.fit-content>caption.title{white-space:nowrap;width:0}
193
- .paragraph.lead>p,#preamble>.sectionbody>[class="paragraph"]:first-of-type p{font-size:1.21875em;line-height:1.6;color:rgba(0,0,0,.85)}
194
- table.tableblock #preamble>.sectionbody>[class="paragraph"]:first-of-type p{font-size:inherit}
192
+ .paragraph.lead>p,#preamble>.sectionbody>[class=paragraph]:first-of-type p{font-size:1.21875em;line-height:1.6;color:rgba(0,0,0,.85)}
195
193
  .admonitionblock>table{border-collapse:separate;border:0;background:none;width:100%}
196
194
  .admonitionblock>table td.icon{text-align:center;width:80px}
197
195
  .admonitionblock>table td.icon img{max-width:none}
198
196
  .admonitionblock>table td.icon .title{font-weight:bold;font-family:"Open Sans","DejaVu Sans",sans-serif;text-transform:uppercase}
199
197
  .admonitionblock>table td.content{padding-left:1.125em;padding-right:1.25em;border-left:1px solid #dddddf;color:rgba(0,0,0,.6);word-wrap:anywhere}
200
198
  .admonitionblock>table td.content>:last-child>:last-child{margin-bottom:0}
201
- .exampleblock>.content{border-style:solid;border-width:1px;border-color:#e6e6e6;margin-bottom:1.25em;padding:1.25em;background:#fff;-webkit-border-radius:4px;border-radius:4px}
199
+ .exampleblock>.content{border:1px solid #e6e6e6;margin-bottom:1.25em;padding:1.25em;background:#fff;border-radius:4px}
202
200
  .exampleblock>.content>:first-child{margin-top:0}
203
201
  .exampleblock>.content>:last-child{margin-bottom:0}
204
- .sidebarblock{border-style:solid;border-width:1px;border-color:#dbdbd6;margin-bottom:1.25em;padding:1.25em;background:#f3f3f2;-webkit-border-radius:4px;border-radius:4px}
202
+ .sidebarblock{border:1px solid #dbdbd6;margin-bottom:1.25em;padding:1.25em;background:#f3f3f2;border-radius:4px}
205
203
  .sidebarblock>:first-child{margin-top:0}
206
204
  .sidebarblock>:last-child{margin-bottom:0}
207
205
  .sidebarblock>.content>.title{color:#7a2518;margin-top:0;text-align:center}
208
206
  .exampleblock>.content>:last-child>:last-child,.exampleblock>.content .olist>ol>li:last-child>:last-child,.exampleblock>.content .ulist>ul>li:last-child>:last-child,.exampleblock>.content .qlist>ol>li:last-child>:last-child,.sidebarblock>.content>:last-child>:last-child,.sidebarblock>.content .olist>ol>li:last-child>:last-child,.sidebarblock>.content .ulist>ul>li:last-child>:last-child,.sidebarblock>.content .qlist>ol>li:last-child>:last-child{margin-bottom:0}
209
- .literalblock pre,.listingblock>.content>pre{-webkit-border-radius:4px;border-radius:4px;overflow-x:auto;padding:1em;font-size:.8125em}
207
+ .literalblock pre,.listingblock>.content>pre{border-radius:4px;overflow-x:auto;padding:1em;font-size:.8125em}
210
208
  @media screen and (min-width:768px){.literalblock pre,.listingblock>.content>pre{font-size:.90625em}}
211
209
  @media screen and (min-width:1280px){.literalblock pre,.listingblock>.content>pre{font-size:1em}}
212
- .literalblock pre,.listingblock>.content>pre:not(.highlight),.listingblock>.content>pre[class="highlight"],.listingblock>.content>pre[class^="highlight "]{background:#f7f7f8}
210
+ .literalblock pre,.listingblock>.content>pre:not(.highlight),.listingblock>.content>pre[class=highlight],.listingblock>.content>pre[class^="highlight "]{background:#f7f7f8}
213
211
  .literalblock.output pre{color:#f7f7f8;background:rgba(0,0,0,.9)}
214
212
  .listingblock>.content{position:relative}
215
213
  .listingblock code[data-lang]::before{display:none;content:attr(data-lang);position:absolute;font-size:.75em;top:.425rem;right:.5rem;line-height:1;text-transform:uppercase;color:inherit;opacity:.5}
@@ -217,7 +215,7 @@ table.tableblock #preamble>.sectionbody>[class="paragraph"]:first-of-type p{font
217
215
  .listingblock.terminal pre .command::before{content:attr(data-prompt);padding-right:.5em;color:inherit;opacity:.5}
218
216
  .listingblock.terminal pre .command:not([data-prompt])::before{content:"$"}
219
217
  .listingblock pre.highlightjs{padding:0}
220
- .listingblock pre.highlightjs>code{padding:1em;-webkit-border-radius:4px;border-radius:4px}
218
+ .listingblock pre.highlightjs>code{padding:1em;border-radius:4px}
221
219
  .listingblock pre.prettyprint{border-width:0}
222
220
  .prettyprint{background:#f7f7f8}
223
221
  pre.prettyprint .linenums{line-height:1.45;margin-left:2em}
@@ -227,8 +225,8 @@ pre.prettyprint li:not(:first-child) code[data-lang]::before{display:none}
227
225
  table.linenotable{border-collapse:separate;border:0;margin-bottom:0;background:none}
228
226
  table.linenotable td[class]{color:inherit;vertical-align:top;padding:0;line-height:inherit;white-space:normal}
229
227
  table.linenotable td.code{padding-left:.75em}
230
- table.linenotable td.linenos{border-right:1px solid currentColor;opacity:.35;padding-right:.5em}
231
- pre.pygments .lineno{border-right:1px solid currentColor;opacity:.35;display:inline-block;margin-right:.75em}
228
+ table.linenotable td.linenos{border-right:1px solid;opacity:.35;padding-right:.5em}
229
+ pre.pygments .lineno{border-right:1px solid;opacity:.35;display:inline-block;margin-right:.75em}
232
230
  pre.pygments .lineno::before{content:"";margin-right:-.125em}
233
231
  .quoteblock{margin:0 1em 1.25em 1.5em;display:table}
234
232
  .quoteblock:not(.excerpt)>.title{margin-left:-1.5em;margin-bottom:.75em}
@@ -238,7 +236,7 @@ pre.pygments .lineno::before{content:"";margin-right:-.125em}
238
236
  .quoteblock blockquote>.paragraph:last-child p{margin-bottom:0}
239
237
  .quoteblock .attribution{margin-top:.75em;margin-right:.5ex;text-align:right}
240
238
  .verseblock{margin:0 1em 1.25em}
241
- .verseblock pre{font-family:"Open Sans","DejaVu Sans",sans;font-size:1.15rem;color:rgba(0,0,0,.85);font-weight:300;text-rendering:optimizeLegibility}
239
+ .verseblock pre{font-family:"Open Sans","DejaVu Sans",sans-serif;font-size:1.15rem;color:rgba(0,0,0,.85);font-weight:300;text-rendering:optimizeLegibility}
242
240
  .verseblock pre strong{font-weight:400}
243
241
  .verseblock .attribution{margin-top:1.25rem;margin-left:.5ex}
244
242
  .quoteblock .attribution,.verseblock .attribution{font-size:.9375em;line-height:1.45;font-style:italic}
@@ -251,7 +249,7 @@ pre.pygments .lineno::before{content:"";margin-right:-.125em}
251
249
  .quoteblock.excerpt>blockquote,.quoteblock .quoteblock{padding:0 0 .25em 1em;border-left:.25em solid #dddddf}
252
250
  .quoteblock.excerpt,.quoteblock .quoteblock{margin-left:0}
253
251
  .quoteblock.excerpt blockquote,.quoteblock.excerpt p,.quoteblock .quoteblock blockquote,.quoteblock .quoteblock p{color:inherit;font-size:1.0625rem}
254
- .quoteblock.excerpt .attribution,.quoteblock .quoteblock .attribution{color:inherit;text-align:left;margin-right:0}
252
+ .quoteblock.excerpt .attribution,.quoteblock .quoteblock .attribution{color:inherit;font-size:.85rem;text-align:left;margin-right:0}
255
253
  p.tableblock:last-child{margin-bottom:0}
256
254
  td.tableblock>.content{margin-bottom:1.25em;word-wrap:anywhere}
257
255
  td.tableblock>.content>:last-child{margin-bottom:-1.25em}
@@ -286,10 +284,10 @@ ol>li p,ul>li p,ul dd,ol dd,.olist .olist,.ulist .ulist,.ulist .olist,.olist .ul
286
284
  ul.checklist,ul.none,ol.none,ul.no-bullet,ol.no-bullet,ol.unnumbered,ul.unstyled,ol.unstyled{list-style-type:none}
287
285
  ul.no-bullet,ol.no-bullet,ol.unnumbered{margin-left:.625em}
288
286
  ul.unstyled,ol.unstyled{margin-left:0}
289
- ul.checklist{margin-left:.625em}
290
- ul.checklist li>p:first-child>.fa-square-o:first-child,ul.checklist li>p:first-child>.fa-check-square-o:first-child{width:1.25em;font-size:.8em;position:relative;bottom:.125em}
291
- ul.checklist li>p:first-child>input[type="checkbox"]:first-child{margin-right:.25em}
292
- ul.inline{display:-ms-flexbox;display:-webkit-box;display:flex;-ms-flex-flow:row wrap;-webkit-flex-flow:row wrap;flex-flow:row wrap;list-style:none;margin:0 0 .625em -1.25em}
287
+ ul.checklist>li>p:first-child{margin-left:-1em}
288
+ ul.checklist>li>p:first-child>.fa-square-o:first-child,ul.checklist>li>p:first-child>.fa-check-square-o:first-child{width:1.25em;font-size:.8em;position:relative;bottom:.125em}
289
+ ul.checklist>li>p:first-child>input[type=checkbox]:first-child{margin-right:.25em}
290
+ ul.inline{display:flex;flex-flow:row wrap;list-style:none;margin:0 0 .625em -1.25em}
293
291
  ul.inline>li{margin-left:1.25em}
294
292
  .unstyled dl dt{font-weight:400;font-style:normal}
295
293
  ol.arabic{list-style-type:decimal}
@@ -308,7 +306,7 @@ td.hdlist2{word-wrap:anywhere}
308
306
  .colist td:not([class]):first-child{padding:.4em .75em 0;line-height:1;vertical-align:top}
309
307
  .colist td:not([class]):first-child img{max-width:none}
310
308
  .colist td:not([class]):last-child{padding:.25em 0}
311
- .thumb,.th{line-height:0;display:inline-block;border:solid 4px #fff;-webkit-box-shadow:0 0 0 1px #ddd;box-shadow:0 0 0 1px #ddd}
309
+ .thumb,.th{line-height:0;display:inline-block;border:4px solid #fff;box-shadow:0 0 0 1px #ddd}
312
310
  .imageblock.left{margin:.25em .625em 1.25em 0}
313
311
  .imageblock.right{margin:.25em 0 1.25em .625em}
314
312
  .imageblock>.title{margin-bottom:0}
@@ -376,7 +374,7 @@ a span.icon>.fa{cursor:inherit}
376
374
  .admonitionblock td.icon .icon-warning::before{content:"\f071";color:#bf6900}
377
375
  .admonitionblock td.icon .icon-caution::before{content:"\f06d";color:#bf3400}
378
376
  .admonitionblock td.icon .icon-important::before{content:"\f06a";color:#bf0000}
379
- .conum[data-value]{display:inline-block;color:#fff!important;background:rgba(0,0,0,.8);-webkit-border-radius:50%;border-radius:50%;text-align:center;font-size:.75em;width:1.67em;height:1.67em;line-height:1.67em;font-family:"Open Sans","DejaVu Sans",sans-serif;font-style:normal;font-weight:bold}
377
+ .conum[data-value]{display:inline-block;color:#fff!important;background:rgba(0,0,0,.8);border-radius:50%;text-align:center;font-size:.75em;width:1.67em;height:1.67em;line-height:1.67em;font-family:"Open Sans","DejaVu Sans",sans-serif;font-style:normal;font-weight:bold}
380
378
  .conum[data-value] *{color:#fff!important}
381
379
  .conum[data-value]+b{display:none}
382
380
  .conum[data-value]::after{content:attr(data-value)}
@@ -384,19 +382,20 @@ pre .conum[data-value]{position:relative;top:-.125em}
384
382
  b.conum *{color:inherit!important}
385
383
  .conum:not([data-value]):empty{display:none}
386
384
  dt,th.tableblock,td.content,div.footnote{text-rendering:optimizeLegibility}
387
- h1,h2,p,td.content,span.alt{letter-spacing:-.01em}
385
+ h1,h2,p,td.content,span.alt,summary{letter-spacing:-.01em}
388
386
  p strong,td.content strong,div.footnote strong{letter-spacing:-.005em}
389
- p,blockquote,dt,td.content,span.alt{font-size:1.0625rem}
387
+ p,blockquote,dt,td.content,span.alt,summary{font-size:1.0625rem}
390
388
  p{margin-bottom:1.25rem}
391
389
  .sidebarblock p,.sidebarblock dt,.sidebarblock td.content,p.tableblock{font-size:1em}
392
- .exampleblock>.content{background:#fffef7;border-color:#e0e0dc;-webkit-box-shadow:0 1px 4px #e0e0dc;box-shadow:0 1px 4px #e0e0dc}
390
+ .exampleblock>.content{background:#fffef7;border-color:#e0e0dc;box-shadow:0 1px 4px #e0e0dc}
393
391
  .print-only{display:none!important}
394
392
  @page{margin:1.25cm .75cm}
395
- @media print{*{-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:none!important}
393
+ @media print{*{box-shadow:none!important;text-shadow:none!important}
396
394
  html{font-size:80%}
397
395
  a{color:inherit!important;text-decoration:underline!important}
398
396
  a.bare,a[href^="#"],a[href^="mailto:"]{text-decoration:none!important}
399
397
  a[href^="http:"]:not(.bare)::after,a[href^="https:"]:not(.bare)::after{content:"(" attr(href) ")";display:inline-block;font-size:.875em;padding-left:.25em}
398
+ abbr[title]{border-bottom:1px dotted}
400
399
  abbr[title]::after{content:" (" attr(title) ")"}
401
400
  pre,blockquote,tr,img,object,svg{page-break-inside:avoid}
402
401
  thead{display:table-header-group}
@@ -420,7 +419,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
420
419
  .print-only{display:block!important}
421
420
  .hide-for-print{display:none!important}
422
421
  .show-for-print{display:inherit!important}}
423
- @media print,amzn-kf8{#header>h1:first-child{margin-top:1.25rem}
422
+ @media amzn-kf8,print{#header>h1:first-child{margin-top:1.25rem}
424
423
  .sect1{padding:0!important}
425
424
  .sect1+.sect1{border:0}
426
425
  #footer{background:none}