asciidoctor 2.0.10 → 2.0.11

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 (73) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.adoc +89 -5
  3. data/LICENSE +1 -1
  4. data/README-de.adoc +4 -4
  5. data/README-fr.adoc +4 -4
  6. data/README-jp.adoc +4 -4
  7. data/README-zh_CN.adoc +6 -6
  8. data/README.adoc +14 -10
  9. data/asciidoctor.gemspec +3 -3
  10. data/data/locale/attributes-ar.adoc +4 -3
  11. data/data/locale/attributes-bg.adoc +4 -3
  12. data/data/locale/attributes-ca.adoc +6 -5
  13. data/data/locale/attributes-cs.adoc +4 -3
  14. data/data/locale/attributes-da.adoc +6 -5
  15. data/data/locale/attributes-de.adoc +4 -4
  16. data/data/locale/attributes-en.adoc +4 -4
  17. data/data/locale/attributes-es.adoc +6 -5
  18. data/data/locale/attributes-fa.adoc +4 -3
  19. data/data/locale/attributes-fi.adoc +4 -3
  20. data/data/locale/attributes-fr.adoc +6 -5
  21. data/data/locale/attributes-hu.adoc +4 -3
  22. data/data/locale/attributes-id.adoc +4 -3
  23. data/data/locale/attributes-it.adoc +4 -3
  24. data/data/locale/attributes-ja.adoc +4 -3
  25. data/data/locale/{attributes-kr.adoc → attributes-ko.adoc} +4 -3
  26. data/data/locale/attributes-nb.adoc +4 -3
  27. data/data/locale/attributes-nl.adoc +4 -3
  28. data/data/locale/attributes-nn.adoc +4 -3
  29. data/data/locale/attributes-pl.adoc +8 -7
  30. data/data/locale/attributes-pt.adoc +6 -5
  31. data/data/locale/attributes-pt_BR.adoc +6 -5
  32. data/data/locale/attributes-ro.adoc +4 -3
  33. data/data/locale/attributes-ru.adoc +6 -5
  34. data/data/locale/attributes-sr.adoc +4 -4
  35. data/data/locale/attributes-sr_Latn.adoc +4 -4
  36. data/data/locale/attributes-sv.adoc +4 -4
  37. data/data/locale/attributes-tr.adoc +4 -3
  38. data/data/locale/attributes-uk.adoc +6 -5
  39. data/data/locale/attributes-zh_CN.adoc +4 -3
  40. data/data/locale/attributes-zh_TW.adoc +4 -3
  41. data/data/stylesheets/asciidoctor-default.css +22 -20
  42. data/lib/asciidoctor.rb +33 -7
  43. data/lib/asciidoctor/abstract_block.rb +9 -4
  44. data/lib/asciidoctor/abstract_node.rb +16 -6
  45. data/lib/asciidoctor/attribute_list.rb +59 -67
  46. data/lib/asciidoctor/cli/invoker.rb +2 -0
  47. data/lib/asciidoctor/cli/options.rb +3 -3
  48. data/lib/asciidoctor/convert.rb +167 -162
  49. data/lib/asciidoctor/converter.rb +13 -12
  50. data/lib/asciidoctor/converter/docbook5.rb +3 -7
  51. data/lib/asciidoctor/converter/html5.rb +59 -42
  52. data/lib/asciidoctor/converter/manpage.rb +12 -11
  53. data/lib/asciidoctor/converter/template.rb +3 -0
  54. data/lib/asciidoctor/document.rb +23 -38
  55. data/lib/asciidoctor/extensions.rb +2 -2
  56. data/lib/asciidoctor/helpers.rb +17 -9
  57. data/lib/asciidoctor/load.rb +101 -101
  58. data/lib/asciidoctor/parser.rb +26 -23
  59. data/lib/asciidoctor/path_resolver.rb +14 -12
  60. data/lib/asciidoctor/reader.rb +14 -7
  61. data/lib/asciidoctor/rx.rb +5 -4
  62. data/lib/asciidoctor/substitutors.rb +57 -38
  63. data/lib/asciidoctor/syntax_highlighter.rb +8 -5
  64. data/lib/asciidoctor/syntax_highlighter/coderay.rb +1 -1
  65. data/lib/asciidoctor/syntax_highlighter/highlightjs.rb +12 -4
  66. data/lib/asciidoctor/syntax_highlighter/prettify.rb +7 -4
  67. data/lib/asciidoctor/syntax_highlighter/pygments.rb +2 -3
  68. data/lib/asciidoctor/syntax_highlighter/rouge.rb +15 -7
  69. data/lib/asciidoctor/table.rb +49 -20
  70. data/lib/asciidoctor/version.rb +1 -1
  71. data/man/asciidoctor.1 +6 -6
  72. data/man/asciidoctor.adoc +3 -3
  73. metadata +8 -8
