asciidoctor 2.0.5 → 2.0.6
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 +13 -0
- data/README-de.adoc +2 -2
- data/README-fr.adoc +2 -2
- data/README-jp.adoc +2 -2
- data/README-zh_CN.adoc +2 -2
- data/README.adoc +2 -2
- data/lib/asciidoctor.rb +5 -3
- data/lib/asciidoctor/abstract_node.rb +9 -8
- data/lib/asciidoctor/converter/html5.rb +5 -2
- data/lib/asciidoctor/document.rb +1 -1
- data/lib/asciidoctor/helpers.rb +43 -3
- data/lib/asciidoctor/reader.rb +9 -9
- data/lib/asciidoctor/substitutors.rb +12 -6
- data/lib/asciidoctor/version.rb +1 -1
- data/man/asciidoctor.1 +4 -4
- data/man/asciidoctor.adoc +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 9066105e2eb3a4a1eef1b7e03730a3daa81e6b0abcfebef789e5c02e4a070db8
|
|
4
|
+
data.tar.gz: 902d0e58872adbafcd81a6faa7373b4e207ad5596ec37f3d1a01a6e83fabfac2
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a77b68c94c63ba1f783cc1e2af7ead46415a8f49f85195f7367f94506b12d1ad19310b142249d534cc61513633ba4ba8e931e744922f4a3bfe92e9b0e9e4d97d
|
|
7
|
+
data.tar.gz: d0a13bb0dfe883cb0a8e6ae949e3f6178de75f57d6d6a35f90ee5954f8b85faa6c76b0c3244a07aca43478daab789a33b3f780faa1e083b27bba5a1eb9f5cf74
|
data/CHANGELOG.adoc
CHANGED
|
@@ -13,6 +13,19 @@ endif::[]
|
|
|
13
13
|
This document provides a high-level view of the changes introduced in Asciidoctor by release.
|
|
14
14
|
For a detailed view of what has changed, refer to the {uri-repo}/commits/master[commit history] on GitHub.
|
|
15
15
|
|
|
16
|
+
== 2.0.6 (2019-04-04) - @mojavelinux
|
|
17
|
+
|
|
18
|
+
Bug Fixes::
|
|
19
|
+
|
|
20
|
+
* assume implicit AsciiDoc extension on interdoc xref macro target with no extension (e.g., `document#`); restores 1.5.x behavior (#3231)
|
|
21
|
+
* don't fail to load application if call to Dir.home fails; use a rescue with fallback values (#3238)
|
|
22
|
+
* Helpers.rootname should only consider final path segment when dropping file extension
|
|
23
|
+
|
|
24
|
+
Improvements::
|
|
25
|
+
|
|
26
|
+
* implement Helpers.extname as a more efficient and flexible File.extname method
|
|
27
|
+
* check for AsciiDoc file extension using end_with? instead of resolving the extname and using a lookup
|
|
28
|
+
|
|
16
29
|
== 2.0.5 (2019-04-01) - @mojavelinux
|
|
17
30
|
|
|
18
31
|
Bug Fixes::
|
data/README-de.adoc
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
= Asciidoctor
|
|
2
2
|
Dan Allen <https://github.com/mojavelinux[@mojavelinux]>; Sarah White <https://github.com/graphitefriction[@graphitefriction]>; Ryan Waldron <https://github.com/erebor[@erebor]>
|
|
3
|
-
v2.0.
|
|
3
|
+
v2.0.6, 2019-04-04
|
|
4
4
|
// settings:
|
|
5
5
|
:idprefix:
|
|
6
6
|
:idseparator: -
|
|
@@ -17,7 +17,7 @@ ifdef::env-github[]
|
|
|
17
17
|
:warning-caption: :warning:
|
|
18
18
|
endif::[]
|
|
19
19
|
// Variables:
|
|
20
|
-
:release-version: 2.0.
|
|
20
|
+
:release-version: 2.0.6
|
|
21
21
|
// URIs:
|
|
22
22
|
:uri-org: https://github.com/asciidoctor
|
|
23
23
|
:uri-repo: {uri-org}/asciidoctor
|
data/README-fr.adoc
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
= Asciidoctor
|
|
2
2
|
Dan Allen <https://github.com/mojavelinux[@mojavelinux]>; Sarah White <https://github.com/graphitefriction[@graphitefriction]>; Ryan Waldron <https://github.com/erebor[@erebor]>
|
|
3
|
-
v2.0.
|
|
3
|
+
v2.0.6, 2019-04-04
|
|
4
4
|
// settings:
|
|
5
5
|
:idprefix:
|
|
6
6
|
:idseparator: -
|
|
@@ -17,7 +17,7 @@ ifdef::env-github[]
|
|
|
17
17
|
:warning-caption: :warning:
|
|
18
18
|
endif::[]
|
|
19
19
|
// Variables:
|
|
20
|
-
:release-version: 2.0.
|
|
20
|
+
:release-version: 2.0.6
|
|
21
21
|
// URIs:
|
|
22
22
|
:uri-org: https://github.com/asciidoctor
|
|
23
23
|
:uri-repo: {uri-org}/asciidoctor
|
data/README-jp.adoc
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
= Asciidoctor
|
|
2
2
|
Dan Allen <https://github.com/mojavelinux[@mojavelinux]>; Sarah White <https://github.com/graphitefriction[@graphitefriction]>; Ryan Waldron <https://github.com/erebor[@erebor]>
|
|
3
|
-
v2.0.
|
|
3
|
+
v2.0.6, 2019-04-04
|
|
4
4
|
// settings:
|
|
5
5
|
:page-layout: base
|
|
6
6
|
:idprefix:
|
|
@@ -18,7 +18,7 @@ ifdef::env-github[]
|
|
|
18
18
|
:warning-caption: :warning:
|
|
19
19
|
endif::[]
|
|
20
20
|
// Variables:
|
|
21
|
-
:release-version: 2.0.
|
|
21
|
+
:release-version: 2.0.6
|
|
22
22
|
// URIs:
|
|
23
23
|
:uri-org: https://github.com/asciidoctor
|
|
24
24
|
:uri-repo: {uri-org}/asciidoctor
|
data/README-zh_CN.adoc
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
= Asciidoctor
|
|
2
2
|
Dan Allen <https://github.com/mojavelinux[@mojavelinux]>; Sarah White <https://github.com/graphitefriction[@graphitefriction]>; Ryan Waldron <https://github.com/erebor[@erebor]>
|
|
3
|
-
v2.0.
|
|
3
|
+
v2.0.6, 2019-04-04
|
|
4
4
|
// settings:
|
|
5
5
|
:page-layout: base
|
|
6
6
|
:idprefix:
|
|
@@ -18,7 +18,7 @@ ifdef::env-github[]
|
|
|
18
18
|
:warning-caption: :warning:
|
|
19
19
|
endif::[]
|
|
20
20
|
// Variables:
|
|
21
|
-
:release-version: 2.0.
|
|
21
|
+
:release-version: 2.0.6
|
|
22
22
|
// URIs:
|
|
23
23
|
:uri-org: https://github.com/asciidoctor
|
|
24
24
|
:uri-repo: {uri-org}/asciidoctor
|
data/README.adoc
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
= Asciidoctor
|
|
2
2
|
Dan Allen <https://github.com/mojavelinux[@mojavelinux]>; Sarah White <https://github.com/graphitefriction[@graphitefriction]>; Ryan Waldron <https://github.com/erebor[@erebor]>
|
|
3
|
-
v2.0.
|
|
3
|
+
v2.0.6, 2019-04-04
|
|
4
4
|
// settings:
|
|
5
5
|
:idprefix:
|
|
6
6
|
:idseparator: -
|
|
@@ -17,7 +17,7 @@ ifdef::env-github[]
|
|
|
17
17
|
:warning-caption: :warning:
|
|
18
18
|
endif::[]
|
|
19
19
|
// Variables:
|
|
20
|
-
:release-version: 2.0.
|
|
20
|
+
:release-version: 2.0.6
|
|
21
21
|
// URIs:
|
|
22
22
|
:uri-org: https://github.com/asciidoctor
|
|
23
23
|
:uri-repo: {uri-org}/asciidoctor
|
data/lib/asciidoctor.rb
CHANGED
|
@@ -185,7 +185,8 @@ module Asciidoctor
|
|
|
185
185
|
DATA_DIR = ::File.join ROOT_DIR, 'data'
|
|
186
186
|
|
|
187
187
|
# The user's home directory, as best we can determine it
|
|
188
|
-
|
|
188
|
+
# IMPORTANT this rescue is required for running Asciidoctor on GitHub.com
|
|
189
|
+
USER_HOME = ::Dir.home rescue (::ENV['HOME'] || ::Dir.pwd)
|
|
189
190
|
|
|
190
191
|
# The newline character used for output; stored in constant table as an optimization
|
|
191
192
|
LF = ?\n
|
|
@@ -248,7 +249,8 @@ module Asciidoctor
|
|
|
248
249
|
'asciidoc' => '.adoc'
|
|
249
250
|
}
|
|
250
251
|
|
|
251
|
-
#
|
|
252
|
+
# A map of file extensions that are recognized as AsciiDoc documents
|
|
253
|
+
# TODO .txt should be deprecated
|
|
252
254
|
ASCIIDOC_EXTENSIONS = {
|
|
253
255
|
'.adoc' => true,
|
|
254
256
|
'.asciidoc' => true,
|
|
@@ -1278,7 +1280,7 @@ module Asciidoctor
|
|
|
1278
1280
|
# TODO cli checks if input path can be read and is file, but might want to add check to API too
|
|
1279
1281
|
attrs['docfile'] = input_path = ::File.absolute_path input.path
|
|
1280
1282
|
attrs['docdir'] = ::File.dirname input_path
|
|
1281
|
-
attrs['docname'] = Helpers.basename input_path, (attrs['docfilesuffix'] =
|
|
1283
|
+
attrs['docname'] = Helpers.basename input_path, (attrs['docfilesuffix'] = Helpers.extname input_path)
|
|
1282
1284
|
source = input.read
|
|
1283
1285
|
elsif input.respond_to? :read
|
|
1284
1286
|
# NOTE tty, pipes & sockets can't be rewound, but can't be sniffed easily either
|
|
@@ -280,11 +280,9 @@ class AbstractNode
|
|
|
280
280
|
# Returns A String reference or data URI for an icon image
|
|
281
281
|
def icon_uri name
|
|
282
282
|
if attr? 'icon'
|
|
283
|
-
|
|
284
|
-
if
|
|
285
|
-
|
|
286
|
-
icon = %(#{icon}.#{@document.attr 'icontype', 'png'})
|
|
287
|
-
end
|
|
283
|
+
icon = attr 'icon'
|
|
284
|
+
# QUESTION should we be adding the extension if the icon is an absolute URI?
|
|
285
|
+
icon = %(#{icon}.#{@document.attr 'icontype', 'png'}) unless Helpers.extname? icon
|
|
288
286
|
else
|
|
289
287
|
icon = %(#{name}.#{@document.attr 'icontype', 'png'})
|
|
290
288
|
end
|
|
@@ -359,9 +357,12 @@ class AbstractNode
|
|
|
359
357
|
#
|
|
360
358
|
# Returns A String data URI containing the content of the target image
|
|
361
359
|
def generate_data_uri(target_image, asset_dir_key = nil)
|
|
362
|
-
ext =
|
|
363
|
-
|
|
364
|
-
|
|
360
|
+
if (ext = Helpers.extname target_image, nil)
|
|
361
|
+
mimetype = ext == '.svg' ? 'image/svg+xml' : %(image/#{ext.slice 1, ext.length})
|
|
362
|
+
else
|
|
363
|
+
mimetype = 'application/octet-stream'
|
|
364
|
+
end
|
|
365
|
+
|
|
365
366
|
if asset_dir_key
|
|
366
367
|
image_path = normalize_system_path(target_image, @document.attr(asset_dir_key), nil, target_name: 'image')
|
|
367
368
|
else
|
|
@@ -105,9 +105,12 @@ class Converter::Html5Converter < Converter::Base
|
|
|
105
105
|
result << %(<meta name="copyright" content="#{node.attr 'copyright'}"#{slash}>) if node.attr? 'copyright'
|
|
106
106
|
if node.attr? 'favicon'
|
|
107
107
|
if (icon_href = node.attr 'favicon').empty?
|
|
108
|
-
icon_href
|
|
108
|
+
icon_href = 'favicon.ico'
|
|
109
|
+
icon_type = 'image/x-icon'
|
|
110
|
+
elsif (icon_ext = Helpers.extname icon_href, nil)
|
|
111
|
+
icon_type = icon_ext == '.ico' ? 'image/x-icon' : %(image/#{icon_ext.slice 1, icon_ext.length})
|
|
109
112
|
else
|
|
110
|
-
icon_type =
|
|
113
|
+
icon_type = 'image/x-icon'
|
|
111
114
|
end
|
|
112
115
|
result << %(<link rel="icon" type="#{icon_type}" href="#{icon_href}"#{slash}>)
|
|
113
116
|
end
|
data/lib/asciidoctor/document.rb
CHANGED
|
@@ -310,7 +310,7 @@ class Document < AbstractBlock
|
|
|
310
310
|
attr_overrides[key.downcase] = val
|
|
311
311
|
end
|
|
312
312
|
if (to_file = options[:to_file])
|
|
313
|
-
attr_overrides['outfilesuffix'] =
|
|
313
|
+
attr_overrides['outfilesuffix'] = Helpers.extname to_file
|
|
314
314
|
end
|
|
315
315
|
# safely resolve the safe mode from const, int or string
|
|
316
316
|
if !(safe_mode = options[:safe])
|
data/lib/asciidoctor/helpers.rb
CHANGED
|
@@ -159,7 +159,7 @@ module Helpers
|
|
|
159
159
|
|
|
160
160
|
# Public: Removes the file extension from filename and returns the result
|
|
161
161
|
#
|
|
162
|
-
# filename - The String file name to process
|
|
162
|
+
# filename - The String file name to process; expected to be a posix path
|
|
163
163
|
#
|
|
164
164
|
# Examples
|
|
165
165
|
#
|
|
@@ -168,7 +168,11 @@ module Helpers
|
|
|
168
168
|
#
|
|
169
169
|
# Returns the String filename with the file extension removed
|
|
170
170
|
def self.rootname filename
|
|
171
|
-
|
|
171
|
+
if (last_dot_idx = filename.rindex '.')
|
|
172
|
+
(filename.index '/', last_dot_idx) ? filename : (filename.slice 0, last_dot_idx)
|
|
173
|
+
else
|
|
174
|
+
filename
|
|
175
|
+
end
|
|
172
176
|
end
|
|
173
177
|
|
|
174
178
|
# Public: Retrieves the basename of the filename, optionally removing the extension, if present
|
|
@@ -188,12 +192,48 @@ module Helpers
|
|
|
188
192
|
# Returns the String filename with leading directories removed and, if specified, the extension removed
|
|
189
193
|
def self.basename filename, drop_ext = nil
|
|
190
194
|
if drop_ext
|
|
191
|
-
::File.basename filename, (drop_ext == true ? (
|
|
195
|
+
::File.basename filename, (drop_ext == true ? (extname filename) : drop_ext)
|
|
192
196
|
else
|
|
193
197
|
::File.basename filename
|
|
194
198
|
end
|
|
195
199
|
end
|
|
196
200
|
|
|
201
|
+
# Public: Returns whether this path has a file extension.
|
|
202
|
+
#
|
|
203
|
+
# path - The path String to check; expects a posix path
|
|
204
|
+
#
|
|
205
|
+
# Returns true if the path has a file extension, false otherwise
|
|
206
|
+
def self.extname? path
|
|
207
|
+
(last_dot_idx = path.rindex '.') && !(path.index '/', last_dot_idx)
|
|
208
|
+
end
|
|
209
|
+
|
|
210
|
+
# Public: Retrieves the file extension of the specified path. The file extension is the portion of the path in the
|
|
211
|
+
# last path segment starting from the last period.
|
|
212
|
+
#
|
|
213
|
+
# This method differs from File.extname in that it gives us control over the fallback value and is more efficient.
|
|
214
|
+
#
|
|
215
|
+
# path - The path String in which to look for a file extension
|
|
216
|
+
# fallback - The fallback String to return if no file extension is present (optional, default: '')
|
|
217
|
+
#
|
|
218
|
+
# Returns the String file extension (with the leading dot included) or the fallback value if the path has no file extension.
|
|
219
|
+
if ::File::ALT_SEPARATOR
|
|
220
|
+
def self.extname path, fallback = ''
|
|
221
|
+
if (last_dot_idx = path.rindex '.')
|
|
222
|
+
(path.index '/', last_dot_idx) || (path.index ::File::ALT_SEPARATOR, last_dot_idx) ? fallback : (path.slice last_dot_idx, path.length)
|
|
223
|
+
else
|
|
224
|
+
fallback
|
|
225
|
+
end
|
|
226
|
+
end
|
|
227
|
+
else
|
|
228
|
+
def self.extname path, fallback = ''
|
|
229
|
+
if (last_dot_idx = path.rindex '.')
|
|
230
|
+
(path.index '/', last_dot_idx) ? fallback : (path.slice last_dot_idx, path.length)
|
|
231
|
+
else
|
|
232
|
+
fallback
|
|
233
|
+
end
|
|
234
|
+
end
|
|
235
|
+
end
|
|
236
|
+
|
|
197
237
|
# Internal: Make a directory, ensuring all parent directories exist.
|
|
198
238
|
def self.mkdir_p dir
|
|
199
239
|
unless ::File.directory? dir
|
data/lib/asciidoctor/reader.rb
CHANGED
|
@@ -686,20 +686,20 @@ class PreprocessorReader < Reader
|
|
|
686
686
|
(@dir = file.dup).path = (dir = ::File.dirname file.path) == '/' ? '' : dir
|
|
687
687
|
file = file.to_s
|
|
688
688
|
end
|
|
689
|
-
path ||= ::File.basename file
|
|
689
|
+
@path = (path ||= ::File.basename file)
|
|
690
690
|
# only process lines in AsciiDoc files
|
|
691
|
-
@process_lines = ASCIIDOC_EXTENSIONS
|
|
691
|
+
if (@process_lines = file.end_with?(*ASCIIDOC_EXTENSIONS.keys))
|
|
692
|
+
@includes[path.slice 0, (path.rindex '.')] = attributes['partial-option'] ? nil : true
|
|
693
|
+
end
|
|
692
694
|
else
|
|
693
695
|
@dir = '.'
|
|
694
696
|
# we don't know what file type we have, so assume AsciiDoc
|
|
695
697
|
@process_lines = true
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
else
|
|
702
|
-
@path = '<stdin>'
|
|
698
|
+
if (@path = path)
|
|
699
|
+
@includes[Helpers.rootname path] = attributes['partial-option'] ? nil : true
|
|
700
|
+
else
|
|
701
|
+
@path = '<stdin>'
|
|
702
|
+
end
|
|
703
703
|
end
|
|
704
704
|
|
|
705
705
|
@lineno = lineno
|
|
@@ -751,20 +751,26 @@ module Substitutors
|
|
|
751
751
|
path = refid.chop
|
|
752
752
|
end
|
|
753
753
|
if macro
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
754
|
+
if path.end_with? '.adoc'
|
|
755
|
+
src2src = path = path.slice 0, path.length - 5
|
|
756
|
+
elsif !(Helpers.extname? path)
|
|
757
|
+
src2src = path
|
|
758
|
+
end
|
|
759
|
+
elsif path.end_with?(*ASCIIDOC_EXTENSIONS.keys)
|
|
760
|
+
src2src = path = path.slice 0, (path.rindex '.')
|
|
757
761
|
else
|
|
758
762
|
src2src = path
|
|
759
763
|
end
|
|
760
764
|
else
|
|
761
765
|
target, fragment = refid, (refid.slice 1, refid.length)
|
|
762
766
|
end
|
|
763
|
-
elsif macro
|
|
767
|
+
elsif macro
|
|
764
768
|
if refid.end_with? '.adoc'
|
|
765
|
-
src2src =
|
|
766
|
-
|
|
769
|
+
src2src = path = refid.slice 0, refid.length - 5
|
|
770
|
+
elsif Helpers.extname? refid
|
|
767
771
|
path = refid
|
|
772
|
+
else
|
|
773
|
+
fragment = refid
|
|
768
774
|
end
|
|
769
775
|
else
|
|
770
776
|
fragment = refid
|
data/lib/asciidoctor/version.rb
CHANGED
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.
|
|
5
|
-
.\" Date: 2019-04-
|
|
4
|
+
.\" Generator: Asciidoctor 2.0.6
|
|
5
|
+
.\" Date: 2019-04-04
|
|
6
6
|
.\" Manual: Asciidoctor Manual
|
|
7
|
-
.\" Source: Asciidoctor 2.0.
|
|
7
|
+
.\" Source: Asciidoctor 2.0.6
|
|
8
8
|
.\" Language: English
|
|
9
9
|
.\"
|
|
10
|
-
.TH "ASCIIDOCTOR" "1" "2019-04-
|
|
10
|
+
.TH "ASCIIDOCTOR" "1" "2019-04-04" "Asciidoctor 2.0.6" "Asciidoctor Manual"
|
|
11
11
|
.ie \n(.g .ds Aq \(aq
|
|
12
12
|
.el .ds Aq '
|
|
13
13
|
.ss \n[.ss] 0
|
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.6
|
|
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: 2019-04-
|
|
16
|
+
date: 2019-04-04 00:00:00.000000000 Z
|
|
17
17
|
dependencies:
|
|
18
18
|
- !ruby/object:Gem::Dependency
|
|
19
19
|
name: asciimath
|