asciidoctor 2.0.18 → 2.0.23
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.
- checksums.yaml +4 -4
- data/CHANGELOG.adoc +129 -7
- data/README-de.adoc +2 -1
- data/README-fr.adoc +2 -1
- data/README-jp.adoc +2 -1
- data/README-zh_CN.adoc +2 -1
- data/README.adoc +10 -8
- data/asciidoctor.gemspec +3 -3
- data/data/locale/attributes-sw.adoc +23 -0
- data/data/reference/syntax.adoc +1 -1
- data/data/stylesheets/asciidoctor-default.css +6 -8
- data/lib/asciidoctor/abstract_block.rb +1 -0
- data/lib/asciidoctor/abstract_node.rb +6 -6
- data/lib/asciidoctor/block.rb +1 -1
- data/lib/asciidoctor/converter/docbook5.rb +92 -58
- data/lib/asciidoctor/converter/html5.rb +2 -2
- data/lib/asciidoctor/converter/manpage.rb +45 -54
- data/lib/asciidoctor/converter/template.rb +2 -1
- data/lib/asciidoctor/extensions.rb +21 -0
- data/lib/asciidoctor/helpers.rb +13 -4
- data/lib/asciidoctor/logging.rb +2 -0
- data/lib/asciidoctor/parser.rb +69 -37
- data/lib/asciidoctor/path_resolver.rb +11 -2
- data/lib/asciidoctor/reader.rb +26 -12
- data/lib/asciidoctor/rx.rb +16 -16
- data/lib/asciidoctor/substitutors.rb +111 -115
- data/lib/asciidoctor/table.rb +22 -13
- data/lib/asciidoctor/version.rb +1 -1
- data/lib/asciidoctor.rb +2 -3
- data/man/asciidoctor.1 +7 -6
- data/man/asciidoctor.adoc +1 -1
- metadata +9 -8
@@ -445,7 +445,14 @@ module Substitutors
|
|
445
445
|
# indexterm:[Tigers,Big cats]
|
446
446
|
if (attrlist = normalize_text $2, true, true).include? '='
|
447
447
|
if (primary = (attrs = (AttributeList.new attrlist, self).parse)[1])
|
448
|
-
|
448
|
+
terms = [primary]
|
449
|
+
if (secondary = attrs[2])
|
450
|
+
terms << secondary
|
451
|
+
if (tertiary = attrs[3])
|
452
|
+
terms << tertiary
|
453
|
+
end
|
454
|
+
end
|
455
|
+
attrs['terms'] = terms
|
449
456
|
if (see_also = attrs['see-also'])
|
450
457
|
attrs['see-also'] = (see_also.include? ',') ? (see_also.split ',').map {|it| it.lstrip } : [see_also]
|
451
458
|
end
|
@@ -524,105 +531,100 @@ module Substitutors
|
|
524
531
|
end
|
525
532
|
|
526
533
|
if found_colon && (text.include? '://')
|
527
|
-
# inline urls, target[text] (optionally prefixed with link:
|
534
|
+
# inline urls, target[text] (optionally prefixed with link: or enclosed in <>)
|
528
535
|
text = text.gsub InlineLinkRx do
|
529
|
-
if
|
530
|
-
# honor the
|
531
|
-
next
|
532
|
-
|
533
|
-
|
534
|
-
|
535
|
-
|
536
|
-
|
537
|
-
prefix = '' if prefix == 'link:'
|
538
|
-
link_text = nil if (link_text = $4).empty?
|
536
|
+
if $2 && !$5
|
537
|
+
# honor the escapes
|
538
|
+
next $&.slice 1, $&.length if $1.start_with? RS
|
539
|
+
next %(#{$1}#{$&.slice $1.length + 1, $&.length}) if $3.start_with? RS
|
540
|
+
next $& unless $6
|
541
|
+
doc.register :links, (target = $3 + $6)
|
542
|
+
link_text = (doc_attrs.key? 'hide-uri-scheme') ? (target.sub UriSniffRx, '') : target
|
543
|
+
(Inline.new self, :anchor, link_text, type: :link, target: target, attributes: { 'role' => 'bare' }).convert
|
539
544
|
else
|
540
|
-
#
|
541
|
-
#
|
542
|
-
|
543
|
-
|
544
|
-
|
545
|
-
|
546
|
-
|
547
|
-
|
548
|
-
|
549
|
-
|
550
|
-
|
551
|
-
|
552
|
-
|
553
|
-
# NOTE handle case when modified target is a URI scheme (e.g., http://)
|
554
|
-
next $& if target.end_with? '://'
|
555
|
-
when ';'
|
556
|
-
if (prefix.start_with? '<') && (target.end_with? '>')
|
557
|
-
# move surrounding <> out of URL
|
558
|
-
prefix = prefix.slice 4, prefix.length
|
559
|
-
target = target.slice 0, target.length - 4
|
560
|
-
elsif (target = target.chop).end_with? ')'
|
561
|
-
# move trailing ); out of URL
|
562
|
-
target = target.chop
|
563
|
-
suffix = ');'
|
564
|
-
else
|
565
|
-
# move trailing ; out of URL
|
566
|
-
suffix = ';'
|
545
|
+
# honor the escape
|
546
|
+
next %(#{$1}#{$&.slice $1.length + 1, $&.length}) if $3.start_with? RS
|
547
|
+
prefix, target, suffix = $1, $3 + ($4 || $7), ''
|
548
|
+
# NOTE if $5 is set (the attrlist), we're looking at a formal macro (e.g., https://example.org[])
|
549
|
+
if $5
|
550
|
+
prefix = '' if prefix == 'link:'
|
551
|
+
link_text = nil if (link_text = $5).empty?
|
552
|
+
else
|
553
|
+
case prefix
|
554
|
+
# invalid macro syntax (link: prefix w/o trailing square brackets or URL enclosed in quotes)
|
555
|
+
# FIXME we probably shouldn't even get here when the link: prefix is present; the regex is doing too much
|
556
|
+
when 'link:', ?", ?'
|
557
|
+
next $&
|
567
558
|
end
|
568
|
-
|
569
|
-
|
570
|
-
|
571
|
-
|
572
|
-
|
573
|
-
|
574
|
-
|
575
|
-
|
576
|
-
|
577
|
-
|
559
|
+
case $8
|
560
|
+
when ';'
|
561
|
+
if (target = target.chop).end_with? ')'
|
562
|
+
# move trailing ); out of URL
|
563
|
+
target = target.chop
|
564
|
+
suffix = ');'
|
565
|
+
else
|
566
|
+
# move trailing ; out of URL
|
567
|
+
suffix = ';'
|
568
|
+
end
|
569
|
+
# NOTE handle case when modified target is a bare URI scheme (e.g., http://)
|
570
|
+
next $& if target == $3
|
571
|
+
when ':'
|
572
|
+
if (target = target.chop).end_with? ')'
|
573
|
+
# move trailing ): out of URL
|
574
|
+
target = target.chop
|
575
|
+
suffix = '):'
|
576
|
+
else
|
577
|
+
# move trailing : out of URL
|
578
|
+
suffix = ':'
|
579
|
+
end
|
580
|
+
# NOTE handle case when modified target is a bare URI scheme (e.g., http://)
|
581
|
+
next $& if target == $3
|
578
582
|
end
|
579
|
-
# NOTE handle case when modified target is a URI scheme (e.g., http://)
|
580
|
-
next $& if target.end_with? '://'
|
581
583
|
end
|
582
|
-
end
|
583
584
|
|
584
|
-
|
585
|
+
link_opts = { type: :link }
|
585
586
|
|
586
|
-
|
587
|
-
|
588
|
-
|
589
|
-
|
590
|
-
|
591
|
-
|
592
|
-
|
593
|
-
|
587
|
+
if link_text
|
588
|
+
new_link_text = link_text = link_text.gsub ESC_R_SB, R_SB if link_text.include? R_SB
|
589
|
+
if !doc.compat_mode && (link_text.include? '=')
|
590
|
+
# NOTE if an equals sign (=) is present, extract attributes from link text
|
591
|
+
link_text, attrs = extract_attributes_from_text link_text, ''
|
592
|
+
new_link_text = link_text
|
593
|
+
link_opts[:id] = attrs['id']
|
594
|
+
end
|
594
595
|
|
595
|
-
|
596
|
-
|
597
|
-
|
598
|
-
|
599
|
-
|
600
|
-
|
596
|
+
if link_text.end_with? '^'
|
597
|
+
new_link_text = link_text = link_text.chop
|
598
|
+
if attrs
|
599
|
+
attrs['window'] ||= '_blank'
|
600
|
+
else
|
601
|
+
attrs = { 'window' => '_blank' }
|
602
|
+
end
|
601
603
|
end
|
602
|
-
end
|
603
604
|
|
604
|
-
|
605
|
-
|
605
|
+
if new_link_text && new_link_text.empty?
|
606
|
+
# NOTE the modified target will not be a bare URI scheme (e.g., http://) in this case
|
607
|
+
link_text = (doc_attrs.key? 'hide-uri-scheme') ? (target.sub UriSniffRx, '') : target
|
608
|
+
bare = true
|
609
|
+
end
|
610
|
+
else
|
611
|
+
# NOTE the modified target will not be a bare URI scheme (e.g., http://) in this case
|
606
612
|
link_text = (doc_attrs.key? 'hide-uri-scheme') ? (target.sub UriSniffRx, '') : target
|
607
613
|
bare = true
|
608
614
|
end
|
609
|
-
else
|
610
|
-
# NOTE it's not possible for the URI scheme to be bare in this case
|
611
|
-
link_text = (doc_attrs.key? 'hide-uri-scheme') ? (target.sub UriSniffRx, '') : target
|
612
|
-
bare = true
|
613
|
-
end
|
614
615
|
|
615
|
-
|
616
|
-
|
617
|
-
|
618
|
-
|
619
|
-
|
616
|
+
if bare
|
617
|
+
if attrs
|
618
|
+
attrs['role'] = (attrs.key? 'role') ? %(bare #{attrs['role']}) : 'bare'
|
619
|
+
else
|
620
|
+
attrs = { 'role' => 'bare' }
|
621
|
+
end
|
620
622
|
end
|
621
|
-
end
|
622
623
|
|
623
|
-
|
624
|
-
|
625
|
-
|
624
|
+
doc.register :links, (link_opts[:target] = target)
|
625
|
+
link_opts[:attributes] = attrs if attrs
|
626
|
+
%(#{prefix}#{(Inline.new self, :anchor, link_text, link_opts).convert}#{suffix})
|
627
|
+
end
|
626
628
|
end
|
627
629
|
end
|
628
630
|
|
@@ -755,7 +757,7 @@ module Substitutors
|
|
755
757
|
|
756
758
|
if doc.compat_mode
|
757
759
|
fragment = refid
|
758
|
-
elsif (hash_idx = refid.index '#')
|
760
|
+
elsif (hash_idx = refid.index '#') && refid[hash_idx - 1] != '&'
|
759
761
|
if hash_idx > 0
|
760
762
|
if (fragment_len = refid.length - 1 - hash_idx) > 0
|
761
763
|
path, fragment = (refid.slice 0, hash_idx), (refid.slice hash_idx + 1, fragment_len)
|
@@ -1027,11 +1029,17 @@ module Substitutors
|
|
1027
1029
|
next %(#{$1}[#{attrlist}]#{RS * (escape_count - 1)}#{boundary}#{$5}#{boundary})
|
1028
1030
|
elsif $1 == RS
|
1029
1031
|
preceding = %([#{attrlist}])
|
1030
|
-
|
1031
|
-
if
|
1032
|
+
elsif boundary == '++'
|
1033
|
+
if attrlist == 'x-'
|
1034
|
+
old_behavior = true
|
1035
|
+
attributes = {}
|
1036
|
+
elsif attrlist.end_with? ' x-'
|
1032
1037
|
old_behavior = true
|
1033
|
-
|
1038
|
+
attributes = parse_quoted_text_attributes attrlist.slice 0, attrlist.length - 3
|
1039
|
+
else
|
1040
|
+
attributes = parse_quoted_text_attributes attrlist
|
1034
1041
|
end
|
1042
|
+
else
|
1035
1043
|
attributes = parse_quoted_text_attributes attrlist
|
1036
1044
|
end
|
1037
1045
|
elsif (escape_count = $3.length) > 0
|
@@ -1066,41 +1074,43 @@ module Substitutors
|
|
1066
1074
|
pass_inline_char1, pass_inline_char2, pass_inline_rx = InlinePassRx[compat_mode]
|
1067
1075
|
text = text.gsub pass_inline_rx do
|
1068
1076
|
preceding = $1
|
1069
|
-
attrlist = $
|
1070
|
-
|
1071
|
-
|
1072
|
-
|
1077
|
+
attrlist = $4 || $3
|
1078
|
+
escaped = true if $5
|
1079
|
+
quoted_text = $6
|
1080
|
+
format_mark = $7
|
1081
|
+
content = $8
|
1073
1082
|
|
1074
1083
|
if compat_mode
|
1075
1084
|
old_behavior = true
|
1076
|
-
elsif
|
1077
|
-
|
1085
|
+
elsif attrlist && (attrlist == 'x-' || (attrlist.end_with? ' x-'))
|
1086
|
+
old_behavior = old_behavior_forced = true
|
1078
1087
|
end
|
1079
1088
|
|
1080
1089
|
if attrlist
|
1081
|
-
if
|
1082
|
-
next extract_inner_passthrough content, %(#{preceding}[#{attrlist}]#{escape_mark})
|
1083
|
-
elsif escape_mark
|
1090
|
+
if escaped
|
1084
1091
|
# honor the escape of the formatting mark
|
1085
1092
|
next %(#{preceding}[#{attrlist}]#{quoted_text.slice 1, quoted_text.length})
|
1086
1093
|
elsif preceding == RS
|
1087
1094
|
# honor the escape of the attributes
|
1095
|
+
next %(#{preceding}[#{attrlist}]#{quoted_text}) if old_behavior_forced && format_mark == '`'
|
1088
1096
|
preceding = %([#{attrlist}])
|
1097
|
+
elsif old_behavior_forced
|
1098
|
+
attributes = attrlist == 'x-' ? {} : (parse_quoted_text_attributes attrlist.slice 0, attrlist.length - 3)
|
1089
1099
|
else
|
1090
1100
|
attributes = parse_quoted_text_attributes attrlist
|
1091
1101
|
end
|
1092
|
-
elsif
|
1093
|
-
next extract_inner_passthrough content, %(#{preceding}#{escape_mark})
|
1094
|
-
elsif escape_mark
|
1102
|
+
elsif escaped
|
1095
1103
|
# honor the escape of the formatting mark
|
1096
1104
|
next %(#{preceding}#{quoted_text.slice 1, quoted_text.length})
|
1105
|
+
elsif compat_mode && preceding == RS
|
1106
|
+
next quoted_text
|
1097
1107
|
end
|
1098
1108
|
|
1099
1109
|
if compat_mode
|
1100
1110
|
passthrus[passthru_key = passthrus.size] = { text: content, subs: BASIC_SUBS, attributes: attributes, type: :monospaced }
|
1101
1111
|
elsif attributes
|
1102
1112
|
if old_behavior
|
1103
|
-
subs =
|
1113
|
+
subs = format_mark == '`' ? BASIC_SUBS : NORMAL_SUBS
|
1104
1114
|
passthrus[passthru_key = passthrus.size] = { text: content, subs: subs, attributes: attributes, type: :monospaced }
|
1105
1115
|
else
|
1106
1116
|
passthrus[passthru_key = passthrus.size] = { text: content, subs: BASIC_SUBS, attributes: attributes, type: :unquoted }
|
@@ -1399,20 +1409,6 @@ module Substitutors
|
|
1399
1409
|
end.join LF)
|
1400
1410
|
end
|
1401
1411
|
|
1402
|
-
# Internal: Extract nested single-plus passthrough; otherwise return unprocessed
|
1403
|
-
def extract_inner_passthrough text, pre
|
1404
|
-
if (text.end_with? '+') && (text.start_with? '+', '\+') && SinglePlusInlinePassRx =~ text
|
1405
|
-
if $1
|
1406
|
-
%(#{pre}`+#{$2}+`)
|
1407
|
-
else
|
1408
|
-
@passthroughs[passthru_key = @passthroughs.size] = { text: $2, subs: BASIC_SUBS }
|
1409
|
-
%(#{pre}`#{PASS_START}#{passthru_key}#{PASS_END}`)
|
1410
|
-
end
|
1411
|
-
else
|
1412
|
-
%(#{pre}`#{text}`)
|
1413
|
-
end
|
1414
|
-
end
|
1415
|
-
|
1416
1412
|
# Internal: Convert a quoted text region
|
1417
1413
|
#
|
1418
1414
|
# match - The MatchData for the quoted text region
|
data/lib/asciidoctor/table.rb
CHANGED
@@ -300,7 +300,7 @@ class Table::Cell < AbstractBlock
|
|
300
300
|
# QUESTION is is faster to check for :: before splitting?
|
301
301
|
inner_document_lines = cell_text.split LF, -1
|
302
302
|
if (unprocessed_line1 = inner_document_lines[0]).include? '::'
|
303
|
-
preprocessed_lines = (PreprocessorReader.new @document, [unprocessed_line1]).readlines
|
303
|
+
preprocessed_lines = (PreprocessorReader.new @document, [unprocessed_line1], inner_document_cursor).readlines
|
304
304
|
unless unprocessed_line1 == preprocessed_lines[0] && preprocessed_lines.size < 2
|
305
305
|
inner_document_lines.shift
|
306
306
|
inner_document_lines.unshift(*preprocessed_lines) unless preprocessed_lines.empty?
|
@@ -659,36 +659,43 @@ class Table::ParserContext
|
|
659
659
|
end
|
660
660
|
end
|
661
661
|
else
|
662
|
-
|
663
|
-
unless (column = @table.columns[@current_row.size])
|
664
|
-
logger.error message_with_context 'dropping cell because it exceeds specified number of columns', source_location: @reader.cursor_before_mark
|
665
|
-
return nil
|
666
|
-
end
|
662
|
+
column = @table.columns[@current_row.size]
|
667
663
|
end
|
668
664
|
|
669
|
-
cell = Table::Cell.new
|
665
|
+
cell = Table::Cell.new column, cell_text, cellspec, cursor: (cursor_before_mark = @reader.cursor_before_mark)
|
670
666
|
@reader.mark
|
671
667
|
unless !cell.rowspan || cell.rowspan == 1
|
672
668
|
activate_rowspan(cell.rowspan, (cell.colspan || 1))
|
673
669
|
end
|
674
670
|
@column_visits += (cell.colspan || 1)
|
675
671
|
@current_row << cell
|
676
|
-
|
677
|
-
|
678
|
-
|
672
|
+
if (row_status = end_of_row?) > -1 && (@colcount != -1 || @linenum > 0 || (eol && i == repeat))
|
673
|
+
if row_status > 0
|
674
|
+
logger.error message_with_context 'dropping cell because it exceeds specified number of columns', source_location: cursor_before_mark
|
675
|
+
close_row true
|
676
|
+
else
|
677
|
+
close_row
|
678
|
+
end
|
679
|
+
end
|
679
680
|
end
|
680
681
|
@cell_open = false
|
681
682
|
nil
|
682
683
|
end
|
683
684
|
|
685
|
+
def close_table
|
686
|
+
return if @column_visits == 0
|
687
|
+
logger.error message_with_context 'dropping cells from incomplete row detected end of table', source_location: @reader.cursor_before_mark
|
688
|
+
nil
|
689
|
+
end
|
690
|
+
|
684
691
|
private
|
685
692
|
|
686
693
|
# Internal: Close the row by adding it to the Table and resetting the row
|
687
694
|
# Array and counter variables.
|
688
695
|
#
|
689
696
|
# returns nothing
|
690
|
-
def close_row
|
691
|
-
@table.rows.body << @current_row
|
697
|
+
def close_row drop = false
|
698
|
+
@table.rows.body << @current_row unless drop
|
692
699
|
# don't have to account for active rowspans here
|
693
700
|
# since we know this is first row
|
694
701
|
@colcount = @column_visits if @colcount == -1
|
@@ -709,8 +716,10 @@ class Table::ParserContext
|
|
709
716
|
end
|
710
717
|
|
711
718
|
# Internal: Check whether we've met the number of effective columns for the current row.
|
719
|
+
#
|
720
|
+
# returns -1 if not at end of row, 0 if exactly at end of row, and 1 if overruns end of row
|
712
721
|
def end_of_row?
|
713
|
-
@colcount == -1
|
722
|
+
@colcount == -1 ? 0 : effective_column_visits <=> @colcount
|
714
723
|
end
|
715
724
|
|
716
725
|
# Internal: Calculate the effective column visits, which consists of the number of
|
data/lib/asciidoctor/version.rb
CHANGED
data/lib/asciidoctor.rb
CHANGED
@@ -6,7 +6,6 @@ if RUBY_ENGINE == 'opal'
|
|
6
6
|
# this require is satisfied by the Asciidoctor.js build; it augments the Ruby environment for Asciidoctor.js
|
7
7
|
require 'asciidoctor/js'
|
8
8
|
else
|
9
|
-
autoload :Base64, 'base64'
|
10
9
|
require 'cgi/util'
|
11
10
|
autoload :OpenURI, 'open-uri'
|
12
11
|
autoload :Pathname, 'pathname'
|
@@ -209,13 +208,13 @@ module Asciidoctor
|
|
209
208
|
BOM_BYTES_UTF_16BE = [0xfe, 0xff]
|
210
209
|
|
211
210
|
# The mode to use when opening a file for reading
|
212
|
-
FILE_READ_MODE = RUBY_ENGINE_OPAL ? 'r' : 'rb:
|
211
|
+
FILE_READ_MODE = RUBY_ENGINE_OPAL ? 'r' : 'rb:UTF-8:UTF-8'
|
213
212
|
|
214
213
|
# The mode to use when opening a URI for reading
|
215
214
|
URI_READ_MODE = FILE_READ_MODE
|
216
215
|
|
217
216
|
# The mode to use when opening a file for writing
|
218
|
-
FILE_WRITE_MODE = RUBY_ENGINE_OPAL ? 'w' : '
|
217
|
+
FILE_WRITE_MODE = RUBY_ENGINE_OPAL ? 'w' : 'wb:UTF-8'
|
219
218
|
|
220
219
|
# The default document type
|
221
220
|
# Can influence markup generated by the converters
|
data/man/asciidoctor.1
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
'\" t
|
2
2
|
.\" Title: asciidoctor
|
3
3
|
.\" Author: Dan Allen, Sarah White
|
4
|
-
.\" Generator: Asciidoctor 2.0.
|
5
|
-
.\" Date:
|
4
|
+
.\" Generator: Asciidoctor 2.0.22
|
5
|
+
.\" Date: 2018-03-20
|
6
6
|
.\" Manual: Asciidoctor Manual
|
7
|
-
.\" Source: Asciidoctor 2.0.
|
7
|
+
.\" Source: Asciidoctor 2.0.23
|
8
8
|
.\" Language: English
|
9
9
|
.\"
|
10
|
-
.TH "ASCIIDOCTOR" "1" "
|
10
|
+
.TH "ASCIIDOCTOR" "1" "2018-03-20" "Asciidoctor 2.0.23" "Asciidoctor Manual"
|
11
11
|
.ie \n(.g .ds Aq \(aq
|
12
12
|
.el .ds Aq '
|
13
13
|
.ss \n[.ss] 0
|
@@ -67,10 +67,11 @@ If not set, the safe mode level defaults to \fIunsafe\fP when Asciidoctor is inv
|
|
67
67
|
.RS 4
|
68
68
|
Define, override, or unset a document attribute.
|
69
69
|
Command\-line attributes take precedence over attributes defined in the source file unless either the name or value ends in \fI@\fP.
|
70
|
+
No substitutions are applied to the value.
|
70
71
|
.sp
|
71
72
|
\fIATTRIBUTE\fP is normally formatted as a key\-value pair, in the form \fINAME=VALUE\fP.
|
72
73
|
Alternate forms are \fINAME\fP (where the \fIVALUE\fP defaults to an empty string), \fINAME!\fP (unsets the \fINAME\fP attribute), and \fINAME=VALUE@\fP (or \fINAME@=VALUE\fP) (where \fIVALUE\fP does not override the \fINAME\fP attribute if it\(cqs already defined in the source document).
|
73
|
-
|
74
|
+
A value containing spaces must be enclosed in quotes, in the form \fINAME="VALUE WITH SPACES"\fP.
|
74
75
|
.sp
|
75
76
|
This option may be specified more than once.
|
76
77
|
.RE
|
@@ -263,4 +264,4 @@ Jason Porter wrote the first implementation of the CLI interface provided by thi
|
|
263
264
|
.SH "COPYING"
|
264
265
|
.sp
|
265
266
|
Copyright (C) 2012\-present Dan Allen, Sarah White, Ryan Waldron, and the individual contributors to Asciidoctor.
|
266
|
-
Use of this software is granted under the terms of the MIT License.
|
267
|
+
Use of this software is granted under the terms of the MIT License.
|
data/man/asciidoctor.adoc
CHANGED
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: 2.0.
|
4
|
+
version: 2.0.23
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dan Allen
|
@@ -63,42 +63,42 @@ dependencies:
|
|
63
63
|
requirements:
|
64
64
|
- - "~>"
|
65
65
|
- !ruby/object:Gem::Version
|
66
|
-
version:
|
66
|
+
version: 6.1.0
|
67
67
|
type: :development
|
68
68
|
prerelease: false
|
69
69
|
version_requirements: !ruby/object:Gem::Requirement
|
70
70
|
requirements:
|
71
71
|
- - "~>"
|
72
72
|
- !ruby/object:Gem::Version
|
73
|
-
version:
|
73
|
+
version: 6.1.0
|
74
74
|
- !ruby/object:Gem::Dependency
|
75
75
|
name: minitest
|
76
76
|
requirement: !ruby/object:Gem::Requirement
|
77
77
|
requirements:
|
78
78
|
- - "~>"
|
79
79
|
- !ruby/object:Gem::Version
|
80
|
-
version: 5.
|
80
|
+
version: 5.22.0
|
81
81
|
type: :development
|
82
82
|
prerelease: false
|
83
83
|
version_requirements: !ruby/object:Gem::Requirement
|
84
84
|
requirements:
|
85
85
|
- - "~>"
|
86
86
|
- !ruby/object:Gem::Version
|
87
|
-
version: 5.
|
87
|
+
version: 5.22.0
|
88
88
|
- !ruby/object:Gem::Dependency
|
89
89
|
name: nokogiri
|
90
90
|
requirement: !ruby/object:Gem::Requirement
|
91
91
|
requirements:
|
92
92
|
- - "~>"
|
93
93
|
- !ruby/object:Gem::Version
|
94
|
-
version: 1.
|
94
|
+
version: 1.13.0
|
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.
|
101
|
+
version: 1.13.0
|
102
102
|
- !ruby/object:Gem::Dependency
|
103
103
|
name: rake
|
104
104
|
requirement: !ruby/object:Gem::Requirement
|
@@ -188,6 +188,7 @@ files:
|
|
188
188
|
- data/locale/attributes-sr.adoc
|
189
189
|
- data/locale/attributes-sr_Latn.adoc
|
190
190
|
- data/locale/attributes-sv.adoc
|
191
|
+
- data/locale/attributes-sw.adoc
|
191
192
|
- data/locale/attributes-th.adoc
|
192
193
|
- data/locale/attributes-tr.adoc
|
193
194
|
- data/locale/attributes-uk.adoc
|
@@ -271,7 +272,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
271
272
|
- !ruby/object:Gem::Version
|
272
273
|
version: '0'
|
273
274
|
requirements: []
|
274
|
-
rubygems_version: 3.
|
275
|
+
rubygems_version: 3.5.9
|
275
276
|
signing_key:
|
276
277
|
specification_version: 4
|
277
278
|
summary: An implementation of the AsciiDoc text processor and publishing toolchain
|