asciidoctor 2.0.9 → 2.0.14

Sign up to get free protection for your applications and to get access to all the features.
Files changed (75) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.adoc +193 -16
  3. data/LICENSE +1 -1
  4. data/README-de.adoc +12 -13
  5. data/README-fr.adoc +11 -15
  6. data/README-jp.adoc +242 -185
  7. data/README-zh_CN.adoc +17 -18
  8. data/README.adoc +133 -131
  9. data/asciidoctor.gemspec +6 -6
  10. data/data/locale/attributes-ar.adoc +4 -3
  11. data/data/locale/attributes-be.adoc +23 -0
  12. data/data/locale/attributes-bg.adoc +4 -3
  13. data/data/locale/attributes-ca.adoc +6 -5
  14. data/data/locale/attributes-cs.adoc +4 -3
  15. data/data/locale/attributes-da.adoc +6 -5
  16. data/data/locale/attributes-de.adoc +4 -4
  17. data/data/locale/attributes-en.adoc +4 -4
  18. data/data/locale/attributes-es.adoc +6 -5
  19. data/data/locale/attributes-fa.adoc +4 -3
  20. data/data/locale/attributes-fi.adoc +4 -3
  21. data/data/locale/attributes-fr.adoc +6 -5
  22. data/data/locale/attributes-hu.adoc +4 -3
  23. data/data/locale/attributes-id.adoc +4 -3
  24. data/data/locale/attributes-it.adoc +6 -5
  25. data/data/locale/attributes-ja.adoc +4 -3
  26. data/data/locale/{attributes-kr.adoc → attributes-ko.adoc} +4 -3
  27. data/data/locale/attributes-nb.adoc +4 -3
  28. data/data/locale/attributes-nl.adoc +6 -5
  29. data/data/locale/attributes-nn.adoc +4 -3
  30. data/data/locale/attributes-pl.adoc +8 -7
  31. data/data/locale/attributes-pt.adoc +6 -5
  32. data/data/locale/attributes-pt_BR.adoc +6 -5
  33. data/data/locale/attributes-ro.adoc +4 -3
  34. data/data/locale/attributes-ru.adoc +6 -5
  35. data/data/locale/attributes-sr.adoc +4 -4
  36. data/data/locale/attributes-sr_Latn.adoc +4 -4
  37. data/data/locale/attributes-sv.adoc +4 -4
  38. data/data/locale/attributes-tr.adoc +4 -3
  39. data/data/locale/attributes-uk.adoc +6 -5
  40. data/data/locale/attributes-zh_CN.adoc +4 -3
  41. data/data/locale/attributes-zh_TW.adoc +4 -3
  42. data/data/reference/syntax.adoc +14 -7
  43. data/data/stylesheets/asciidoctor-default.css +30 -30
  44. data/lib/asciidoctor.rb +40 -14
  45. data/lib/asciidoctor/abstract_block.rb +9 -4
  46. data/lib/asciidoctor/abstract_node.rb +16 -6
  47. data/lib/asciidoctor/attribute_list.rb +63 -71
  48. data/lib/asciidoctor/cli/invoker.rb +2 -0
  49. data/lib/asciidoctor/cli/options.rb +10 -9
  50. data/lib/asciidoctor/convert.rb +167 -162
  51. data/lib/asciidoctor/converter.rb +13 -12
  52. data/lib/asciidoctor/converter/docbook5.rb +5 -9
  53. data/lib/asciidoctor/converter/html5.rb +58 -45
  54. data/lib/asciidoctor/converter/manpage.rb +61 -38
  55. data/lib/asciidoctor/converter/template.rb +3 -0
  56. data/lib/asciidoctor/document.rb +44 -51
  57. data/lib/asciidoctor/extensions.rb +2 -4
  58. data/lib/asciidoctor/helpers.rb +20 -15
  59. data/lib/asciidoctor/load.rb +102 -101
  60. data/lib/asciidoctor/parser.rb +40 -32
  61. data/lib/asciidoctor/path_resolver.rb +14 -12
  62. data/lib/asciidoctor/reader.rb +20 -13
  63. data/lib/asciidoctor/rx.rb +7 -6
  64. data/lib/asciidoctor/substitutors.rb +69 -50
  65. data/lib/asciidoctor/syntax_highlighter.rb +15 -7
  66. data/lib/asciidoctor/syntax_highlighter/coderay.rb +1 -1
  67. data/lib/asciidoctor/syntax_highlighter/highlightjs.rb +12 -4
  68. data/lib/asciidoctor/syntax_highlighter/prettify.rb +7 -4
  69. data/lib/asciidoctor/syntax_highlighter/pygments.rb +6 -7
  70. data/lib/asciidoctor/syntax_highlighter/rouge.rb +33 -19
  71. data/lib/asciidoctor/table.rb +52 -23
  72. data/lib/asciidoctor/version.rb +1 -1
  73. data/man/asciidoctor.1 +8 -8
  74. data/man/asciidoctor.adoc +4 -4
  75. metadata +16 -15
