asciidoctor-reducer 1.0.0.alpha.4 → 1.0.0.alpha.5
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8e5bfad3f3b343a1fd2741938d31812feac3218e8b6998d43b3614b6800874b0
|
4
|
+
data.tar.gz: 443bcb83342bb51cf3537b9b5cba497b7a1f5340eb7e7fb0956e85746344f917
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b52ca3132349b059d672bab08dd1b1c5a2586d88e8f4f31eb8d2ae7f0f9891917f0ee0cd46bd63826e7127cb8a64fda650bc5a13815760d299c06c6e5181e02b
|
7
|
+
data.tar.gz: 6bdb49618d5adb7b1ce702d266ee8d6a229545b6ca8676931083df9362b21aaedabf539c7d1c4ea5c2fabecbb25426a9bcc140d80ffce93cd9b6da52bdc0e4cd
|
data/CHANGELOG.adoc
CHANGED
@@ -4,6 +4,19 @@
|
|
4
4
|
This document provides a high-level view of the changes to the Asciidoctor Reducer by release.
|
5
5
|
For a detailed view of what has changed, refer to the {url-repo}/commits/main[commit history] on GitHub.
|
6
6
|
|
7
|
+
== 1.0.0.alpha.5 (2022-02-06) - @mojavelinux
|
8
|
+
|
9
|
+
=== Changed
|
10
|
+
|
11
|
+
* Removing trailing empty lines after reducing when sourcemap is not enabled
|
12
|
+
* Remove unnecessary override of lineno in preprocess_include_directive override
|
13
|
+
* Simplify how include replacement target is tracked
|
14
|
+
* Classify extensions in group named `:reducer`
|
15
|
+
|
16
|
+
=== Fixed
|
17
|
+
|
18
|
+
* Suppress log messages when reloading document (#14)
|
19
|
+
|
7
20
|
== 1.0.0.alpha.4 (2022-02-03) - @mojavelinux
|
8
21
|
|
9
22
|
=== Fixed
|
@@ -57,3 +70,7 @@ Initial release.
|
|
57
70
|
=== Details
|
58
71
|
|
59
72
|
{url-repo}/releases/tag/v1.0.0.alpha.4[git tag]
|
73
|
+
|
74
|
+
=== Details
|
75
|
+
|
76
|
+
{url-repo}/releases/tag/v1.0.0.alpha.5[git tag]
|
data/README.adoc
CHANGED
@@ -6,8 +6,9 @@ module Asciidoctor::Reducer
|
|
6
6
|
attr_reader :x_include_replacements
|
7
7
|
|
8
8
|
def self.extended instance
|
9
|
-
instance.instance_variable_set :@x_include_replacements, ([{ drop: [] }].extend
|
10
|
-
instance.instance_variable_set :@
|
9
|
+
instance.instance_variable_set :@x_include_replacements, ([{ drop: [] }].extend CurrentPosition)
|
10
|
+
instance.instance_variable_set :@x_include_directive_line, nil
|
11
|
+
instance.instance_variable_set :@x_include_pushed, nil
|
11
12
|
end
|
12
13
|
|
13
14
|
def preprocess_conditional_directive keyword, target, delimiter, text
|
@@ -34,71 +35,58 @@ module Asciidoctor::Reducer
|
|
34
35
|
|
35
36
|
def preprocess_include_directive target, attrlist
|
36
37
|
@x_include_directive_line = %(include::#{target}[#{attrlist}])
|
37
|
-
@
|
38
|
+
@x_include_pushed = false
|
38
39
|
inc_lineno = @lineno - 1 # we're currently on the include line, which is 1-based
|
39
40
|
result = super
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
unless @include_stack.length < parent_depth
|
44
|
-
parents << @x_include_replacements.length.pred
|
45
|
-
parent_depth += 1
|
41
|
+
if @x_include_pushed
|
42
|
+
@x_include_directive_line = @x_include_pushed = nil
|
43
|
+
return result
|
46
44
|
end
|
47
45
|
inc_lines = ((line = lines[0].to_s).start_with? 'Unresolved directive in ') && (line.end_with? ']') ? [line] : []
|
48
|
-
push_include_replacement
|
46
|
+
push_include_replacement inc_lineno, inc_lines
|
47
|
+
@x_include_directive_line = @x_include_pushed = nil
|
49
48
|
result
|
50
49
|
end
|
51
50
|
|
52
51
|
def push_include data, file, path, lineno, attrs
|
53
|
-
@
|
52
|
+
@x_include_pushed = true
|
54
53
|
inc_lineno = @lineno - 2 # we're below the include line, which is 1-based
|
55
54
|
prev_inc_depth = @include_stack.length
|
56
|
-
# Q: can we do this without resetting the lineno?
|
57
|
-
lineno = 1 # rubocop:disable Lint/ShadowedArgument
|
58
55
|
result = super
|
59
|
-
|
60
|
-
|
61
|
-
if (inc_depth = @include_stack.length) == prev_inc_depth
|
62
|
-
depth_change = inc_depth - (parent_depth - 1)
|
63
|
-
else
|
64
|
-
depth_change = inc_depth - parent_depth
|
65
|
-
inc_lines = lines
|
66
|
-
end
|
67
|
-
if depth_change > 0
|
68
|
-
parents << @x_include_replacements.length.pred
|
69
|
-
parent_depth += 1
|
70
|
-
elsif depth_change < 0
|
71
|
-
parent_depth -= (parents.slice! parent_depth + depth_change, -depth_change).length
|
72
|
-
end
|
73
|
-
push_include_replacement inc_lines, parent_depth, inc_lineno
|
56
|
+
inc_lines = lines if @include_stack.length > prev_inc_depth
|
57
|
+
push_include_replacement inc_lineno, inc_lines
|
74
58
|
result
|
75
59
|
end
|
76
60
|
|
77
61
|
def pop_include
|
78
|
-
@x_include_replacements.
|
62
|
+
@x_include_replacements.pos = @x_include_replacements.current[:into] unless @x_include_pushed
|
79
63
|
super
|
80
64
|
end
|
81
65
|
|
82
66
|
private
|
83
67
|
|
84
|
-
def push_include_replacement
|
68
|
+
def push_include_replacement inc_lineno, inc_lines
|
85
69
|
@x_include_replacements << {
|
70
|
+
into: @x_include_replacements.pos,
|
71
|
+
lineno: inc_lineno,
|
72
|
+
line: @x_include_directive_line,
|
86
73
|
lines: inc_lines || [],
|
87
74
|
drop: [],
|
88
|
-
into: @x_parents[parent_depth - 1],
|
89
|
-
index: inc_lineno,
|
90
|
-
replace: @x_include_directive_line,
|
91
75
|
}
|
92
|
-
@x_include_replacements.
|
76
|
+
@x_include_replacements.pos = @x_include_replacements.length - 1 if inc_lines
|
93
77
|
nil
|
94
78
|
end
|
95
79
|
end
|
96
80
|
|
97
|
-
module
|
98
|
-
attr_accessor :
|
81
|
+
module CurrentPosition
|
82
|
+
attr_accessor :pos
|
99
83
|
|
100
84
|
def self.extended instance
|
101
|
-
instance.
|
85
|
+
instance.pos = instance.length - 1
|
86
|
+
end
|
87
|
+
|
88
|
+
def current
|
89
|
+
self[@pos]
|
102
90
|
end
|
103
91
|
end
|
104
92
|
end
|
@@ -4,14 +4,13 @@ module Asciidoctor::Reducer
|
|
4
4
|
class TreeProcessor < ::Asciidoctor::Extensions::TreeProcessor
|
5
5
|
def process doc
|
6
6
|
return if doc.options[:reduced]
|
7
|
-
inc_replacements = doc.reader.x_include_replacements
|
8
|
-
unless inc_replacements.length == 1 && inc_replacements[0][:drop].empty?
|
7
|
+
unless (inc_replacements = doc.reader.x_include_replacements).length == 1 && inc_replacements[0][:drop].empty?
|
9
8
|
inc_replacements[0][:lines] = doc.source_lines.dup
|
10
9
|
inc_replacements.reverse_each do |it|
|
11
10
|
if (into = it[:into])
|
12
11
|
target_lines = inc_replacements[into][:lines]
|
13
12
|
# adds extra bit of assurance that we're replacing the correct line
|
14
|
-
next unless target_lines[(index = it[:
|
13
|
+
next unless target_lines[(index = it[:lineno])] == it[:line]
|
15
14
|
end
|
16
15
|
lines = it[:lines]
|
17
16
|
unless (drop = it[:drop]).empty?
|
@@ -21,9 +20,11 @@ module Asciidoctor::Reducer
|
|
21
20
|
end
|
22
21
|
source_lines = inc_replacements[0][:lines].flatten
|
23
22
|
if doc.sourcemap
|
24
|
-
|
25
|
-
doc = ::Asciidoctor.load source_lines, (doc.options.merge reduced: true)
|
23
|
+
logger = ::Asciidoctor::LoggerManager.logger
|
24
|
+
doc = ::Asciidoctor.load source_lines, (doc.options.merge logger: false, reduced: true)
|
25
|
+
::Asciidoctor::LoggerManager.logger = logger
|
26
26
|
else
|
27
|
+
source_lines.pop while (last = source_lines[-1]) && last.empty?
|
27
28
|
doc.reader.source_lines = source_lines
|
28
29
|
end
|
29
30
|
end
|
data/lib/asciidoctor/reducer.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: asciidoctor-reducer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.0.alpha.
|
4
|
+
version: 1.0.0.alpha.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dan Allen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-02-
|
11
|
+
date: 2022-02-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: asciidoctor
|