@@ -2,8 +2,8 @@
2
2
  :appendix-caption: Apendix
3
3
  :appendix-refsig: {appendix-caption}
4
4
  :caution-caption: Precauție
5
- //:chapter-label: ???
6
- //:chapter-refsig: {chapter-label}
5
+ //:chapter-signifier: ???
6
+ //:chapter-refsig: {chapter-signifier}
7
7
  :example-caption: Exemplu
8
8
  :figure-caption: Figură
9
9
  :important-caption: Important
@@ -11,7 +11,8 @@
11
11
  ifdef::listing-caption[:listing-caption: Listare]
12
12
  ifdef::manname-title[:manname-title: Nume]
13
13
  :note-caption: Notă
14
- //:part-refsig: ???
14
+ //:part-signifier: ???
15
+ //:part-refsig: {part-signifier}
15
16
  ifdef::preface-title[:preface-title: Prefață]
16
17
  //:section-refsig: ???
17
18
  :table-caption: Tabela
@@ -2,18 +2,19 @@
2
2
  :appendix-caption: Приложение
3
3
  :appendix-refsig: {appendix-caption}
4
4
  :caution-caption: Внимание
5
- //:chapter-label: ???
6
- //:chapter-refsig: {chapter-label}
5
+ :chapter-signifier: Глава
6
+ :chapter-refsig: {chapter-signifier}
7
7
  :example-caption: Пример
8
8
  :figure-caption: Рисунок
9
9
  :important-caption: Важно
10
- :last-update-label: Последний раз обновлено
10
+ :last-update-label: Последнее обновление
11
11
  ifdef::listing-caption[:listing-caption: Листинг]
12
12
  ifdef::manname-title[:manname-title: Название]
13
13
  :note-caption: Примечание
14
- //:part-refsig: ???
14
+ :part-signifier: Часть
15
+ :part-refsig: {part-signifier}
15
16
  ifdef::preface-title[:preface-title: Предисловие]
16
- //:section-refsig: ???
17
+ :section-refsig: Раздел
17
18
  :table-caption: Таблица
18
19
  :tip-caption: Подсказка
19
20
  :toc-title: Содержание
@@ -2,8 +2,8 @@
2
2
  :appendix-caption: Додатак
3
3
  :appendix-refsig: {appendix-caption}
4
4
  :caution-caption: Опрез
5
- :chapter-label: Поглавље
6
- :chapter-refsig: {chapter-label}
5
+ :chapter-signifier: Поглавље
6
+ :chapter-refsig: {chapter-signifier}
7
7
  :example-caption: Пример
8
8
  :figure-caption: Слика
9
9
  :important-caption: Важно
@@ -11,8 +11,8 @@
11
11
  ifdef::listing-caption[:listing-caption: Листинг]
12
12
  ifdef::manname-title[:manname-title: Назив]
13
13
  :note-caption: Белешка
14
- :part-label: Део
15
- :part-refsig: {part-label}
14
+ :part-signifier: Део
15
+ :part-refsig: {part-signifier}
16
16
  ifdef::preface-title[:preface-title: Предговор]
17
17
  :section-refsig: Секција
18
18
  :table-caption: Табела
@@ -2,8 +2,8 @@
2
2
  :appendix-caption: Dodatak
3
3
  :appendix-refsig: {appendix-caption}
4
4
  :caution-caption: Oprez
5
- :chapter-label: Poglavlje
6
- :chapter-refsig: {chapter-label}
5
+ :chapter-signifier: Poglavlje
6
+ :chapter-refsig: {chapter-signifier}
7
7
  :example-caption: Primer