@@ -20,19 +20,25 @@ module SyntaxHighlighter
20
20
  end
21
21
 
22
22
  # Public: Indicates whether this syntax highlighter has docinfo (i.e., markup) to insert into the output document at
23
- # the specified location.
23
+ # the specified location. Should be called by converter after main content has been converted.
24
24
  #
25
25
  # location - The Symbol representing the location slot (:head or :footer).
26
26
  #
27
27
  # Returns a [Boolean] indicating whether the docinfo method should be called for this location.
28
28
  def docinfo? location; end
29
29
 
30
- # Public: Generates docinfo markup to insert in the output document at the specified location.
30
+ # Public: Generates docinfo markup for this syntax highlighter to insert at the specified location in the output document.
31
+ # Should be called by converter after main content has been converted.
31
32
  #
32
33
  # location - The Symbol representing the location slot (:head or :footer).
34
+ # doc - The Document in which this syntax highlighter is being used.
35
+ # opts - A Hash of options that configure the syntax highlighting:
36
+ # :linkcss - A Boolean indicating whether the stylesheet should be linked instead of embedded (optional).
37
+ # :cdn_base_url - The String base URL for assets loaded from the CDN.
38
+ # :self_closing_tag_slash - The String '/' if the converter calling this method emits self-closing tags.
33
39
  #
34
40
  # Return the [String] markup to insert.
