lib/metanorma/compile.rb in metanorma-0.3.6 vs lib/metanorma/compile.rb in metanorma-0.3.7
- old
+ new
@@ -27,10 +27,12 @@
end
def options_extract(filename, options)
o = Metanorma::Input::Asciidoc.new.extract_metanorma_options(File.read(filename, encoding: "utf-8"))
options[:type] ||= o[:type]&.to_sym
+ dir = filename.sub(%r(/[^/]+$), "/")
+ options[:relaton] ||= "#{dir}/#{o[:relaton]}" if o[:relaton]
options[:extension_keys] ||= o[:extensions]&.split(/,[ ]*/)&.map(&:to_sym)
options[:extension_keys] = nil if options[:extension_keys] == [:all]
options[:format] ||= :asciidoc
options[:filename] = filename
options
@@ -101,23 +103,28 @@
end
end
def relaton_export(isodoc, options)
return unless options[:relaton]
- xml = Nokogiri::XML(isodoc)
- bibdata = xml.at("//bibdata") || xml.at("//xmlns:bibdata")
- #docid = bibdata&.at("./xmlns:docidentifier")&.text || options[:filename]
- #outname = docid.sub(/^\s+/, "").sub(/\s+$/, "").gsub(/\s+/, "-") + ".xml"
- File.open(options[:relaton], "w:UTF-8") { |f| f.write bibdata.to_xml }
+ xml = Nokogiri::XML(isodoc)
+ bibdata = xml.at("//bibdata") || xml.at("//xmlns:bibdata")
+ #docid = bibdata&.at("./xmlns:docidentifier")&.text || options[:filename]
+ #outname = docid.sub(/^\s+/, "").sub(/\s+$/, "").gsub(/\s+/, "-") + ".xml"
+ File.open(options[:relaton], "w:UTF-8") { |f| f.write bibdata.to_xml }
end
def process_extensions(extensions, file, isodoc, options)
extensions.each do |ext|
isodoc_options = @processor.extract_options(file)
isodoc_options[:datauriimage] = true if options[:datauriimage]
file_extension = @processor.output_formats[ext]
outfilename = options[:filename].sub(/\.[^.]+$/, ".#{file_extension}")
- @processor.output(isodoc, outfilename, ext, isodoc_options)
+ if ext == :rxl
+ options[:relaton] = outfilename
+ relaton_export(isodoc, options)
+ else
+ @processor.output(isodoc, outfilename, ext, isodoc_options)
+ end
if options[:wrapper] and /html$/.match file_extension
outfilename = outfilename.sub(/\.html$/, "")
FileUtils.mkdir_p outfilename
FileUtils.mv "#{outfilename}.html", outfilename
FileUtils.mv "#{outfilename}_images", outfilename, force: true