8
8
  :figure-caption: Slika
9
9
  :important-caption: Važno
@@ -11,8 +11,8 @@
11
11
  ifdef::listing-caption[:listing-caption: Listing]
12
12
  ifdef::manname-title[:manname-title: Naziv]
13
13
  :note-caption: Beleška
14
- :part-label: Deo
15
- :part-refsig: {part-label}
14
+ :part-signifier: Deo
15
+ :part-refsig: {part-signifier}
16
16
  ifdef::preface-title[:preface-title: Predgovor]
17
17
  :section-refsig: Sekcija
18
18
  :table-caption: Tabela
@@ -2,8 +2,8 @@
2
2
  :appendix-caption: Bilaga
3
3
  :appendix-refsig: {appendix-caption}
4
4
  :caution-caption: Var uppmärksam
5
- :chapter-label: Kapitel
6
- :chapter-refsig: {chapter-label}
5
+ :chapter-signifier: Kapitel
6
+ :chapter-refsig: {chapter-signifier}
7
7
  :example-caption: Exempel
8
8
  :figure-caption: Figur
9
9
  :important-caption: Viktigt
@@ -11,8 +11,8 @@
11
11
  ifdef::listing-caption[:listing-caption: Lista]
12
12
  ifdef::manname-title[:manname-title: Namn]
13
13
  :note-caption: Notera
14
- :part-label: Del
15
- :part-refsig: {part-label}
14
+ :part-signifier: Del
15
+ :part-refsig: {part-signifier}
16
16
  ifdef::preface-title[:preface-title: Förord]
17
17
  :section-refsig: Avsnitt
18
18
  :table-caption: Tabell
@@ -2,8 +2,8 @@
2
2
  :appendix-caption: Ek bölüm
3
3
  :appendix-refsig: {appendix-caption}
4
4
  :caution-caption: Dikkat
5
- //:chapter-label: ???
6
- //:chapter-refsig: {chapter-label}
5
+ //:chapter-signifier: ???
6
+ //:chapter-refsig: {chapter-signifier}
7
7
  :example-caption: Örnek
8
8
  :figure-caption: Görsel
9
9
  :important-caption: Önemli
@@ -11,7 +11,8 @@
11
11
  ifdef::listing-caption[:listing-caption: Listeleme]
12
12
  ifdef::manname-title[:manname-title: İsim]
13
13
  :note-caption: Not
14
- //:part-refsig: ???
14
+ //:part-signifier: ???
15
+ //:part-refsig: {part-signifier}
15
16
  ifdef::preface-title[:preface-title: Ön söz]
16
17
  //:section-refsig: ???
17
18
  :table-caption: Tablo
@@ -2,18 +2,19 @@
2
2
  :appendix-caption: Додаток
3
3
  :appendix-refsig: {appendix-caption}
4
4
  :caution-caption: Обережно
5
- //:chapter-label: ???
6
- //:chapter-refsig: {chapter-label}
5
+ :chapter-signifier: Розділ
6
+ :chapter-refsig: {chapter-signifier}
7
7
  :example-caption: Приклад
8
- :figure-caption: Зображення
8
+ :figure-caption: Рисунок
9
9
  :important-caption: Важливо
10
10
  :last-update-label: Востаннє оновлено
11
11
  ifdef::listing-caption[:listing-caption: Лістинг]
12
12
  ifdef::manname-title[:manname-title: Назва]
13
13
  :note-caption: Зауваження
14
- //:part-refsig: ???
14
+ :part-signifier: Частина
15
+ :part-refsig: {part-signifier}
15
16
  ifdef::preface-title[:preface-title: Передмова]
16
- //:section-refsig: ???
17
+ :section-refsig: Підрозділ
17
18
  :table-caption: Таблиця
18
19
  :tip-caption: Підказка
19
20
  :toc-title: Зміст
@@ -2,8 +2,8 @@
2
2
  :appendix-caption: 附录
3
3
  :appendix-refsig: {appendix-caption}
4
4
  :caution-caption: 注意
5
- //:chapter-label: ???
6
- //:chapter-refsig: {chapter-label}
5
+ //:chapter-signifier: ???
6
+ //:chapter-refsig: {chapter-signifier}
7
7
  :example-caption: 示例
