metanorma-standoc 2.8.3 → 2.8.4
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: 77911b09eea6861ff4b3614ba4de12829fd8955161d1aa8b8e917778ed9d3ac4
|
4
|
+
data.tar.gz: 11c749162a35a458a4cfa4c963a68a6e24f535c1fc4e943599966459612078ca
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 24a4fb2005f50f620eaba63e869c86939066445938c74ea3c6df18c6b7a18f7d42cf1997b0ae50dd4adbe7d6bd03f2b4bec6270fb9f41676d4e94e97626160da
|
7
|
+
data.tar.gz: 5cb4f03fa198dd33054e7e81cbc8de074b8cd05a73cee3de4e68ec7e596db08ae17d46c2b1dd8837e2959789f9cfbf80c5ba00e1cc2709c30b26703a052eef3e
|
@@ -40,7 +40,6 @@ module Metanorma
|
|
40
40
|
end
|
41
41
|
|
42
42
|
def init_vars
|
43
|
-
@log = Metanorma::Utils::Log.new # for error reporting downstream
|
44
43
|
@fn_number ||= 0
|
45
44
|
@refids = Set.new
|
46
45
|
@anchor_alias = {}
|
@@ -179,7 +178,8 @@ module Metanorma
|
|
179
178
|
end
|
180
179
|
|
181
180
|
def clean_exit
|
182
|
-
|
181
|
+
!@novalid && @local_log and
|
182
|
+
@log.write("#{@output_dir}#{@filename}.err.html")
|
183
183
|
@files_to_delete.each { |f| FileUtils.rm f }
|
184
184
|
end
|
185
185
|
|
@@ -21,6 +21,7 @@ module Metanorma
|
|
21
21
|
# schema encapsulation of the document for validation
|
22
22
|
class Converter
|
23
23
|
Asciidoctor::Extensions.register do
|
24
|
+
preprocessor Metanorma::Standoc::ResolveIncludePreprocessor
|
24
25
|
preprocessor Metanorma::Plugin::Lutaml::LutamlPreprocessor
|
25
26
|
preprocessor Metanorma::Plugin::Lutaml::LutamlUmlAttributesTablePreprocessor
|
26
27
|
preprocessor Metanorma::Plugin::Lutaml::LutamlUmlDatamodelDescriptionPreprocessor
|
@@ -100,6 +101,10 @@ module Metanorma
|
|
100
101
|
outfilesuffix ".xml"
|
101
102
|
@libdir = File.dirname(self.class::_file || __FILE__)
|
102
103
|
@c = HTMLEntities.new
|
104
|
+
unless opts && @log = opts[:document]&.options&.dig(:log)
|
105
|
+
@log = Metanorma::Utils::Log.new
|
106
|
+
@local_log = true
|
107
|
+
end
|
103
108
|
end
|
104
109
|
|
105
110
|
class << self
|
@@ -2,14 +2,37 @@ require "pathname"
|
|
2
2
|
|
3
3
|
module Asciidoctor
|
4
4
|
class PreprocessorNoIfdefsReader < PreprocessorReader
|
5
|
-
|
5
|
+
private
|
6
|
+
|
7
|
+
def preprocess_conditional_directive(_keyword, _target, _delimiter, _text)
|
6
8
|
false # decline to resolve idefs
|
7
9
|
end
|
10
|
+
|
11
|
+
def resolve_include_path(expanded_target, attrlist, parsed_attrs)
|
12
|
+
inc_path, target_type, relpath = super
|
13
|
+
if inc_path && !%i(file uri).include?(target_type)
|
14
|
+
# include has been skipped because of error
|
15
|
+
n = peek_line(true)
|
16
|
+
/^Unresolved directive in/.match?(n) and
|
17
|
+
@document.converter.log
|
18
|
+
&.add("Include", nil,
|
19
|
+
HTMLEntities.new.encode(n, :basic), severity: 0)
|
20
|
+
end
|
21
|
+
[inc_path, target_type, relpath]
|
22
|
+
end
|
8
23
|
end
|
9
24
|
end
|
10
25
|
|
11
26
|
module Metanorma
|
12
27
|
module Standoc
|
28
|
+
# resolve all includes before doing any further preprocessing
|
29
|
+
class ResolveIncludePreprocessor < Asciidoctor::Extensions::Preprocessor
|
30
|
+
def process(doc, reader)
|
31
|
+
r = ::Asciidoctor::PreprocessorNoIfdefsReader.new doc, reader.lines
|
32
|
+
::Asciidoctor::PreprocessorNoIfdefsReader.new doc, r.readlines
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
13
36
|
class EmbedIncludeProcessor < Asciidoctor::Extensions::Preprocessor
|
14
37
|
def process(doc, reader)
|
15
38
|
reader.eof? and return reader
|
@@ -44,12 +67,12 @@ module Metanorma
|
|
44
67
|
reader = ::Asciidoctor::PreprocessorReader.new doc
|
45
68
|
b = Pathname.new doc.base_dir
|
46
69
|
ret.reverse.each do |l|
|
47
|
-
if l[:file]
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
else reader.unshift_lines l[:lines]
|
52
|
-
end
|
70
|
+
# if l[:file]
|
71
|
+
# new = Pathname.new(l[:path]).relative_path_from(b).to_s
|
72
|
+
# reader.push_include l[:lines], new, l[:path]
|
73
|
+
reader.unshift_lines l[:lines]
|
74
|
+
# else reader.unshift_lines l[:lines]
|
75
|
+
# end
|
53
76
|
end
|
54
77
|
reader
|
55
78
|
end
|