asciidoctor 1.5.7.1 → 1.5.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (94) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.adoc +95 -5
  3. data/Gemfile +23 -13
  4. data/README-de.adoc +482 -0
  5. data/README-fr.adoc +128 -119
  6. data/README-jp.adoc +2 -3
  7. data/README-zh_CN.adoc +2 -3
  8. data/README.adoc +131 -106
  9. data/asciidoctor.gemspec +9 -7
  10. data/data/locale/attributes-ar.adoc +1 -1
  11. data/data/locale/attributes-bg.adoc +1 -1
  12. data/data/locale/attributes-ca.adoc +1 -1
  13. data/data/locale/attributes-cs.adoc +1 -1
  14. data/data/locale/attributes-da.adoc +1 -1
  15. data/data/locale/attributes-de.adoc +1 -1
  16. data/data/locale/attributes-en.adoc +1 -1
  17. data/data/locale/attributes-es.adoc +1 -1
  18. data/data/locale/attributes-fa.adoc +1 -1
  19. data/data/locale/attributes-fi.adoc +1 -1
  20. data/data/locale/attributes-fr.adoc +1 -1
  21. data/data/locale/attributes-hu.adoc +1 -1
  22. data/data/locale/attributes-id.adoc +1 -1
  23. data/data/locale/attributes-it.adoc +1 -1
  24. data/data/locale/attributes-ja.adoc +1 -1
  25. data/data/locale/attributes-kr.adoc +1 -1
  26. data/data/locale/attributes-nb.adoc +1 -1
  27. data/data/locale/attributes-nl.adoc +1 -1
  28. data/data/locale/attributes-nn.adoc +1 -1
  29. data/data/locale/attributes-pl.adoc +1 -1
  30. data/data/locale/attributes-pt.adoc +1 -1
  31. data/data/locale/attributes-pt_BR.adoc +1 -1
  32. data/data/locale/attributes-ro.adoc +1 -1
  33. data/data/locale/attributes-ru.adoc +1 -1
  34. data/data/locale/attributes-sr.adoc +5 -4
  35. data/data/locale/attributes-sr_Latn.adoc +5 -4
  36. data/data/locale/attributes-sv.adoc +23 -0
  37. data/data/locale/attributes-tr.adoc +1 -1
  38. data/data/locale/attributes-uk.adoc +1 -1
  39. data/data/locale/attributes-zh_CN.adoc +1 -1
  40. data/data/locale/attributes-zh_TW.adoc +1 -1
  41. data/data/stylesheets/asciidoctor-default.css +23 -23
  42. data/lib/asciidoctor.rb +110 -104
  43. data/lib/asciidoctor/abstract_block.rb +55 -32
  44. data/lib/asciidoctor/abstract_node.rb +32 -17
  45. data/lib/asciidoctor/attribute_list.rb +8 -7
  46. data/lib/asciidoctor/block.rb +5 -7
  47. data/lib/asciidoctor/cli/options.rb +5 -9
  48. data/lib/asciidoctor/converter.rb +2 -2
  49. data/lib/asciidoctor/converter/docbook45.rb +7 -20
  50. data/lib/asciidoctor/converter/docbook5.rb +36 -37
  51. data/lib/asciidoctor/converter/factory.rb +10 -8
  52. data/lib/asciidoctor/converter/html5.rb +90 -65
  53. data/lib/asciidoctor/converter/manpage.rb +72 -62
  54. data/lib/asciidoctor/converter/template.rb +8 -6
  55. data/lib/asciidoctor/core_ext/1.8.7/concurrent/hash.rb +5 -0
  56. data/lib/asciidoctor/document.rb +62 -10
  57. data/lib/asciidoctor/extensions.rb +74 -16
  58. data/lib/asciidoctor/helpers.rb +11 -14
  59. data/lib/asciidoctor/list.rb +2 -2
  60. data/lib/asciidoctor/parser.rb +223 -195
  61. data/lib/asciidoctor/path_resolver.rb +15 -7
  62. data/lib/asciidoctor/reader.rb +65 -36
  63. data/lib/asciidoctor/section.rb +6 -4
  64. data/lib/asciidoctor/substitutors.rb +170 -149
  65. data/lib/asciidoctor/table.rb +16 -8
  66. data/lib/asciidoctor/version.rb +1 -1
  67. data/man/asciidoctor.1 +6 -5
  68. data/man/asciidoctor.adoc +3 -2
  69. data/test/api_test.rb +236 -0
  70. data/test/attribute_list_test.rb +242 -0
  71. data/test/attributes_test.rb +65 -52
  72. data/test/blocks_test.rb +408 -260
  73. data/test/converter_test.rb +7 -7
  74. data/test/document_test.rb +60 -54
  75. data/test/extensions_test.rb +218 -32
  76. data/test/fixtures/doctime-localtime.adoc +2 -0
  77. data/test/fixtures/section-a.adoc +4 -0
  78. data/test/fixtures/subs.adoc +0 -1
  79. data/test/invoker_test.rb +56 -18
  80. data/test/links_test.rb +105 -81
  81. data/test/lists_test.rb +636 -265
  82. data/test/logger_test.rb +1 -1
  83. data/test/manpage_test.rb +140 -3
  84. data/test/paragraphs_test.rb +42 -42
  85. data/test/parser_test.rb +63 -183
  86. data/test/paths_test.rb +21 -4
  87. data/test/preamble_test.rb +9 -9
  88. data/test/reader_test.rb +78 -28
  89. data/test/sections_test.rb +273 -151
  90. data/test/substitutions_test.rb +53 -19
  91. data/test/tables_test.rb +286 -163
  92. data/test/test_helper.rb +4 -3
  93. data/test/text_test.rb +65 -65
  94. metadata +16 -21