35
- def docinfo location
41
+ def docinfo location, doc, opts
36
42
  raise ::NotImplementedError, %(#{SyntaxHighlighter} subclass #{self.class} must implement the ##{__method__} method since #docinfo? returns true)
37
43
  end
38
44
 
@@ -134,7 +140,7 @@ module SyntaxHighlighter
134
140
  # name - The String name of the syntax highlighter to create.
135
141
  # backend - The String name of the backend for which this syntax highlighter is being used (default: 'html5').
136
142
  # opts - A Hash of options providing information about the context in which this syntax highlighter is used:
137
- # :doc - The Document for which this syntax highlighter was created.
143
+ # :document - The Document for which this syntax highlighter was created.
138
144
  #
139
145
  # Returns a [SyntaxHighlighter] instance for the specified name.
140
146
  def create name, backend = 'html5', opts = {}
@@ -230,9 +236,11 @@ module SyntaxHighlighter
230
236
  def format node, lang, opts
231
237
  class_attr_val = opts[:nowrap] ? %(#{@pre_class} highlight nowrap) : %(#{@pre_class} highlight)
232
238
  if (transform = opts[:transform])
233
- pre = { 'class' => class_attr_val }
234
- code = lang ? { 'data-lang' => lang } : {}
235
- transform[pre, code]
239
+ transform[(pre = { 'class' => class_attr_val }), (code = lang ? { 'data-lang' => lang } : {})]
240
+ # NOTE: make sure data-lang is the last attribute on the code tag to remain consistent with 1.5.x
241
+ if (lang = code.delete 'data-lang')
242
+ code['data-lang'] = lang
243
+ end
236
244
  %(<pre#{pre.map {|k, v| %[ #{k}="#{v}"] }.join}><code#{code.map {|k, v| %[ #{k}="#{v}"] }.join}>#{node.content}</code></pre>)
237
245
  else
238
246
  %(<pre class="#{class_attr_val}"><code#{lang ? %[ data-lang="#{lang}"] : ''}>#{node.content}</code></pre>)
@@ -32,7 +32,7 @@ class SyntaxHighlighter::CodeRayAdapter < SyntaxHighlighter::Base
32
32
  end
33
33
 
34
34
  def docinfo? location
35
- @requires_stylesheet && location == :footer
35
+ @requires_stylesheet && location == :head
36
36
  end
37
37
 
38
38
  def docinfo location, doc, opts
@@ -13,14 +13,22 @@ class SyntaxHighlighter::HighlightJsAdapter < SyntaxHighlighter::Base
13
13
  end
14
14
 
15
15
  def docinfo? location
16
- location == :footer
16
+ true
17
17
  end
18
18
 
19
19
  def docinfo location, doc, opts
20
20
  base_url = doc.attr 'highlightjsdir', %(#{opts[:cdn_base_url]}/highlight.js/#{HIGHLIGHT_JS_VERSION})
21
- %(<link rel="stylesheet" href="#{base_url}/styles/#{doc.attr 'highlightjs-theme', 'github'}.min.css"#{opts[:self_closing_tag_slash]}>
22
- <script src="#{base_url}/highlight.min.js"></script>
23
- #{(doc.attr? 'highlightjs-languages') ? ((doc.attr 'highlightjs-languages').split ',').map {|lang| %[<script src="#{base_url}/languages/#{lang.lstrip}.min.js"></script>\n] }.join : ''}<script>hljs.initHighlighting()</script>)
21
+ if location == :head
22
+ %(<link rel="stylesheet" href="#{base_url}/styles/#{doc.attr 'highlightjs-theme', 'github'}.min.css"#{opts[:self_closing_tag_slash]}>)
23
+ else # :footer
24
+ %(<script src="#{base_url}/highlight.min.js"></script>
25
+ #{(doc.attr? 'highlightjs-languages') ? ((doc.attr 'highlightjs-languages').split ',').map {|lang| %[<script src="#{base_url}/languages/#{lang.lstrip}.min.js"></script>\n] }.join : ''}<script>
26
+ if (!hljs.initHighlighting.called) {
27
+ hljs.initHighlighting.called = true
28
+ ;[].slice.call(document.querySelectorAll('pre.highlight > code')).forEach(function (el) { hljs.highlightBlock(el) })
29
+ }
30
+ </script>)
31
+ end
24
32
  end
25
33
  end
26
34
  end
@@ -14,14 +14,17 @@ class SyntaxHighlighter::PrettifyAdapter < SyntaxHighlighter::Base
14
14
  end
15
15
 
16
16
  def docinfo? location
17
- location == :footer
17
+ true
18
18
  end
19
19
 
20
20
  def docinfo location, doc, opts
21
21
  base_url = doc.attr 'prettifydir', %(#{opts[:cdn_base_url]}/prettify/r298)
22
- prettify_theme_url = ((prettify_theme = doc.attr 'prettify-theme', 'prettify').start_with? 'http://', 'https://') ? prettify_theme : %(#{base_url}/#{prettify_theme}.min.css)
23
- %(<link rel="stylesheet" href="#{prettify_theme_url}"#{opts[:self_closing_tag_slash]}>
24
- <script src="#{base_url}/run_prettify.min.js"></script>)
22
+ if location == :head
23
+ prettify_theme_url = ((prettify_theme = doc.attr 'prettify-theme', 'prettify').start_with? 'http://', 'https://') ? prettify_theme : %(#{base_url}/#{prettify_theme}.min.css)
24
+ %(<link rel="stylesheet" href="#{prettify_theme_url}"#{opts[:self_closing_tag_slash]}>)
25
+ else # :footer
26
+ %(<script src="#{base_url}/run_prettify.min.js"></script>)
27
+ end
25
28
  end
26
29
  end
27
30
  end
@@ -5,8 +5,7 @@ class SyntaxHighlighter::PygmentsAdapter < SyntaxHighlighter::Base
5
5
 
6
6
  def initialize *args
7
7
  super
8
- @requires_stylesheet = nil
9
- @style = nil
8
+ @requires_stylesheet = @style = nil
10
9
  end
11
10
 
12
11
  def highlight?
@@ -34,13 +33,13 @@ class SyntaxHighlighter::PygmentsAdapter < SyntaxHighlighter::Base
34
33
  highlighted = highlighted.sub WrapperTagRx, PreTagCs
35
34
  opts[:callouts] ? [highlighted, (idx = highlighted.index CodeCellStartTagCs) ? idx + CodeCellStartTagCs.length : nil] : highlighted
36
35
  else
37
- node.sub_specialchars source # handles nil response from ::Pygments::Lexer#highlight
36
+ node.sub_source source, false # handles nil response from ::Pygments::Lexer#highlight
38
37
  end
39
38
  elsif (highlighted = lexer.highlight source, options: highlight_opts)
40
39
  highlighted = highlighted.gsub StyledLinenoSpanTagRx, LinenoSpanTagCs if linenos && noclasses
41
40
  highlighted.sub WrapperTagRx, '\1'
42
41
  else
43
- node.sub_specialchars source # handles nil response from ::Pygments::Lexer#highlight
42
+ node.sub_source source, false # handles nil response from ::Pygments::Lexer#highlight
44
43
  end
45
44
  end
46
45
 
@@ -53,7 +52,7 @@ class SyntaxHighlighter::PygmentsAdapter < SyntaxHighlighter::Base
53
52
  end
54
53
 
55
54
  def docinfo? location
56
- @requires_stylesheet && location == :footer
55
+ @requires_stylesheet && location == :head
57
56
  end
58
57
 
59
58
  def docinfo location, doc, opts
@@ -134,10 +133,10 @@ class SyntaxHighlighter::PygmentsAdapter < SyntaxHighlighter::Base
134
133
 
135
134
  CodeCellStartTagCs = '<td class="code">'
136
135
  LinenoColumnStartTagsCs = '<td class="linenos"><div class="linenodiv"><pre>'
137
- LinenoSpanTagCs = '<span class="lineno">\1</span>'
136
+ LinenoSpanTagCs = '<span class="lineno">\1 </span>'
138
137
  PreTagCs = '<pre>\1</pre>'
139
138
  StyledLinenoColumnStartTagsRx = /<td><div class="linenodiv" style="[^"]+?"><pre style="[^"]+?">/
140
- StyledLinenoSpanTagRx = %r(<span style="background-color: #f0f0f0; padding: 0 5px 0 5px">( *\d+ )</span>)
139
+ StyledLinenoSpanTagRx = %r((?<=^|<span></span>)<span style="[^"]+">( *\d+) ?</span>)
141
140
  WRAPPER_CLASS = 'lineno' # doesn't appear in output; Pygments appends "table" to this value to make nested table class
142
141
  # NOTE <pre> has style attribute when pygments-css=style
143
142
  # NOTE <div> has trailing newline when pygments-linenums-mode=table
@@ -13,40 +13,30 @@ class SyntaxHighlighter::RougeAdapter < SyntaxHighlighter::Base
13
13
  end
14
14
 
15
15
  def highlight node, source, lang, opts
16
- lexer = (::Rouge::Lexer.find_fancy lang) || ::Rouge::Lexers::PlainText
17
- lexer_opts = lexer.tag == 'php' && !(node.option? 'mixed') ? { start_inline: true } : {}
18
16
  @style ||= (style = opts[:style]) && (style_available? style) || DEFAULT_STYLE
19
- if opts[:css_mode] == :class
20
- @requires_stylesheet = true
21
- formatter = ::Rouge::Formatters::HTML.new inline_theme: @style
17
+ @requires_stylesheet = true if opts[:css_mode] == :class
18
+ lexer = create_lexer node, source, lang, opts
19
+ formatter = create_formatter node, source, lang, opts
20
+ highlighted = formatter.format lexer.lex source
21
+ if opts[:number_lines] && opts[:callouts]
22
+ [highlighted, (idx = highlighted.index CodeCellStartTagCs) ? idx + CodeCellStartTagCs.length : nil]
22
23
  else
23
- formatter = ::Rouge::Formatters::HTMLInline.new (::Rouge::Theme.find @style).new
24
+ highlighted
24
25
  end
25
- if (highlight_lines = opts[:highlight_lines])
26
- formatter = RougeExt::Formatters::HTMLLineHighlighter.new formatter, lines: highlight_lines
27
- end
28
- if opts[:number_lines]
29
- formatter = RougeExt::Formatters::HTMLTable.new formatter, start_line: opts[:start_line_number]
30
- if opts[:callouts]
31
- return [(highlighted = formatter.format lexer.lex source, lexer_opts), (idx = highlighted.index CodeCellStartTagCs) ? idx + CodeCellStartTagCs.length : nil]
32
- end
33
- end
34
- formatter.format lexer.lex source, lexer_opts
35
26
  end
36
27
 
37
28
  def format node, lang, opts
38
29
  if (query_idx = lang && (lang.index '?'))
39
30
  lang = lang.slice 0, query_idx
40
31
  end
41
- if opts[:css_mode] != :class && (@style = (style = opts[:style]) && (style_available? style) || DEFAULT_STYLE) &&
42
- (pre_style_attr_val = base_style @style)
32
+ if opts[:css_mode] != :class && (@style = (style = opts[:style]) && (style_available? style) || DEFAULT_STYLE) && (pre_style_attr_val = base_style @style)
43
33
  opts[:transform] = proc {|pre| pre['style'] = pre_style_attr_val }
44
34
  end
45
35
  super
46
36
  end
47
37
 
48
38
  def docinfo? location
49
- @requires_stylesheet && location == :footer
39
+ @requires_stylesheet && location == :head
50
40
  end
51
41
 
52
42
  def docinfo location, doc, opts
@@ -67,6 +57,30 @@ class SyntaxHighlighter::RougeAdapter < SyntaxHighlighter::Base
67
57
  ::File.write (::File.join to_dir, (stylesheet_basename @style)), (read_stylesheet @style), mode: FILE_WRITE_MODE
68
58
  end
69
59
 
60
+ def create_lexer node, source, lang, opts
61
+ if lang.include? '?'
62
+ # NOTE cgi-style options only properly supported in Rouge >= 2.1
63
+ if (lexer = ::Rouge::Lexer.find_fancy lang)
64
+ unless lexer.tag != 'php' || (node.option? 'mixed') || ((lexer_opts = lexer.options).key? 'start_inline')
65
+ lexer = lexer.class.new lexer_opts.merge 'start_inline' => true
66
+ end
67
+ end
68
+ elsif (lexer = ::Rouge::Lexer.find lang)
69
+ lexer = lexer.tag == 'php' && !(node.option? 'mixed') ? (lexer.new start_inline: true) : lexer.new
70
+ end if lang
71
+ lexer || ::Rouge::Lexers::PlainText.new
72
+ end
73
+
74
+ def create_formatter node, source, lang, opts
75
+ formatter = opts[:css_mode] == :class ?
76
+ (::Rouge::Formatters::HTML.new inline_theme: @style) :
77
+ (::Rouge::Formatters::HTMLInline.new (::Rouge::Theme.find @style).new)
78
+ if (highlight_lines = opts[:highlight_lines])
79
+ formatter = RougeExt::Formatters::HTMLLineHighlighter.new formatter, lines: highlight_lines
80
+ end
81
+ opts[:number_lines] ? (RougeExt::Formatters::HTMLTable.new formatter, start_line: opts[:start_line_number]) : formatter
82
+ end
83
+
70
84
  module Loader
71
85
  private
72
86
 
@@ -58,7 +58,7 @@ class Table < AbstractBlock
58
58
  @rows = Rows.new
59
59
  @columns = []
60
60
 
61
- @has_header_option = attributes['header-option'] ? true : false
61
+ @has_header_option = false
62
62
 
63
63
  # smells like we need a utility method here
64
64
  # to resolve an integer width from potential bogus input
@@ -78,10 +78,10 @@ class Table < AbstractBlock
78
78
  @attributes['orientation'] = 'landscape' if attributes['rotate-option']
79
79
  end
80
80
 
81
- # Internal: Returns whether the current row being processed is
82
- # the header row
81
+ # Internal: Returns the current state of the header option (true or :implicit) if
82
+ # the row being processed is (or is assumed to be) the header row, otherwise nil
83
83
  def header_row?
84
- @has_header_option && @rows.body.empty?
84
+ (val = @has_header_option) && @rows.body.empty? ? val : nil
85
85
  end
86
86
 
87
87
  # Internal: Creates the Column objects from the column spec
@@ -154,22 +154,19 @@ class Table < AbstractBlock
154
154
  # returns nothing
155
155
  def partition_header_footer(attrs)
156
156
  # set rowcount before splitting up body rows
157
- @attributes['rowcount'] = @rows.body.size
158
-
159
- num_body_rows = @rows.body.size
160
- if num_body_rows > 0 && @has_header_option
161
- head = @rows.body.shift
162
- num_body_rows -= 1
163
- # styles aren't applied to header row
164
- head.each {|c| c.style = nil }
165
- # QUESTION why does AsciiDoc use an array for head? is it
166
- # possible to have more than one based on the syntax?
167
- @rows.head = [head]
157
+ num_body_rows = @attributes['rowcount'] = (body = @rows.body).size
158
+
159
+ if num_body_rows > 0
160
+ if @has_header_option
161
+ @rows.head = [body.shift.map {|cell| cell.reinitialize true }]
162
+ num_body_rows -= 1
163
+ elsif @has_header_option.nil?
164
+ @has_header_option = false
165
+ body.unshift(body.shift.map {|cell| cell.reinitialize false })
166
+ end
168
167
  end
169
168
 
170
- if num_body_rows > 0 && attrs['footer-option']
171
- @rows.foot = [@rows.body.pop]
172
- end
169
+ @rows.foot = [body.pop] if num_body_rows > 0 && attrs['footer-option']
173
170
 
174
171
  nil
175
172
  end
@@ -232,14 +229,23 @@ class Table::Cell < AbstractBlock
232
229
  # Public: An alias to the parent block (which is always a Column)
233
230
  alias column parent
234
231
 
235
- # Internal: Returns the nested Document in an AsciiDoc table cell (only set when style is :asciidoc)
232
+ # Public: Returns the nested Document in an AsciiDoc table cell (only set when style is :asciidoc)
236
233
  attr_reader :inner_document
237
234
 
238
235
  def initialize column, cell_text, attributes = {}, opts = {}
239
236
  super column, :table_cell
237
+ @cursor = @reinitialize_args = nil
240
238
  @source_location = opts[:cursor].dup if @document.sourcemap
239
+ # NOTE: column is always set when parsing; may not be set when building table from the API
241
240
  if column
242
- cell_style = column.attributes['style'] unless (in_header_row = column.table.header_row?)
241
+ if (in_header_row = column.table.header_row?)
242
+ if in_header_row == :implicit && (cell_style = column.style || (attributes && attributes['style']))
243
+ @reinitialize_args = [column, cell_text, attributes && attributes.merge, opts] if cell_style == :asciidoc || cell_style == :literal
244
+ cell_style = nil
245
+ end
246
+ else
247
+ cell_style = column.style
248
+ end
243
249
  # REVIEW feels hacky to inherit all attributes from column
244
250
  update_attributes column.attributes
245
251
  end
@@ -306,8 +312,12 @@ class Table::Cell < AbstractBlock
306
312
  @content_model = :verbatim
307
313
  @subs = BASIC_SUBS
308
314
  else
309
- if normal_psv && (cell_text.start_with? '[[') && LeadingInlineAnchorRx =~ cell_text
310
- Parser.catalog_inline_anchor $1, $2, self, opts[:cursor], @document
315
+ if normal_psv
316
+ if in_header_row
317
+ @cursor = opts[:cursor] # used in deferred catalog_inline_anchor call
318
+ else
319
+ catalog_inline_anchor cell_text, opts[:cursor]
320
+ end
311
321
  end
312
322
  @content_model = :simple
313
323
  @subs = NORMAL_SUBS
@@ -316,6 +326,25 @@ class Table::Cell < AbstractBlock
316
326
  @style = cell_style
317
327
  end
318
328
 
329
+ def reinitialize has_header
330
+ if has_header
331
+ @reinitialize_args = nil
332
+ elsif @reinitialize_args
333
+ return Table::Cell.new(*@reinitialize_args)
334
+ else
335
+ @style = @attributes['style']
336
+ end
337
+ catalog_inline_anchor if @cursor
338
+ self
339
+ end
340
+
341
+ def catalog_inline_anchor cell_text = @text, cursor = nil
342
+ cursor, @cursor = @cursor, nil unless cursor
343
+ if (cell_text.start_with? '[[') && LeadingInlineAnchorRx =~ cell_text
344
+ Parser.catalog_inline_anchor $1, $2, self, cursor, @document
345
+ end
346
+ end
347
+
319
348
  # Public: Get the String text of this cell with substitutions applied.
320
349
  #
321
350
  # Used for cells in the head row as well as text-only (non-AsciiDoc) cells in
@@ -339,7 +368,7 @@ class Table::Cell < AbstractBlock
339
368
 
340
369
  # Public: Handles the body data (tbody, tfoot), applying styles and partitioning into paragraphs
341
370
  #
342
- # This method should not be used for cells in the head row or that have the literal or verse style.
371
+ # This method should not be used for cells in the head row or that have the literal style.
343
372
  #
344
373
  # Returns the converted String for this Cell
345
374
  def content
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module Asciidoctor
3
- VERSION = '2.0.9'
3
+ VERSION = '2.0.14'
4
4
  end
data/man/asciidoctor.1 CHANGED
@@ -1,13 +1,13 @@
1
1
  '\" t
2
2
  .\" Title: asciidoctor
3
3
  .\" Author: Dan Allen, Sarah White, Ryan Waldron
4
- .\" Generator: Asciidoctor 2.0.9
5
- .\" Date: 2019-04-30
4
+ .\" Generator: Asciidoctor 2.0.14
5
+ .\" Date: 2021-04-19
6
6
  .\" Manual: Asciidoctor Manual
7
- .\" Source: Asciidoctor 2.0.9
7
+ .\" Source: Asciidoctor 2.0.14
8
8
  .\" Language: English
9
9
  .\"
10
- .TH "ASCIIDOCTOR" "1" "2019-04-30" "Asciidoctor 2.0.9" "Asciidoctor Manual"
10
+ .TH "ASCIIDOCTOR" "1" "2021-04-19" "Asciidoctor 2.0.14" "Asciidoctor Manual"
11
11
  .ie \n(.g .ds Aq \(aq
12
12
  .el .ds Aq '
13
13
  .ss \n[.ss] 0
@@ -77,7 +77,7 @@ This option may be specified more than once.
77
77
  .sp
78
78
  \fB\-b, \-\-backend\fP=\fIBACKEND\fP
79
79
  .RS 4
80
- Backend output file format: \fIhtml5\fP, \fIdocbook5\fP, \fIdocbook45\fP, and \fImanpage\fP are supported out of the box.
80
+ Backend output file format: \fIhtml5\fP, \fIdocbook5\fP, and \fImanpage\fP are supported out of the box.
81
81
  You can also use the backend alias names \fIhtml\fP (aliased to \fIhtml5\fP) or \fIdocbook\fP (aliased to \fIdocbook5\fP).
82
82
  Other values can be passed, but if Asciidoctor cannot resolve the backend to a converter, it will fail.
83
83
  Defaults to \fIhtml5\fP.
@@ -188,7 +188,7 @@ Include backtrace information when reporting errors.
188
188
  .sp
189
189
  \fB\-v, \-\-verbose\fP
190
190
  .RS 4
191
- Verbosely print processing information to stderr, including debug\-level log messages.
191
+ Sets log level to DEBUG so application messages logged at INFO or DEBUG level are printed to stderr.
192
192
  .RE
193
193
  .sp
194
194
  \fB\-w, \-\-warnings\fP
@@ -220,7 +220,7 @@ Print program version number.
220
220
  \fBAsciidoctor\fP honors the \fBSOURCE_DATE_EPOCH\fP environment variable.
221
221
  If this variable is assigned an integer value, that value is used as the epoch of all input documents and as the local date and time.
222
222
  See \c
223
- .URL "https://reproducible\-builds.org/specs/source\-date\-epoch/" "" " "
223
+ .URL "https://reproducible\-builds.org/specs/source\-date\-epoch/" "" ""
224
224
  for more information about this environment variable.
225
225
  .SH "EXIT STATUS"
226
226
  .sp
@@ -257,7 +257,7 @@ Refer to the \fBAsciidoctor\fP issue tracker at \c
257
257
  .URL "http://discuss.asciidoctor.org" "" ""
258
258
  .SH "COPYING"
259
259
  .sp
260
- Copyright (C) 2012\-2019 Dan Allen, Ryan Waldron, and the Asciidoctor Project.
260
+ Copyright (C) 2012\-2021 Dan Allen, Ryan Waldron, and the Asciidoctor Project.
261
261
  Free use of this software is granted under the terms of the MIT License.
262
262
  .SH "AUTHORS"
263
263
  .sp
data/man/asciidoctor.adoc CHANGED
@@ -1,7 +1,7 @@
1
1
  = asciidoctor(1)
2
2
  Dan Allen; Sarah White; Ryan Waldron
3
3
  :doctype: manpage
4
- :release-version: 2.0.9
4
+ :release-version: 2.0.14
5
5
  :man manual: Asciidoctor Manual
6
6
  :man source: Asciidoctor {release-version}
7
7
  :page-layout: base
@@ -53,7 +53,7 @@ Values containing spaces should be enclosed in quotes.
53
53
  This option may be specified more than once.
54
54
 
55
55
  *-b, --backend*=_BACKEND_::
56
- Backend output file format: _html5_, _docbook5_, _docbook45_, and _manpage_ are supported out of the box.
56
+ Backend output file format: _html5_, _docbook5_, and _manpage_ are supported out of the box.
57
57
  You can also use the backend alias names _html_ (aliased to _html5_) or _docbook_ (aliased to _docbook5_).
58
58
  Other values can be passed, but if Asciidoctor cannot resolve the backend to a converter, it will fail.
59
59
  Defaults to _html5_.
@@ -136,7 +136,7 @@ Matching templates found in subsequent directories override ones previously disc
136
136
  Include backtrace information when reporting errors.
137
137
 
138
138
  *-v, --verbose*::
139
- Verbosely print processing information to stderr, including debug-level log messages.
139
+ Sets log level to DEBUG so application messages logged at INFO or DEBUG level are printed to stderr.
140
140
 
141
141
  *-w, --warnings*::
142
142
  Turn on script warnings (applies to executed code).
@@ -192,5 +192,5 @@ Refer to the *Asciidoctor* issue tracker at https://github.com/asciidoctor/ascii
192
192
 
193
193
  == COPYING
194
194
 
195
- Copyright \(C) 2012-2019 Dan Allen, Ryan Waldron, and the Asciidoctor Project.
195
+ Copyright \(C) 2012-2021 Dan Allen, Ryan Waldron, and the Asciidoctor Project.
196
196
  Free use of this software is granted under the terms of the MIT License.