8
8
  :figure-caption: 图表
9
9
  :important-caption: 重要
@@ -11,7 +11,8 @@
11
11
  ifdef::listing-caption[:listing-caption: 列表]
12
12
  ifdef::manname-title[:manname-title: 名称]
13
13
  :note-caption: 笔记
14
- //:part-refsig: ???
14
+ //:part-signifier: ???
15
+ //:part-refsig: {part-signifier}
15
16
  ifdef::preface-title[:preface-title: 序言]
16
17
  //:section-refsig: ???
17
18
  :table-caption: 表格
@@ -2,8 +2,8 @@
2
2
  :appendix-caption: 附錄
3
3
  :appendix-refsig: {appendix-caption}
4
4
  :caution-caption: 注意
5
- //:chapter-label: ???
6
- //:chapter-refsig: {chapter-label}
5
+ //:chapter-signifier: ???
6
+ //:chapter-refsig: {chapter-signifier}
7
7
  :example-caption: 示例
8
8
  :figure-caption: 圖表
9
9
  :important-caption: 重要
@@ -11,7 +11,8 @@
11
11
  ifdef::listing-caption[:listing-caption: 列表]
12
12
  ifdef::manname-title[:manname-title: 名稱]
13
13
  :note-caption: 筆記
14
- //:part-refsig: ???
14
+ //:part-signifier: ???
15
+ //:part-refsig: {part-signifier}
15
16
  ifdef::preface-title[:preface-title: 序言]
16
17
  //:section-refsig: ???
17
18
  :table-caption: 表格
@@ -37,7 +37,7 @@ textarea{overflow:auto;vertical-align:top}
37
37
  table{border-collapse:collapse;border-spacing:0}
38
38
  *,*::before,*::after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;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;-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;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}
41
41
  a:hover{cursor:pointer}
42
42
  img,object,embed{max-width:100%;height:auto}
43
43
  object,embed{height:100%}
@@ -52,10 +52,8 @@ img{-ms-interpolation-mode:bicubic}
52
52
  img,object,svg{display:inline-block;vertical-align:middle}
53
53
  textarea{height:auto;min-height:50px}
54
54
  select{width:100%}
55
- .center{margin-left:auto;margin-right:auto}
56
- .stretch{width:100%}
57
55
  .subheader,.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{line-height:1.45;color:#7a2518;font-weight:400;margin-top:0;margin-bottom:.25em}
58
- div,dl,dt,dd,ul,ol,li,h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6,pre,form,p,blockquote,th,td{margin:0;padding:0;direction:ltr}
56
+ div,dl,dt,dd,ul,ol,li,h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6,pre,form,p,blockquote,th,td{margin:0;padding:0}
59
57
  a{color:#2156a5;text-decoration:underline;line-height:inherit}
60
58
  a:hover,a:focus{color:#1d4b8f}
61
59
  a img{border:0}
@@ -103,11 +101,14 @@ table tr.even,table tr.alt{background:#f8f8f7}
103
101
  table thead tr th,table tfoot tr th,table tbody tr td,table tr td,table tfoot tr td{display:table-cell;line-height:1.6}
104
102
  h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2;word-spacing:-.05em}
105
103
  h1 strong,h2 strong,h3 strong,#toctitle strong,.sidebarblock>.content>.title strong,h4 strong,h5 strong,h6 strong{font-weight:400}
104
+ .center{margin-left:auto;margin-right:auto}
105
+ .stretch{width:100%}
106
106
  .clearfix::before,.clearfix::after,.float-group::before,.float-group::after{content:" ";display:table}
107
107
  .clearfix::after,.float-group::after{clear:both}
108
- :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;word-wrap:break-word}
109
- :not(pre)>code.nobreak{word-wrap:normal}
110
- :not(pre)>code.nowrap{white-space:nowrap}
108
+ :not(pre).nobreak{word-wrap:normal}
109
+ :not(pre).nowrap{white-space:nowrap}
110
+ :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}
111
112
  pre{color:rgba(0,0,0,.9);font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;line-height:1.45;text-rendering:optimizeSpeed}
112
113
  pre code,pre pre{color:inherit;font-size:inherit;line-height:inherit}
113
114
  pre>code{display:block}
@@ -172,7 +173,7 @@ body.toc2.toc-right{padding-left:0;padding-right:20em}}
172
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}
173
174
  #content #toc>:first-child{margin-top:0}