@@ -19,6 +19,7 @@ require 'tmpdir'
19
19
 
20
20
  autoload :FileUtils, 'fileutils'
21
21
  autoload :Pathname, 'pathname'
22
+ autoload :Open3, 'open3'
22
23
 
23
24
  RE_XMLNS_ATTRIBUTE = / xmlns="[^"]+"/
24
25
  RE_DOCTYPE = /\s*<!DOCTYPE (.*)/
@@ -193,7 +194,7 @@ class Minitest::Test
193
194
  doc.blocks.first
194
195
  end
195
196
 
196
- def render_string(src, opts = {})
197
+ def convert_string(src, opts = {})
197
198
  keep_namespaces = opts.delete(:keep_namespaces)
198
199
  if keep_namespaces
199
200
  document_from_string(src, opts).convert
@@ -205,12 +206,12 @@ class Minitest::Test
205
206
  end
206
207
  end
207
208
 
208
- def render_embedded_string(src, opts = {})
209
+ def convert_string_to_embedded(src, opts = {})
209
210
  opts[:header_footer] = false
210
211
  document_from_string(src, opts).convert
211
212
  end
212
213
 
213
- def render_inline_string(src, opts = {})
214
+ def convert_inline_string(src, opts = {})
214
215
  opts[:doctype] = :inline
215
216
  document_from_string(src, opts).convert
216
217
  end
@@ -53,28 +53,28 @@ include::fixtures/encoding.asciidoc[tags=romé]
53
53
 
54
54
  test 'escaped text markup' do
55
55
  assert_match(/All your &lt;em&gt;inline&lt;\/em&gt; markup belongs to &lt;strong&gt;us&lt;\/strong&gt;!/,
56
- render_string('All your <em>inline</em> markup belongs to <strong>us</strong>!'))
56
+ convert_string('All your <em>inline</em> markup belongs to <strong>us</strong>!'))
57
57
  end
58
58
 
59
59
  test "line breaks" do
60
- assert_xpath "//br", render_string("Well this is +\njust fine and dandy, isn't it?"), 1
60
+ assert_xpath "//br", convert_string("Well this is +\njust fine and dandy, isn't it?"), 1
61
61
  end
62
62
 
63
63
  test 'single- and double-quoted text' do
