asciidoctor-dita-topic 1.4.7 → 1.4.8
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/lib/dita-topic/cli.rb +5 -80
- data/lib/dita-topic/version.rb +1 -1
- metadata +41 -9
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: fa920fa9fdc9383aca4b8411314622cb154dd6ada686b0b12f997e6e184b2a65
|
|
4
|
+
data.tar.gz: 56888969b54b717a5f716684e210688b04bd7a4b31e7023437faf5860992eaa5
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ac7bb7c93a66b5b0b2ffd1cb202fc09e42c1944f3e98f60a79c6a06c7d8b271b9e549fa1f4362e7d78295d171ed8e54f9668d2daa5f85d23740ebcfb00667b1c
|
|
7
|
+
data.tar.gz: 0f1722b7ea6b5adb0cdfa8a9816ccb85a98bb9f924b936acc08ad725b1f9b5e9133bd266bfa00321ae576d10f50a23627d3b2d05345ca2a5d6ad7a8943965b7f
|
data/lib/dita-topic/cli.rb
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright (C) 2025 Jaromir Hradilek
|
|
1
|
+
# Copyright (C) 2025, 2026 Jaromir Hradilek
|
|
2
2
|
|
|
3
3
|
# MIT License
|
|
4
4
|
#
|
|
@@ -34,7 +34,6 @@ module AsciidoctorDitaTopic
|
|
|
34
34
|
@opts = {
|
|
35
35
|
:output => false,
|
|
36
36
|
:standalone => true,
|
|
37
|
-
:map => false,
|
|
38
37
|
:no_includes => 0
|
|
39
38
|
}
|
|
40
39
|
@prep = []
|
|
@@ -61,10 +60,6 @@ module AsciidoctorDitaTopic
|
|
|
61
60
|
|
|
62
61
|
opt.separator ''
|
|
63
62
|
|
|
64
|
-
opt.on('-m', '--dita-map', 'generate a DITA map instead of a topic; this functionality is experimental and not yet fully tested') do
|
|
65
|
-
@opts[:map] = true
|
|
66
|
-
end
|
|
67
|
-
|
|
68
63
|
opt.on('-p', '--prepend-file FILE', 'prepend a file to all input files; can be supplied multiple times') do |file|
|
|
69
64
|
raise OptionParser::InvalidArgument, "not a file: #{file}" unless File.exist? file and File.file? file
|
|
70
65
|
raise OptionParser::InvalidArgument, "file not readable: #{file}" unless File.readable? file
|
|
@@ -125,73 +120,6 @@ module AsciidoctorDitaTopic
|
|
|
125
120
|
return args
|
|
126
121
|
end
|
|
127
122
|
|
|
128
|
-
def convert_map file, input, base_dir
|
|
129
|
-
if file == $stdin
|
|
130
|
-
offset = 0
|
|
131
|
-
else
|
|
132
|
-
file = Pathname.new(file).sub_ext('.dita').basename
|
|
133
|
-
offset = 1
|
|
134
|
-
end
|
|
135
|
-
|
|
136
|
-
doc = Asciidoctor.load input, backend: 'dita-topic', safe: :unsafe, attributes: @attr, base_dir: base_dir, sourcemap: true
|
|
137
|
-
sections = doc.find_by context: :section
|
|
138
|
-
|
|
139
|
-
return unless sections
|
|
140
|
-
|
|
141
|
-
title = (sections.first.level == 0 and sections.first.title) ? sections.first.title : false
|
|
142
|
-
|
|
143
|
-
if @opts[:standalone]
|
|
144
|
-
result = ["<?xml version='1.0' encoding='utf-8' ?>"]
|
|
145
|
-
result << %(<!DOCTYPE map PUBLIC "-//OASIS//DTD DITA Map//EN" "map.dtd">)
|
|
146
|
-
result << %(<map>)
|
|
147
|
-
result << %( <title>#{title}</title>) if title
|
|
148
|
-
else
|
|
149
|
-
result = []
|
|
150
|
-
end
|
|
151
|
-
|
|
152
|
-
last_level = 0
|
|
153
|
-
last_file = ''
|
|
154
|
-
|
|
155
|
-
sections.each_index do |i|
|
|
156
|
-
section = sections[i]
|
|
157
|
-
level = section.level
|
|
158
|
-
title = section.title.gsub(/"|<[^>]*>|[<>]/, '')
|
|
159
|
-
filename = section.file ? Pathname.new(section.file).sub_ext('.dita').relative_path_from(base_dir) : Pathname.new(file)
|
|
160
|
-
current = last_level
|
|
161
|
-
|
|
162
|
-
next if filename == last_file
|
|
163
|
-
|
|
164
|
-
while current > level
|
|
165
|
-
current -= 1
|
|
166
|
-
result << ' ' * (current + offset) + %(</topicref>)
|
|
167
|
-
end
|
|
168
|
-
|
|
169
|
-
if level - last_level > 1
|
|
170
|
-
warn "WARNING: #{filename.basename}: line #{section.lineno}: section title out of sequence: expected level #{last_level + 1}, got level #{level}"
|
|
171
|
-
level = last_level + 1
|
|
172
|
-
end
|
|
173
|
-
|
|
174
|
-
indent = ' ' * (level + offset)
|
|
175
|
-
parent = (sections[i + 1] and sections[i + 1].level > level) ? true : false
|
|
176
|
-
result << indent + %(<topicref href="#{filename}" navtitle="#{title}"#{parent ? '>' : ' />'}) unless filename == $stdin
|
|
177
|
-
|
|
178
|
-
last_level = level
|
|
179
|
-
last_file = filename
|
|
180
|
-
end
|
|
181
|
-
|
|
182
|
-
while last_level > 0
|
|
183
|
-
last_level -= 1
|
|
184
|
-
break if last_level == 0 and file == $stdin
|
|
185
|
-
result << ' ' * (last_level + offset) + %(</topicref>)
|
|
186
|
-
end
|
|
187
|
-
|
|
188
|
-
if @opts[:standalone]
|
|
189
|
-
result << %(</map>)
|
|
190
|
-
end
|
|
191
|
-
|
|
192
|
-
return result.join("\n")
|
|
193
|
-
end
|
|
194
|
-
|
|
195
123
|
def convert_topic input, base_dir
|
|
196
124
|
return Asciidoctor.convert input, backend: 'dita-topic', standalone: @opts[:standalone], safe: :unsafe, attributes: @attr, base_dir: base_dir
|
|
197
125
|
end
|
|
@@ -210,21 +138,18 @@ module AsciidoctorDitaTopic
|
|
|
210
138
|
input = $stdin.read
|
|
211
139
|
output = @opts[:output] ? @opts[:output] : $stdout
|
|
212
140
|
else
|
|
213
|
-
suffix = @opts[:map] ? '.ditamap' : '.dita'
|
|
214
141
|
base_dir = Pathname.new(file).dirname.expand_path
|
|
215
142
|
input = File.read(file)
|
|
216
|
-
output = @opts[:output] ? @opts[:output] : Pathname.new(file).sub_ext(
|
|
143
|
+
output = @opts[:output] ? @opts[:output] : Pathname.new(file).sub_ext('.dita').to_s
|
|
217
144
|
end
|
|
218
145
|
|
|
219
146
|
prepended.gsub!(/^:_(?:mod-docs-content|content|module)-type:[ \t]+\S/, '//\&')
|
|
220
147
|
prepended.gsub!(Asciidoctor::IncludeDirectiveRx, '//\&') if @opts[:no_includes] > 1
|
|
221
148
|
input.gsub!(Asciidoctor::IncludeDirectiveRx, '//\&') if @opts[:no_includes] > 0
|
|
222
149
|
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
result = convert_topic prepended + input, base_dir
|
|
227
|
-
end
|
|
150
|
+
result = convert_topic prepended + input, base_dir
|
|
151
|
+
|
|
152
|
+
result.gsub!(/<ph (?:(?:platform|product|audience|otherprops)="[^"]+" ?)+><\/ph> */, '')
|
|
228
153
|
|
|
229
154
|
if output == $stdout
|
|
230
155
|
$stdout.write result
|
data/lib/dita-topic/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: asciidoctor-dita-topic
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.4.
|
|
4
|
+
version: 1.4.8
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Jaromir Hradilek
|
|
@@ -18,7 +18,7 @@ dependencies:
|
|
|
18
18
|
version: '2.0'
|
|
19
19
|
- - ">="
|
|
20
20
|
- !ruby/object:Gem::Version
|
|
21
|
-
version: 2.0.
|
|
21
|
+
version: 2.0.26
|
|
22
22
|
type: :runtime
|
|
23
23
|
prerelease: false
|
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -28,49 +28,81 @@ dependencies:
|
|
|
28
28
|
version: '2.0'
|
|
29
29
|
- - ">="
|
|
30
30
|
- !ruby/object:Gem::Version
|
|
31
|
-
version: 2.0.
|
|
31
|
+
version: 2.0.26
|
|
32
32
|
- !ruby/object:Gem::Dependency
|
|
33
33
|
name: rake
|
|
34
34
|
requirement: !ruby/object:Gem::Requirement
|
|
35
35
|
requirements:
|
|
36
36
|
- - "~>"
|
|
37
37
|
- !ruby/object:Gem::Version
|
|
38
|
-
version:
|
|
38
|
+
version: '13.3'
|
|
39
|
+
- - ">="
|
|
40
|
+
- !ruby/object:Gem::Version
|
|
41
|
+
version: 13.3.1
|
|
39
42
|
type: :development
|
|
40
43
|
prerelease: false
|
|
41
44
|
version_requirements: !ruby/object:Gem::Requirement
|
|
42
45
|
requirements:
|
|
43
46
|
- - "~>"
|
|
44
47
|
- !ruby/object:Gem::Version
|
|
45
|
-
version:
|
|
48
|
+
version: '13.3'
|
|
49
|
+
- - ">="
|
|
50
|
+
- !ruby/object:Gem::Version
|
|
51
|
+
version: 13.3.1
|
|
46
52
|
- !ruby/object:Gem::Dependency
|
|
47
53
|
name: minitest
|
|
48
54
|
requirement: !ruby/object:Gem::Requirement
|
|
49
55
|
requirements:
|
|
50
56
|
- - "~>"
|
|
51
57
|
- !ruby/object:Gem::Version
|
|
52
|
-
version:
|
|
58
|
+
version: '6.0'
|
|
59
|
+
- - ">="
|
|
60
|
+
- !ruby/object:Gem::Version
|
|
61
|
+
version: 6.0.2
|
|
53
62
|
type: :development
|
|
54
63
|
prerelease: false
|
|
55
64
|
version_requirements: !ruby/object:Gem::Requirement
|
|
56
65
|
requirements:
|
|
57
66
|
- - "~>"
|
|
58
67
|
- !ruby/object:Gem::Version
|
|
59
|
-
version:
|
|
68
|
+
version: '6.0'
|
|
69
|
+
- - ">="
|
|
70
|
+
- !ruby/object:Gem::Version
|
|
71
|
+
version: 6.0.2
|
|
72
|
+
- !ruby/object:Gem::Dependency
|
|
73
|
+
name: minitest-mock
|
|
74
|
+
requirement: !ruby/object:Gem::Requirement
|
|
75
|
+
requirements:
|
|
76
|
+
- - "~>"
|
|
77
|
+
- !ruby/object:Gem::Version
|
|
78
|
+
version: '5.27'
|
|
79
|
+
type: :development
|
|
80
|
+
prerelease: false
|
|
81
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
82
|
+
requirements:
|
|
83
|
+
- - "~>"
|
|
84
|
+
- !ruby/object:Gem::Version
|
|
85
|
+
version: '5.27'
|
|
60
86
|
- !ruby/object:Gem::Dependency
|
|
61
87
|
name: rexml
|
|
62
88
|
requirement: !ruby/object:Gem::Requirement
|
|
63
89
|
requirements:
|
|
64
90
|
- - "~>"
|
|
65
91
|
- !ruby/object:Gem::Version
|
|
66
|
-
version: 3.
|
|
92
|
+
version: '3.4'
|
|
93
|
+
- - ">="
|
|
94
|
+
- !ruby/object:Gem::Version
|
|
95
|
+
version: 3.4.4
|
|
67
96
|
type: :development
|
|
68
97
|
prerelease: false
|
|
69
98
|
version_requirements: !ruby/object:Gem::Requirement
|
|
70
99
|
requirements:
|
|
71
100
|
- - "~>"
|
|
72
101
|
- !ruby/object:Gem::Version
|
|
73
|
-
version: 3.
|
|
102
|
+
version: '3.4'
|
|
103
|
+
- - ">="
|
|
104
|
+
- !ruby/object:Gem::Version
|
|
105
|
+
version: 3.4.4
|
|
74
106
|
description: An extension for AsciiDoctor that converts a single AsciiDoc file to
|
|
75
107
|
a DITA topic.
|
|
76
108
|
email: jhradilek@gmail.com
|