174
175
  #content #toc>:last-child{margin-bottom:0}
175
- #footer{max-width:100%;background:rgba(0,0,0,.8);padding:1.25em}
176
+ #footer{max-width:none;background:rgba(0,0,0,.8);padding:1.25em}
176
177
  #footer-text{color:rgba(255,255,255,.8);line-height:1.44}
177
178
  #content{margin-bottom:.625em}
178
179
  .sect1{padding-bottom:.625em}
@@ -205,7 +206,7 @@ table.tableblock #preamble>.sectionbody>[class="paragraph"]:first-of-type p{font
205
206
  .sidebarblock>:last-child{margin-bottom:0}
206
207
  .sidebarblock>.content>.title{color:#7a2518;margin-top:0;text-align:center}
207
208
  .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}
208
- .literalblock pre,.listingblock>.content>pre{-webkit-border-radius:4px;border-radius:4px;word-wrap:break-word;overflow-x:auto;padding:1em;font-size:.8125em}
209
+ .literalblock pre,.listingblock>.content>pre{-webkit-border-radius:4px;border-radius:4px;overflow-x:auto;padding:1em;font-size:.8125em}
209
210
  @media screen and (min-width:768px){.literalblock pre,.listingblock>.content>pre{font-size:.90625em}}
210
211
  @media screen and (min-width:1280px){.literalblock pre,.listingblock>.content>pre{font-size:1em}}
