asciidoctor 2.0.12 → 2.0.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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}