asciidoctor-reducer 1.0.0 → 1.0.1
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 +11 -0
- data/README.adoc +1 -1
- data/lib/asciidoctor/reducer/cli.rb +1 -1
- data/lib/asciidoctor/reducer/conditional_directive_tracker.rb +6 -6
- data/lib/asciidoctor/reducer/include_directive_tracker.rb +7 -10
- data/lib/asciidoctor/reducer/preprocessor.rb +2 -1
- data/lib/asciidoctor/reducer/tree_processor.rb +4 -4
- data/lib/asciidoctor/reducer/version.rb +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: '042939f0b251163208b57a67bed8a7b16d15d0972a616e67c171b8462a5ae61b'
|
4
|
+
data.tar.gz: 9065fc1b7a742f057441f873956883e6c87ba88afb1984496c821f378e666e2b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 53e3e2cd52cf60ff810b93c5409cf521c1e5509106c8cece15ac89262d5a7d0ac998b2369ebb1cd8854675de930ea3a2f10c762bf072f758db663f3b6e7aa0ed
|
7
|
+
data.tar.gz: 1785df7825bd0fb902dd619bf42b2de90360acdf975f3356ca5ad8ed7b65a32c71c8824b51b966aecce774078d14d5c6dcdf281d899eb6f54e61307dbec0b0ce
|
data/CHANGELOG.adoc
CHANGED
@@ -4,6 +4,17 @@
|
|
4
4
|
This document provides a curated view of the changes to Asciidoctor Reducer in each 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.1 (2022-05-08) - @mojavelinux
|
8
|
+
|
9
|
+
=== Changed
|
10
|
+
|
11
|
+
* Use summary from gemspec in help text for `asciidoctor-reducer` command
|
12
|
+
* Consistently access `source_lines` from document; use `#replace` to update
|
13
|
+
|
14
|
+
=== Details
|
15
|
+
|
16
|
+
{url-repo}/releases/tag/v1.0.1[git tag] | {url-repo}/compare/v1.0.0\...v1.0.1[full diff]
|
17
|
+
|
7
18
|
== 1.0.0 (2022-04-22) - @mojavelinux
|
8
19
|
|
9
20
|
_No changes since previous release._
|
data/README.adoc
CHANGED
@@ -14,7 +14,7 @@ module Asciidoctor::Reducer
|
|
14
14
|
opts.banner = <<~END
|
15
15
|
Usage: #{opts.program_name} [OPTION]... FILE
|
16
16
|
|
17
|
-
|
17
|
+
#{::Gem.loaded_specs['asciidoctor-reducer'].summary}
|
18
18
|
|
19
19
|
END
|
20
20
|
|
@@ -5,20 +5,20 @@ module Asciidoctor::Reducer
|
|
5
5
|
def preprocess_conditional_directive keyword, target, delimiter, text
|
6
6
|
skip_active = @skipping
|
7
7
|
depth = @conditional_stack.size
|
8
|
-
|
8
|
+
directive_lineno = @lineno
|
9
9
|
result = super
|
10
10
|
return result if @skipping && skip_active
|
11
11
|
drop = @include_replacements.current[:drop] ||= []
|
12
12
|
if (depth_change = @conditional_stack.size - depth) < 0
|
13
13
|
if skip_active
|
14
|
-
drop.push(*(drop.pop..
|
14
|
+
drop.push(*(drop.pop..directive_lineno))
|
15
15
|
else
|
16
|
-
drop <<
|
16
|
+
drop << directive_lineno
|
17
17
|
end
|
18
|
-
elsif depth_change > 0 ||
|
19
|
-
drop <<
|
18
|
+
elsif depth_change > 0 || directive_lineno == @lineno
|
19
|
+
drop << directive_lineno
|
20
20
|
else
|
21
|
-
drop << [
|
21
|
+
drop << [directive_lineno, text]
|
22
22
|
end
|
23
23
|
result
|
24
24
|
end
|
@@ -2,10 +2,8 @@
|
|
2
2
|
|
3
3
|
module Asciidoctor::Reducer
|
4
4
|
module IncludeDirectiveTracker
|
5
|
-
attr_reader :include_replacements
|
6
|
-
attr_writer :source_lines
|
7
|
-
|
8
5
|
def self.extended instance
|
6
|
+
instance.singleton_class.send :attr_reader, :include_replacements
|
9
7
|
instance.instance_variable_set :@include_replacements, ([{}].extend CurrentPosition)
|
10
8
|
instance.instance_variable_set :@x_reducer, {}
|
11
9
|
end
|
@@ -13,14 +11,14 @@ module Asciidoctor::Reducer
|
|
13
11
|
def preprocess_include_directive target, attrlist
|
14
12
|
@x_reducer[:include_directive_line] = %(include::#{target}[#{attrlist}])
|
15
13
|
@x_reducer[:include_pushed] = false
|
16
|
-
|
14
|
+
directive_lineno = @lineno # we're currently on the include line, which is 1-based
|
17
15
|
result = super
|
18
16
|
unless @x_reducer[:include_pushed]
|
19
17
|
if ((ln = peek_line true)&.end_with? ']') && !(unresolved = ln.start_with? 'Unresolved directive in ') &&
|
20
|
-
|
18
|
+
directive_lineno == @lineno && (unresolved = ln.start_with? 'link:')
|
21
19
|
ln = %(#{ln.slice 0, (ln.length - 1)}role=include])
|
22
20
|
end
|
23
|
-
push_include_replacement
|
21
|
+
push_include_replacement directive_lineno, (unresolved ? [ln] : []), unresolved
|
24
22
|
end
|
25
23
|
@x_reducer.clear
|
26
24
|
result
|
@@ -28,10 +26,10 @@ module Asciidoctor::Reducer
|
|
28
26
|
|
29
27
|
def push_include data, file, path, lineno, attrs
|
30
28
|
@x_reducer[:include_pushed] = true
|
31
|
-
|
29
|
+
directive_lineno = @lineno - 1 # we're below the include line, which is 1-based
|
32
30
|
prev_inc_depth = @include_stack.size
|
33
31
|
result = super
|
34
|
-
push_include_replacement
|
32
|
+
push_include_replacement directive_lineno, (@include_stack.size > prev_inc_depth ? lines : [])
|
35
33
|
result
|
36
34
|
end
|
37
35
|
|
@@ -55,9 +53,8 @@ module Asciidoctor::Reducer
|
|
55
53
|
end
|
56
54
|
|
57
55
|
module CurrentPosition
|
58
|
-
attr_reader :pointer
|
59
|
-
|
60
56
|
def self.extended instance
|
57
|
+
instance.singleton_class.send :attr_reader, :pointer
|
61
58
|
instance.to_end
|
62
59
|
end
|
63
60
|
|
@@ -7,7 +7,8 @@ module Asciidoctor::Reducer
|
|
7
7
|
class Preprocessor < ::Asciidoctor::Extensions::Preprocessor
|
8
8
|
def process doc, reader
|
9
9
|
doc.options[:preserve_conditionals] ?
|
10
|
-
(reader.extend IncludeDirectiveTracker) :
|
10
|
+
(reader.extend IncludeDirectiveTracker) :
|
11
|
+
(reader.extend ConditionalDirectiveTracker, IncludeDirectiveTracker)
|
11
12
|
end
|
12
13
|
end
|
13
14
|
end
|
@@ -19,7 +19,7 @@ module Asciidoctor::Reducer
|
|
19
19
|
end
|
20
20
|
target_lines[idx] = lines if target_lines
|
21
21
|
end
|
22
|
-
|
22
|
+
reduced_source_lines = inc_replacements[0][:lines].flatten
|
23
23
|
if doc.sourcemap
|
24
24
|
logger = ::Asciidoctor::LoggerManager.logger
|
25
25
|
opts = doc.options.merge logger: nil, parse: false, reduced: true
|
@@ -27,13 +27,13 @@ module Asciidoctor::Reducer
|
|
27
27
|
opts[:extension_registry] = ::Asciidoctor::Extensions::Registry.new ext_reg.groups
|
28
28
|
end
|
29
29
|
includes = doc.catalog[:includes]
|
30
|
-
doc = ::Asciidoctor.load
|
30
|
+
doc = ::Asciidoctor.load reduced_source_lines, opts
|
31
31
|
doc.catalog[:includes] = includes
|
32
32
|
doc.parse
|
33
33
|
::Asciidoctor::LoggerManager.logger = logger
|
34
34
|
else
|
35
|
-
|
36
|
-
doc.
|
35
|
+
reduced_source_lines.pop while reduced_source_lines[-1] == ''
|
36
|
+
doc.source_lines.replace reduced_source_lines
|
37
37
|
end
|
38
38
|
end
|
39
39
|
doc
|
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.
|
4
|
+
version: 1.0.1
|
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-
|
11
|
+
date: 2022-05-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: asciidoctor
|