64
- rendered = render_embedded_string(%q(``Where?,'' she said, flipping through her copy of `The New Yorker.'), :attributes => {'compat-mode' => ''})
65
- assert_match(/&#8220;Where\?,&#8221;/, rendered)
66
- assert_match(/&#8216;The New Yorker.&#8217;/, rendered)
64
+ output = convert_string_to_embedded(%q(``Where?,'' she said, flipping through her copy of `The New Yorker.'), :attributes => {'compat-mode' => ''})
65
+ assert_match(/&#8220;Where\?,&#8221;/, output)
66
+ assert_match(/&#8216;The New Yorker.&#8217;/, output)
67
67
 
68
- rendered = render_embedded_string(%q("`Where?,`" she said, flipping through her copy of '`The New Yorker.`'))
69
- assert_match(/&#8220;Where\?,&#8221;/, rendered)
70
- assert_match(/&#8216;The New Yorker.&#8217;/, rendered)
68
+ output = convert_string_to_embedded(%q("`Where?,`" she said, flipping through her copy of '`The New Yorker.`'))
69
+ assert_match(/&#8220;Where\?,&#8221;/, output)
70
+ assert_match(/&#8216;The New Yorker.&#8217;/, output)
71
71
  end
72
72
 
73
73
  test 'multiple double-quoted text on a single line' do
74
74
  assert_equal '&#8220;Our business is constantly changing&#8221; or &#8220;We need faster time to market.&#8221;',
75
- render_embedded_string(%q(``Our business is constantly changing'' or ``We need faster time to market.''), :doctype => :inline, :attributes => {'compat-mode' => ''})
75
+ convert_inline_string(%q(``Our business is constantly changing'' or ``We need faster time to market.''), :attributes => {'compat-mode' => ''})
76
76
  assert_equal '&#8220;Our business is constantly changing&#8221; or &#8220;We need faster time to market.&#8221;',
77
- render_embedded_string(%q("`Our business is constantly changing`" or "`We need faster time to market.`"), :doctype => :inline)
77
+ convert_inline_string(%q("`Our business is constantly changing`" or "`We need faster time to market.`"))
78
78
  end
79
79
 
80
80
  test 'horizontal rule' do
@@ -85,7 +85,7 @@ This line is separated by a horizontal rule...
85
85
 
86
86
  ...from this line.
87
87
  EOS
88
- output = render_embedded_string input
88
+ output = convert_string_to_embedded input
89
89
  assert_xpath "//hr", output, 1
90
90
  assert_xpath "/*[@class='paragraph']", output, 2
91
91
  assert_xpath "(/*[@class='paragraph'])[1]/following-sibling::hr", output, 1
@@ -118,7 +118,7 @@ This line is separated by a horizontal rule...
118
118
 
119
119
  ...from this line.
120
120
  EOS
121
- output = render_embedded_string input
121
+ output = convert_string_to_embedded input
122
122
  assert_xpath "//hr", output, 1
123
123
  assert_xpath "/*[@class='paragraph']", output, 2
124
124
  assert_xpath "(/*[@class='paragraph'])[1]/following-sibling::hr", output, 1
@@ -151,7 +151,7 @@ This line is separated by something that is not a horizontal rule...
151
151
 
152
152
  ...from this line.
153
153
  EOS
154
- output = render_embedded_string input
154
+ output = convert_string_to_embedded input
155
155
  assert_xpath '//hr', output, 0
156
156
  end
157
157
  end
@@ -176,134 +176,134 @@ This line is separated by something that is not a horizontal rule...
176
176
 
177
177
  ...from this line.
178
178
  EOS
179
- output = render_embedded_string input
179
+ output = convert_string_to_embedded input
180
180
  assert_xpath '//hr', output, 0
181
181
  end
182
182
  end
183
183
  end
184
184
 
185
185
  test "emphasized text using underscore characters" do
186
- assert_xpath "//em", render_string("An _emphatic_ no")
186
+ assert_xpath "//em", convert_string("An _emphatic_ no")
187
187
  end
188
188
 
189
189
  test 'emphasized text with single quote using apostrophe characters' do
190
190
  rsquo = decode_char 8217
191
- assert_xpath %(//em[text()="Johnny#{rsquo}s"]), render_string(%q(It's 'Johnny's' phone), :attributes => {'compat-mode' => ''})
192
- assert_xpath %(//p[text()="It#{rsquo}s 'Johnny#{rsquo}s' phone"]), render_string(%q(It's 'Johnny's' phone))
191
+ assert_xpath %(//em[text()="Johnny#{rsquo}s"]), convert_string(%q(It's 'Johnny's' phone), :attributes => {'compat-mode' => ''})
192
+ assert_xpath %(//p[text()="It#{rsquo}s 'Johnny#{rsquo}s' phone"]), convert_string(%q(It's 'Johnny's' phone))
193
193
  end
194
194
 
195
195
  test 'emphasized text with escaped single quote using apostrophe characters' do
196
- assert_xpath %(//em[text()="Johnny's"]), render_string(%q(It's 'Johnny\\'s' phone), :attributes => {'compat-mode' => ''})
197
- assert_xpath %(//p[text()="It's 'Johnny's' phone"]), render_string(%q(It\\'s 'Johnny\\'s' phone))
196
+ assert_xpath %(//em[text()="Johnny's"]), convert_string(%q(It's 'Johnny\\'s' phone), :attributes => {'compat-mode' => ''})
197
+ assert_xpath %(//p[text()="It's 'Johnny's' phone"]), convert_string(%q(It\\'s 'Johnny\\'s' phone))
198
198
  end
199
199
 
200
200
  test "escaped single quote is restored as single quote" do
201
- assert_xpath "//p[contains(text(), \"Let's do it!\")]", render_string("Let\\'s do it!")
201
+ assert_xpath "//p[contains(text(), \"Let's do it!\")]", convert_string("Let\\'s do it!")
202
202
  end
203
203
 
204
204
  test 'unescape escaped single quote emphasis in compat mode only' do
205
- assert_xpath %(//p[text()="A 'single quoted string' example"]), render_embedded_string(%(A \\'single quoted string' example), :attributes => {'compat-mode' => ''})
206
- assert_xpath %(//p[text()="'single quoted string'"]), render_embedded_string(%(\\'single quoted string'), :attributes => {'compat-mode' => ''})
205
+ assert_xpath %(//p[text()="A 'single quoted string' example"]), convert_string_to_embedded(%(A \\'single quoted string' example), :attributes => {'compat-mode' => ''})
206
+ assert_xpath %(//p[text()="'single quoted string'"]), convert_string_to_embedded(%(\\'single quoted string'), :attributes => {'compat-mode' => ''})
207
207
 
208
- assert_xpath %(//p[text()="A \\'single quoted string' example"]), render_embedded_string(%(A \\'single quoted string' example))
209
- assert_xpath %(//p[text()="\\'single quoted string'"]), render_embedded_string(%(\\'single quoted string'))
208
+ assert_xpath %(//p[text()="A \\'single quoted string' example"]), convert_string_to_embedded(%(A \\'single quoted string' example))
209
+ assert_xpath %(//p[text()="\\'single quoted string'"]), convert_string_to_embedded(%(\\'single quoted string'))
210
210
  end
211
211
 
212
212
  test "emphasized text at end of line" do
213
- assert_xpath "//em", render_string("This library is _awesome_")
213
+ assert_xpath "//em", convert_string("This library is _awesome_")
214
214
  end
215
215
 
216
216
  test "emphasized text at beginning of line" do
217
- assert_xpath "//em", render_string("_drop_ it")
217
+ assert_xpath "//em", convert_string("_drop_ it")
218
218
  end
219
219
 
220
220
  test "emphasized text across line" do
221
- assert_xpath "//em", render_string("_check it_")
221
+ assert_xpath "//em", convert_string("_check it_")
222
222
  end
223
223
 
224
224
  test "unquoted text" do
225
- refute_match(/#/, render_string("An #unquoted# word"))
225
+ refute_match(/#/, convert_string("An #unquoted# word"))
226
226
  end
227
227
 
228
228
  test 'backticks and straight quotes in text' do
229
229
  backslash = '\\'
230
- assert_equal %q(run <code>foo</code> <em>dog</em>), render_embedded_string(%q(run `foo` 'dog'), :doctype => :inline, :attributes => {'compat-mode' => ''})
231
- assert_equal %q(run <code>foo</code> 'dog'), render_embedded_string(%q(run `foo` 'dog'), :doctype => :inline)
232
- assert_equal %q(run `foo` 'dog'), render_embedded_string(%(run #{backslash}`foo` 'dog'), :doctype => :inline)
233
- assert_equal %q(run &#8216;foo` 'dog&#8217;), render_embedded_string(%q(run '`foo` 'dog`'), :doctype => :inline)
234
- assert_equal %q(run '`foo` 'dog`'), render_embedded_string(%(run #{backslash}'`foo` 'dog#{backslash}`'), :doctype => :inline)
230
+ assert_equal %q(run <code>foo</code> <em>dog</em>), convert_inline_string(%q(run `foo` 'dog'), :attributes => {'compat-mode' => ''})
231
+ assert_equal %q(run <code>foo</code> 'dog'), convert_inline_string(%q(run `foo` 'dog'))
232
+ assert_equal %q(run `foo` 'dog'), convert_inline_string(%(run #{backslash}`foo` 'dog'))
233
+ assert_equal %q(run &#8216;foo` 'dog&#8217;), convert_inline_string(%q(run '`foo` 'dog`'))
234
+ assert_equal %q(run '`foo` 'dog`'), convert_inline_string(%(run #{backslash}'`foo` 'dog#{backslash}`'))
235
235
  end
236
236
 
237
237
  test 'plus characters inside single plus passthrough' do
238
- assert_xpath '//p[text()="+"]', render_embedded_string('+++')
239
- assert_xpath '//p[text()="+="]', render_embedded_string('++=+')
238
+ assert_xpath '//p[text()="+"]', convert_string_to_embedded('+++')
239
+ assert_xpath '//p[text()="+="]', convert_string_to_embedded('++=+')
240
240
  end
241
241
 
242
242
  test 'plus passthrough escapes entity reference' do
243
- assert_match(/&amp;#44;/, render_embedded_string('+&#44;+'))
244
- assert_match(/one&amp;#44;two/, render_embedded_string('one++&#44;++two'))
243
+ assert_match(/&amp;#44;/, convert_string_to_embedded('+&#44;+'))
244
+ assert_match(/one&amp;#44;two/, convert_string_to_embedded('one++&#44;++two'))
245
245
  end
246
246
 
247
247
  context "basic styling" do
248
248
  setup do
249
- @rendered = render_string("A *BOLD* word. An _italic_ word. A `mono` word. ^superscript!^ and some ~subscript~.")
249
+ @output = convert_string("A *BOLD* word. An _italic_ word. A `mono` word. ^superscript!^ and some ~subscript~.")
250
250
  end
251
251
 
252
252
  test "strong" do
253
- assert_xpath "//strong", @rendered, 1
253
+ assert_xpath "//strong", @output, 1
254
254
  end
255
255
 
256
256
  test "italic" do
257
- assert_xpath "//em", @rendered, 1
257
+ assert_xpath "//em", @output, 1
258
258
  end
259
259
 
260
260
  test "monospaced" do
261
- assert_xpath "//code", @rendered, 1
261
+ assert_xpath "//code", @output, 1
262
262
  end
263
263
 
264
264
  test "superscript" do
265
- assert_xpath "//sup", @rendered, 1
265
+ assert_xpath "//sup", @output, 1
266
266
  end
267
267
 
268
268
  test "subscript" do
269
- assert_xpath "//sub", @rendered, 1
269
+ assert_xpath "//sub", @output, 1
270
270
  end
271
271
 
272
272
  test "passthrough" do
273
- assert_xpath "//code", render_string("This is +passed through+."), 0
274
- assert_xpath "//code", render_string("This is +passed through and monospaced+.", :attributes => {'compat-mode' => ''}), 1
273
+ assert_xpath "//code", convert_string("This is +passed through+."), 0
274
+ assert_xpath "//code", convert_string("This is +passed through and monospaced+.", :attributes => {'compat-mode' => ''}), 1
275
275
  end
276
276
 
277
277
  test "nested styles" do
278
- rendered = render_string("Winning *big _time_* in the +city *boyeeee*+.", :attributes => {'compat-mode' => ''})
278
+ output = convert_string("Winning *big _time_* in the +city *boyeeee*+.", :attributes => {'compat-mode' => ''})
279
279
 
280
- assert_xpath "//strong/em", rendered
281
- assert_xpath "//code/strong", rendered
280
+ assert_xpath "//strong/em", output
281
+ assert_xpath "//code/strong", output
282
282
 
283
- rendered = render_string("Winning *big _time_* in the `city *boyeeee*`.")
283
+ output = convert_string("Winning *big _time_* in the `city *boyeeee*`.")
284
284
 
285
- assert_xpath "//strong/em", rendered
286
- assert_xpath "//code/strong", rendered
285
+ assert_xpath "//strong/em", output
286
+ assert_xpath "//code/strong", output
287
287
  end
288
288
 
289
289
  test 'unconstrained quotes' do
290
- rendered_chars = render_string('**B**__I__++M++[role]++M++', :attributes => {'compat-mode' => ''})
291
- assert_xpath '//strong', rendered_chars, 1
292
- assert_xpath '//em', rendered_chars, 1
293
- assert_xpath '//code[not(@class)]', rendered_chars, 1
294
- assert_xpath '//code[@class="role"]', rendered_chars, 1
295
-
296
- rendered_chars = render_string('**B**__I__``M``[role]``M``')
297
- assert_xpath '//strong', rendered_chars, 1
298
- assert_xpath '//em', rendered_chars, 1
299
- assert_xpath '//code[not(@class)]', rendered_chars, 1
300
- assert_xpath '//code[@class="role"]', rendered_chars, 1
290
+ output = convert_string('**B**__I__++M++[role]++M++', :attributes => {'compat-mode' => ''})
291
+ assert_xpath '//strong', output, 1
292
+ assert_xpath '//em', output, 1
293
+ assert_xpath '//code[not(@class)]', output, 1
294
+ assert_xpath '//code[@class="role"]', output, 1
295
+
296
+ output = convert_string('**B**__I__``M``[role]``M``')
297
+ assert_xpath '//strong', output, 1
298
+ assert_xpath '//em', output, 1
299
+ assert_xpath '//code[not(@class)]', output, 1
300
+ assert_xpath '//code[@class="role"]', output, 1
301
301
  end
302
302
  end
303
303
 
304
304
  test 'should format Asian characters as words' do
305
- assert_xpath '//strong', (render_embedded_string 'bold *要* bold')
306
- assert_xpath '//strong', (render_embedded_string 'bold *素* bold')
307
- assert_xpath '//strong', (render_embedded_string 'bold *要素* bold')
305
+ assert_xpath '//strong', (convert_string_to_embedded 'bold *要* bold')
306
+ assert_xpath '//strong', (convert_string_to_embedded 'bold *素* bold')
307
+ assert_xpath '//strong', (convert_string_to_embedded 'bold *要素* bold')
308
308
  end
309
309
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: asciidoctor
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.7.1
4
+ version: 1.5.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dan Allen
@@ -13,7 +13,7 @@ authors:
13
13
  autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
- date: 2018-05-10 00:00:00.000000000 Z
16
+ date: 2018-10-28 00:00:00.000000000 Z
17
17
  dependencies:
18
18
  - !ruby/object:Gem::Dependency
19
19
  name: asciimath
@@ -91,14 +91,14 @@ dependencies:
91
91
  requirements:
92
92
  - - "~>"
93
93
  - !ruby/object:Gem::Version
94
- version: 1.8.0
94
+ version: 1.8.5
95
95
  type: :development
96
96
  prerelease: false
97
97
  version_requirements: !ruby/object:Gem::Requirement
98
98
  requirements:
99
99
  - - "~>"
100
100
  - !ruby/object:Gem::Version
101
- version: 1.8.0
101
+ version: 1.8.5
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: rake
104
104
  requirement: !ruby/object:Gem::Requirement
@@ -133,28 +133,14 @@ dependencies:
133
133
  requirements:
134
134
  - - "~>"
135
135
  - !ruby/object:Gem::Version
136
- version: 3.0.0
136
+ version: 4.0.0
137
137
  type: :development
138
138
  prerelease: false
139
139
  version_requirements: !ruby/object:Gem::Requirement
140
140
  requirements:
141
141
  - - "~>"
142
142
  - !ruby/object:Gem::Version
143
- version: 3.0.0
144
- - !ruby/object:Gem::Dependency
145
- name: thread_safe
146
- requirement: !ruby/object:Gem::Requirement
147
- requirements:
148
- - - "~>"
149
- - !ruby/object:Gem::Version
150
- version: 0.3.0
151
- type: :development
152
- prerelease: false
153
- version_requirements: !ruby/object:Gem::Requirement
154
- requirements:
155
- - - "~>"
156
- - !ruby/object:Gem::Version
157
- version: 0.3.0
143
+ version: 4.0.0
158
144
  - !ruby/object:Gem::Dependency
159
145
  name: tilt
160
146
  requirement: !ruby/object:Gem::Requirement
@@ -201,6 +187,7 @@ files:
201
187
  - CONTRIBUTING.adoc
202
188
  - Gemfile
203
189
  - LICENSE
190
+ - README-de.adoc
204
191
  - README-fr.adoc
205
192
  - README-jp.adoc
206
193
  - README-zh_CN.adoc
@@ -235,6 +222,7 @@ files:
235
222
  - data/locale/attributes-ru.adoc
236
223
  - data/locale/attributes-sr.adoc
237
224
  - data/locale/attributes-sr_Latn.adoc
225
+ - data/locale/attributes-sv.adoc
238
226
  - data/locale/attributes-tr.adoc
239
227
  - data/locale/attributes-uk.adoc
240
228
  - data/locale/attributes-zh_CN.adoc
@@ -267,6 +255,7 @@ files:
267
255
  - lib/asciidoctor/converter/template.rb
268
256
  - lib/asciidoctor/core_ext.rb
269
257
  - lib/asciidoctor/core_ext/1.8.7/base64/strict_encode64.rb
258
+ - lib/asciidoctor/core_ext/1.8.7/concurrent/hash.rb
270
259
  - lib/asciidoctor/core_ext/1.8.7/hash/key.rb
271
260
  - lib/asciidoctor/core_ext/1.8.7/io/binread.rb
272
261
  - lib/asciidoctor/core_ext/1.8.7/io/write.rb
@@ -295,6 +284,7 @@ files:
295
284
  - man/asciidoctor.1
296
285
  - man/asciidoctor.adoc
297
286
  - test/api_test.rb
287
+ - test/attribute_list_test.rb
298
288
  - test/attributes_test.rb
299
289
  - test/blocks_test.rb
300
290
  - test/converter_test.rb
@@ -323,6 +313,7 @@ files:
323
313
  - test/fixtures/docinfo-footer.xml
324
314
  - test/fixtures/docinfo.html
325
315
  - test/fixtures/docinfo.xml
316
+ - test/fixtures/doctime-localtime.adoc
326
317
  - test/fixtures/dot.gif
327
318
  - test/fixtures/encoding.asciidoc
328
319
  - test/fixtures/file-with-missing-include.adoc
@@ -340,6 +331,7 @@ files:
340
331
  - test/fixtures/parent-include-restricted.adoc
341
332
  - test/fixtures/parent-include.adoc
342
333
  - test/fixtures/sample.asciidoc
334
+ - test/fixtures/section-a.adoc
343
335
  - test/fixtures/stylesheets/custom.css
344
336
  - test/fixtures/subdir/index.adoc
345
337
  - test/fixtures/subdir/inner-include.adoc
@@ -392,7 +384,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
392
384
  version: '0'
393
385
  requirements: []
394
386
  rubyforge_project:
395
- rubygems_version: 2.7.6
387
+ rubygems_version: 2.7.7
396
388
  signing_key:
397
389
  specification_version: 4
398
390
  summary: An implementation of the AsciiDoc text processor and publishing toolchain
@@ -404,6 +396,7 @@ test_files:
404
396
  - features/text_formatting.feature
405
397
  - features/xref.feature
406
398
  - test/api_test.rb
399
+ - test/attribute_list_test.rb
407
400
  - test/attributes_test.rb
408
401
  - test/blocks_test.rb
409
402
  - test/converter_test.rb
@@ -432,6 +425,7 @@ test_files:
432
425
  - test/fixtures/docinfo-footer.xml
433
426
  - test/fixtures/docinfo.html
434
427
  - test/fixtures/docinfo.xml
428
+ - test/fixtures/doctime-localtime.adoc
435
429
  - test/fixtures/dot.gif
436
430
  - test/fixtures/encoding.asciidoc
437
431
  - test/fixtures/file-with-missing-include.adoc
@@ -449,6 +443,7 @@ test_files:
449
443
  - test/fixtures/parent-include-restricted.adoc
450
444
  - test/fixtures/parent-include.adoc
451
445
  - test/fixtures/sample.asciidoc
446
+ - test/fixtures/section-a.adoc
452
447
  - test/fixtures/stylesheets/custom.css
453
448
  - test/fixtures/subdir/index.adoc
454
449
  - test/fixtures/subdir/inner-include.adoc