211
212
  .literalblock pre,.listingblock>.content>pre:not(.highlight),.listingblock>.content>pre[class="highlight"],.listingblock>.content>pre[class^="highlight "]{background:#f7f7f8}
@@ -251,21 +252,21 @@ pre.pygments .lineno::before{content:"";margin-right:-.125em}
251
252
  .quoteblock.excerpt,.quoteblock .quoteblock{margin-left:0}
252
253
  .quoteblock.excerpt blockquote,.quoteblock.excerpt p,.quoteblock .quoteblock blockquote,.quoteblock .quoteblock p{color:inherit;font-size:1.0625rem}
253
254
  .quoteblock.excerpt .attribution,.quoteblock .quoteblock .attribution{color:inherit;text-align:left;margin-right:0}
254
- table.tableblock{max-width:100%;border-collapse:separate}
255
+ table.tableblock{max-width:100%}
255
256
  p.tableblock:last-child{margin-bottom:0}
257
+ td.tableblock>.content{margin-bottom:1.25em}
256
258
  td.tableblock>.content>:last-child{margin-bottom:-1.25em}
257
- td.tableblock>.content>:last-child.sidebarblock{margin-bottom:0}
258
259
  table.tableblock,th.tableblock,td.tableblock{border:0 solid #dedede}
259
- table.grid-all>thead>tr>.tableblock,table.grid-all>tbody>tr>.tableblock{border-width:0 1px 1px 0}
260
- table.grid-all>tfoot>tr>.tableblock{border-width:1px 1px 0 0}
261
- table.grid-cols>*>tr>.tableblock{border-width:0 1px 0 0}
262
- table.grid-rows>thead>tr>.tableblock,table.grid-rows>tbody>tr>.tableblock{border-width:0 0 1px}
263
- table.grid-rows>tfoot>tr>.tableblock{border-width:1px 0 0}
264
- table.grid-all>*>tr>.tableblock:last-child,table.grid-cols>*>tr>.tableblock:last-child{border-right-width:0}
265
- table.grid-all>tbody>tr:last-child>.tableblock,table.grid-all>thead:last-child>tr>.tableblock,table.grid-rows>tbody>tr:last-child>.tableblock,table.grid-rows>thead:last-child>tr>.tableblock{border-bottom-width:0}
260
+ table.grid-all>*>tr>*{border-width:1px}
261
+ table.grid-cols>*>tr>*{border-width:0 1px}
262
+ table.grid-rows>*>tr>*{border-width:1px 0}
266
263
  table.frame-all{border-width:1px}
264
+ table.frame-ends{border-width:1px 0}
267
265
  table.frame-sides{border-width:0 1px}
268
- table.frame-topbot,table.frame-ends{border-width:1px 0}
266
+ table.frame-none>colgroup+*>:first-child>*,table.frame-sides>colgroup+*>:first-child>*{border-top-width:0}
267
+ table.frame-none>:last-child>:last-child>*,table.frame-sides>:last-child>:last-child>*{border-bottom-width:0}
268
+ table.frame-none>*>tr>:first-child,table.frame-ends>*>tr>:first-child{border-left-width:0}
269
+ table.frame-none>*>tr>:last-child,table.frame-ends>*>tr>:last-child{border-right-width:0}
269
270
  table.stripes-all tr,table.stripes-odd tr:nth-of-type(odd),table.stripes-even tr:nth-of-type(even),table.stripes-hover tr:hover{background:#f8f8f7}
270
271
  th.halign-left,td.halign-left{text-align:left}
271
272
  th.halign-right,td.halign-right{text-align:right}
@@ -375,7 +376,7 @@ a span.icon>.fa{cursor:inherit}
375
376
  .admonitionblock td.icon .icon-warning::before{content:"\f071";color:#bf6900}
376
377
  .admonitionblock td.icon .icon-caution::before{content:"\f06d";color:#bf3400}
377
378
  .admonitionblock td.icon .icon-important::before{content:"\f06a";color:#bf0000}
378
- .conum[data-value]{display:inline-block;color:#fff!important;background:rgba(0,0,0,.8);-webkit-border-radius:100px;border-radius:100px;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}
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}
379
380
  .conum[data-value] *{color:#fff!important}
380
381
  .conum[data-value]+b{display:none}
381
382
  .conum[data-value]::after{content:attr(data-value)}
@@ -402,6 +403,7 @@ thead{display:table-header-group}
402
403
  svg{max-width:100%}
403
404
  p,blockquote,dt,td.content{font-size:1em;orphans:3;widows:3}
404
405
  h2,h3,#toctitle,.sidebarblock>.content>.title{page-break-after:avoid}
406
+ #header,#content,#footnotes,#footer{max-width:none}
405
407
  #toc,.sidebarblock,.exampleblock>.content{background:none!important}
406
408
  #toc{border-bottom:1px solid #dddddf!important;padding-bottom:0!important}
407
409
  body.book #header{text-align:center}
@@ -148,7 +148,7 @@ module Asciidoctor
148
148
  # Compliance value: 'drop-line'
149
149
  define :attribute_missing, 'skip'
150
150
 
151
- # AsciiDoc drops lines that contain an attribute unassignemnt.
151
+ # AsciiDoc drops lines that contain an attribute unassignment.
152
152
  # This behavior may need to be tuned depending on the circumstances.
153
153
  # Compliance value: 'drop-line'
154
154
  define :attribute_undefined, 'drop-line'
@@ -296,7 +296,7 @@ module Asciidoctor
296
296
  DELIMITED_BLOCK_TAILS = {}.tap {|accum| DELIMITED_BLOCKS.each_key {|k| accum[k] = k[k.length - 1] if k.length == 4 } }
297
297
 
298
298
  # NOTE the 'figure' key as a string is historical and used by image blocks
299
- CAPTION_ATTR_NAMES = { example: 'example-caption', 'figure' => 'figure-caption', listing: 'listing-caption', table: 'table-caption' }
299
+ CAPTION_ATTRIBUTE_NAMES = { example: 'example-caption', 'figure' => 'figure-caption', listing: 'listing-caption', table: 'table-caption' }
300
300
 
301
301
  LAYOUT_BREAK_CHARS = {
302
302
  '\'' => :thematic_break,
@@ -357,9 +357,35 @@ module Asciidoctor
357
357
 
358
358
  FONT_AWESOME_VERSION = '4.7.0'
359
359
 
360
- HIGHLIGHT_JS_VERSION = '9.15.6'
361
-
362
- MATHJAX_VERSION = '2.7.5'
360
+ HIGHLIGHT_JS_VERSION = '9.18.3'
361
+
362
+ MATHJAX_VERSION = '2.7.9'
363
+
364
+ DEFAULT_ATTRIBUTES = {
365
+ 'appendix-caption' => 'Appendix',
366
+ 'appendix-refsig' => 'Appendix',
367
+ 'caution-caption' => 'Caution',
368
+ 'chapter-refsig' => 'Chapter',
369
+ #'encoding' => 'UTF-8',
370
+ 'example-caption' => 'Example',
371
+ 'figure-caption' => 'Figure',
372
+ 'important-caption' => 'Important',
373
+ 'last-update-label' => 'Last updated',
374
+ #'listing-caption' => 'Listing',
375
+ 'note-caption' => 'Note',
376
+ 'part-refsig' => 'Part',
377
+ #'preface-title' => 'Preface',
378
+ 'prewrap' => '',
379
+ 'sectids' => '',
380
+ 'section-refsig' => 'Section',
381
+ 'table-caption' => 'Table',
382
+ 'tip-caption' => 'Tip',
383
+ 'toc-placement' => 'auto',
384
+ 'toc-title' => 'Table of Contents',
385
+ 'untitled-label' => 'Untitled',
386
+ 'version-label' => 'Version',
387
+ 'warning-caption' => 'Warning',
388
+ }
363
389
 
364
390
  # attributes which be changed throughout the flow of the document (e.g., sectnums)
365
391
  FLEXIBLE_ATTRIBUTES = ['sectnums']
@@ -511,8 +537,8 @@ module Asciidoctor
511
537
  end unless RUBY_ENGINE == 'opal'
512
538
 
513
539
  unless RUBY_ENGINE == 'opal'
514
- autoload :SyntaxHighlighter, %(#{LIB_DIR}/asciidoctor/syntax_highlighter)
515
- autoload :Timings, %(#{LIB_DIR}/asciidoctor/timings)
540
+ autoload :SyntaxHighlighter, %(#{__dir__}/asciidoctor/syntax_highlighter)
541
+ autoload :Timings, %(#{__dir__}/asciidoctor/timings)
516
542
  end
517
543
  end
518
544
 
@@ -141,6 +141,11 @@ class AbstractBlock < AbstractNode
141
141
  (Integer @numeral) rescue @numeral
142
142
  end
143
143
 
144
+ # Deprecated: Legacy property to set the numeral of this section by coercing the value to a String.
145
+ def number= val
146
+ @numeral = val.to_s
147
+ end
148
+
144
149
  # Public: Walk the document tree and find all block-level nodes that match the specified selector (context, style, id,
145
150
  # role, and/or custom filter).
146
151
  #
@@ -338,17 +343,17 @@ class AbstractBlock < AbstractNode
338
343
  if (val = reftext) && !val.empty?
339
344
  val
340
345
  # NOTE xrefstyle only applies to blocks with a title and a caption or number
341
- elsif xrefstyle && @title && @caption
346
+ elsif xrefstyle && @title && !@caption.nil_or_empty?
342
347
  case xrefstyle
343
348
  when 'full'
344
349
  quoted_title = sub_placeholder (sub_quotes @document.compat_mode ? %q(``%s'') : '"`%s`"'), title
345
- if @numeral && (caption_attr_name = CAPTION_ATTR_NAMES[@context]) && (prefix = @document.attributes[caption_attr_name])
350
+ if @numeral && (caption_attr_name = CAPTION_ATTRIBUTE_NAMES[@context]) && (prefix = @document.attributes[caption_attr_name])
346
351
  %(#{prefix} #{@numeral}, #{quoted_title})
347
352
  else
348
353
  %(#{@caption.chomp '. '}, #{quoted_title})
349
354
  end
350
355
  when 'short'
351
- if @numeral && (caption_attr_name = CAPTION_ATTR_NAMES[@context]) && (prefix = @document.attributes[caption_attr_name])
356
+ if @numeral && (caption_attr_name = CAPTION_ATTRIBUTE_NAMES[@context]) && (prefix = @document.attributes[caption_attr_name])
352
357
  %(#{prefix} #{@numeral})
353
358
  else
354
359
  @caption.chomp '. '
@@ -380,7 +385,7 @@ class AbstractBlock < AbstractNode
380
385
  # Returns nothing.
381
386
  def assign_caption value, caption_context = @context
382
387
  unless @caption || !@title || (@caption = value || @document.attributes['caption'])
383
- if (attr_name = CAPTION_ATTR_NAMES[caption_context]) && (prefix = @document.attributes[attr_name])
388
+ if (attr_name = CAPTION_ATTRIBUTE_NAMES[caption_context]) && (prefix = @document.attributes[attr_name])
384
389
  @caption = %(#{prefix} #{@numeral = @document.increment_and_store_counter %(#{caption_context}-number), self}. )
385
390
  nil
386
391
  end
@@ -65,7 +65,7 @@ class AbstractNode
65
65
  #
66
66
  # parent - The Block to set as the parent of this Block
67
67
  #
68
- # Returns the new parent Block associated with this Block
68
+ # Returns the value of the parent argument
69
69
  def parent= parent
70
70
  @parent, @document = parent, parent.document
71
71
  end
@@ -216,6 +216,15 @@ class AbstractNode
216
216
  (val = @attributes['role']) ? (%( #{val} ).include? %( #{name} )) : false
217
217
  end
218
218
 
219
+ # Public: Sets the value of the role attribute on this ndoe.
220
+ #
221
+ # names - A single role name, a space-separated String of role names, or an Array of role names
222
+ #
223
+ # Returns the value of the names argument
224
+ def role= names
225
+ @attributes['role'] = (::Array === names) ? (names.join ' ') : names
226
+ end
227
+
219
228
  # Public: Adds the given role directly to this node.
220
229
  #
221
230
  # Returns a [Boolean] indicating whether the role was added.
@@ -514,6 +523,7 @@ class AbstractNode
514
523
  # * :normalize a Boolean that indicates whether the data should be normalized (default: false)
515
524
  # * :start the String relative base path to use when resolving the target (default: nil)
516
525
  # * :warn_on_failure a Boolean that indicates whether warnings are issued if the target cannot be read (default: true)
526
+ # * :warn_if_empty a Boolean that indicates whether a warning is issued if contents of target is empty (default: false)
517
527
  # Returns the contents of the resolved target or nil if the resolved target cannot be read
518
528
  # --
519
529
  # TODO refactor other methods in this class to use this method were possible (repurposing if necessary)
@@ -525,22 +535,22 @@ class AbstractNode
525
535
  Helpers.require_library 'open-uri/cached', 'open-uri-cached' if doc.attr? 'cache-uri'
526
536
  begin
527
537
  if opts[:normalize]
528
- (Helpers.prepare_source_string ::OpenURI.open_uri(target, URI_READ_MODE) {|f| f.read }).join LF
538
+ contents = (Helpers.prepare_source_string ::OpenURI.open_uri(target, URI_READ_MODE) {|f| f.read }).join LF
529
539
  else
530
- ::OpenURI.open_uri(target, URI_READ_MODE) {|f| f.read }
540
+ contents = ::OpenURI.open_uri(target, URI_READ_MODE) {|f| f.read }
531
541
  end
532
542
  rescue
533
543
  logger.warn %(could not retrieve contents of #{opts[:label] || 'asset'} at URI: #{target}) if opts.fetch :warn_on_failure, true
534
- return
535
544
  end
536
545
  else
537
546
  logger.warn %(cannot retrieve contents of #{opts[:label] || 'asset'} at URI: #{target} (allow-uri-read attribute not enabled)) if opts.fetch :warn_on_failure, true
538
- return
539
547
  end
540
548
  else
541
549
  target = normalize_system_path target, opts[:start], nil, target_name: (opts[:label] || 'asset')
542
- read_asset target, normalize: opts[:normalize], warn_on_failure: (opts.fetch :warn_on_failure, true), label: opts[:label]
550
+ contents = read_asset target, normalize: opts[:normalize], warn_on_failure: (opts.fetch :warn_on_failure, true), label: opts[:label]
543
551
  end
552
+ logger.warn %(contents of #{opts[:label] || 'asset'} is empty: #{target}) if contents && opts[:warn_if_empty] && contents.empty?
553
+ contents
544
554
  end
545
555
 
546
556
  # Deprecated: Check whether the specified String is a URI by