metanorma-nist 1.0.10 → 1.1.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fdfccf7f80188c5fdb7b176e3f2e1ec2533218d878ffc2e8798a4ad3b9cd70f7
4
- data.tar.gz: d98180fcdd728e854e47df4f8ca07503c77de570ac3c7f41ab21c6ae0b516e87
3
+ metadata.gz: '05109623d4ab89934b15717692765c6c29015007695efad9ea8258b81d1e956c'
4
+ data.tar.gz: f848bb3f40e50382a2bfeca5f2bd89a78d06d7808bbb3aa4e01d3ce88a8cb87e
5
5
  SHA512:
6
- metadata.gz: 25231b4da1777b011ef5ac9eb9aa2c9691227882ca37fa59cc034a4bbf5a22b077bb59b512e1673488d7a497b36c304d508e8e65b45fd0deb5b3aa069304a9bc
7
- data.tar.gz: ba4697d24bb857a5468dd1dc02e4b0bf83cb8ea296c6fc08b205c855d8b9b4dd000a08bcba3f7871ce06ab5919dfeb758148f862464fbbc78ed6124b6d26aa7b
6
+ metadata.gz: 5b3e0c43ab7a515b8dcba5a6c988254d361934a87091dca35a9134b3d51833c463126695bc2ebee8a3c1430b309210fd08adc8efec6e1ddce727dd2a9c96ad28
7
+ data.tar.gz: edc0d9b4b5aa9b8fe2c98a7369cfec29a44a93a3b4808dfb95b8eb618aa6ff7ada7e0110190bb84cf35355fbcb4497c84827ddbd0eb540aeba2a3389525fd20d
@@ -97,21 +97,12 @@ module Asciidoctor
97
97
  super
98
98
  end
99
99
 
100
- def document(node)
101
- init(node)
102
- ret1 = makexml(node)
103
- ret = ret1.to_xml(indent: 2)
104
- unless node.attr("nodoc") || !node.attr("docfile")
105
- filename = node.attr("docfile").gsub(/\.adoc/, ".xml").
106
- gsub(%r{^.*/}, "")
107
- File.open(filename, "w:UTF-8") { |f| f.write(ret) }
108
- html_converter(node).convert filename unless node.attr("nodoc")
109
- word_converter(node).convert filename unless node.attr("nodoc")
110
- pdf_converter(node)&.convert filename unless node.attr("nodoc")
111
- end
112
- @log.write(@localdir + @filename + ".err") unless @novalid
113
- @files_to_delete.each { |f| FileUtils.rm f }
114
- ret
100
+ def outputs(node, ret)
101
+ File.open(@filename + ".xml", "w:UTF-8") { |f| f.write(ret) }
102
+ presentation_xml_converter(node).convert(@filename + ".xml")
103
+ html_converter(node).convert(@filename + ".presentation.xml", nil, false, "#{@filename}.html")
104
+ doc_converter(node).convert(@filename + ".presentation.xml", nil, false, "#{@filename}.doc")
105
+ pdf_converter(node)&.convert(@filename + ".presentation.xml", nil, false, "#{@filename}.pdf")
115
106
  end
116
107
 
117
108
  def clause_parse(attrs, xml, node)
@@ -170,8 +161,8 @@ module Asciidoctor
170
161
  xml.annex **attr_code(attrs1) do |xml_section|
171
162
  xml_section.title { |t| t << "Bibliography" }
172
163
  @biblio = true
173
- xml.references **attr_code(attrs) do |xml_section|
174
- xml_section << node.content
164
+ xml.references **attr_code(attrs.merge(normative: true)) do |r|
165
+ r << node.content
175
166
  end
176
167
  end
177
168
  @biblio = false
@@ -203,11 +194,15 @@ module Asciidoctor
203
194
  super
204
195
  end
205
196
 
197
+ def presentation_xml_converter(node)
198
+ IsoDoc::NIST::PresentationXMLConvert.new(html_extract_attributes(node))
199
+ end
200
+
206
201
  def html_converter(node)
207
202
  IsoDoc::NIST::HtmlConvert.new(html_extract_attributes(node))
208
203
  end
209
204
 
210
- def word_converter(node)
205
+ def doc_converter(node)
211
206
  IsoDoc::NIST::WordConvert.new(doc_extract_attributes(node))
212
207
  end
213
208
 
@@ -1,6 +1,6 @@
1
1
  require "isodoc"
2
2
  require_relative "metadata"
3
- require_relative "xrefs"
3
+ require_relative "xref"
4
4
  require_relative "refs"
5
5
  require_relative "section"
6
6
  require "fileutils"
@@ -8,6 +8,14 @@ require "fileutils"
8
8
  module IsoDoc
9
9
  module NIST
10
10
  module BaseConvert
11
+ def metadata_init(lang, script, labels)
12
+ @meta = Metadata.new(lang, script, labels)
13
+ end
14
+
15
+ def xref_init(lang, script, klass, labels, options)
16
+ @xrefs = Xref.new(lang, script, klass, labels, options)
17
+ end
18
+
11
19
  def keywords(_docxml, out)
12
20
  kw = @meta.get[:keywords]
13
21
  kw.empty? and return
@@ -126,8 +134,9 @@ module IsoDoc
126
134
  end
127
135
  end
128
136
 
129
- MIDDLE_CLAUSE = "//clause[parent::sections] | "\
130
- "//terms[parent::sections]".freeze
137
+ def middle_clause
138
+ "//clause[parent::sections] | //terms[parent::sections]"
139
+ end
131
140
 
132
141
  def middle(isoxml, out)
133
142
  middle_admonitions(isoxml, out)
@@ -219,6 +228,19 @@ module IsoDoc
219
228
  out << " &mdash; "
220
229
  node.at(ns("./p")).children.each { |n| parse(n, out) }
221
230
  end
231
+
232
+ def annex_name(annex, name, div)
233
+ div.h1 **{ class: "Annex" } do |t|
234
+ t << "#{@xrefs.anchor(annex['id'], :label)} &mdash; "
235
+ t.b do |b|
236
+ if @bibliographycount == 1 && annex.at(ns("./references"))
237
+ b << "References"
238
+ else
239
+ name&.children&.each { |c2| parse(c2, b) }
240
+ end
241
+ end
242
+ end
243
+ end
222
244
  end
223
245
  end
224
246
  end
@@ -37,10 +37,6 @@ module IsoDoc
37
37
  }
38
38
  end
39
39
 
40
- def metadata_init(lang, script, labels)
41
- @meta = Metadata.new(lang, script, labels)
42
- end
43
-
44
40
  def googlefonts
45
41
  <<~HEAD.freeze
46
42
  <link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,600,600i" rel="stylesheet">
@@ -7,26 +7,15 @@ module IsoDoc
7
7
  module NIST
8
8
  # A {Converter} implementation that generates PDF HTML output, and a
9
9
  # document schema encapsulation of the document for validation
10
- class PdfConvert < IsoDoc::PdfConvert
10
+ class PdfConvert < IsoDoc::XslfoPdfConvert
11
11
  def initialize(options)
12
12
  @libdir = File.dirname(__FILE__)
13
13
  super
14
14
  end
15
15
 
16
- def convert(filename, file = nil, debug = false)
17
- file = File.read(filename, encoding: "utf-8") if file.nil?
18
- docxml, outname_html, dir = convert_init(file, filename, debug)
19
- @series = docxml&.at(ns("//bibdata/series/abbreviation"))&.text
20
- /\.xml$/.match(filename) or
21
- filename = Tempfile.open([outname_html, ".xml"], encoding: "utf-8") do |f|
22
- f.write file
23
- f.path
24
- end
25
- FileUtils.rm_rf dir
26
- ::Metanorma::Output::XslfoPdf.new.convert(
27
- filename, outname_html + ".pdf",
28
- File.join(@libdir, @series == "NIST CSWP" ?
29
- "nist.cswp.xsl" : "nist.sp.xsl"))
16
+ def pdf_stylesheet(docxml)
17
+ series = docxml&.at(ns("//bibdata/series/abbreviation"))&.text
18
+ series == "NIST CSWP" ? "nist.cswp.xsl" : "nist.sp.xsl"
30
19
  end
31
20
  end
32
21
  end
@@ -0,0 +1,10 @@
1
+ require_relative "base_convert"
2
+ require "isodoc"
3
+
4
+ module IsoDoc
5
+ module NIST
6
+ class PresentationXMLConvert < IsoDoc::PresentationXMLConvert
7
+ end
8
+ end
9
+ end
10
+
@@ -62,7 +62,7 @@ module IsoDoc
62
62
  title = node&.at(ns("./title"))&.text || ""
63
63
  out.div do |div|
64
64
  unless suppress_biblio_title(node)
65
- anchor(node['id'], :label, false) and
65
+ @xrefs.anchor(node['id'], :label, false) and
66
66
  clause_parse_title(node, div, node.at(ns("./title")), out) or
67
67
  div.h2 title, **{ class: "Section3" }
68
68
  end
@@ -25,7 +25,7 @@ module IsoDoc
25
25
  def preface1(c, title, patent, out)
26
26
  out.div **attr_code(id: c["id"]) do |s|
27
27
  page_break(s) if patent
28
- clause_name(anchor(c['id'], :label), title, s,
28
+ clause_name(@xrefs.anchor(c['id'], :label), title, s,
29
29
  class: (c.name == "executivesummary") ? "NormalTitle" :
30
30
  "IntroTitle")
31
31
  c.elements.reject { |c1| c1.name == "title" }.each do |c1|
@@ -49,10 +49,6 @@ module IsoDoc
49
49
  olstyle: "l2" }
50
50
  end
51
51
 
52
- def metadata_init(lang, script, labels)
53
- @meta = Metadata.new(lang, script, labels)
54
- end
55
-
56
52
  def make_body(xml, docxml)
57
53
  body_attr = { lang: "EN-US", link: "blue", vlink: "#954F72" }
58
54
  xml.body **body_attr do |body|
@@ -4,7 +4,7 @@ require "fileutils"
4
4
 
5
5
  module IsoDoc
6
6
  module NIST
7
- module BaseConvert
7
+ class Xref < IsoDoc::Xref
8
8
  SECTIONS_XPATH =
9
9
  "//foreword | //introduction | //reviewnote | //executivesummary | //annex | "\
10
10
  "//sections/clause | //bibliography/references | //acknowledgements | "\
@@ -50,7 +50,7 @@ module IsoDoc
50
50
  end
51
51
 
52
52
  def annex_name_lbl(clause, num)
53
- l10n("<b>#{@annex_lbl} #{num}</b>")
53
+ l10n("<b>#{@labels['annex']} #{num}</b>")
54
54
  end
55
55
 
56
56
  def annex_name(annex, name, div)
@@ -3,7 +3,9 @@ require_relative "asciidoctor/nist/converter"
3
3
  require_relative "isodoc/nist/html_convert"
4
4
  require_relative "isodoc/nist/pdf_convert"
5
5
  require_relative "isodoc/nist/word_convert"
6
+ require_relative "isodoc/nist/presentation_xml_convert"
6
7
  require_relative "isodoc/nist/render"
8
+ require_relative "isodoc/nist/xref"
7
9
  require_relative "metanorma/nist/version"
8
10
 
9
11
  if defined? Metanorma
@@ -33,14 +33,16 @@ module Metanorma
33
33
  Metanorma::Input::Asciidoc.new.process(file, filename, @asciidoctor_backend)
34
34
  end
35
35
 
36
- def output(isodoc_node, outname, format, options={})
36
+ def output(isodoc_node, inname, outname, format, options={})
37
37
  case format
38
38
  when :html
39
- IsoDoc::NIST::HtmlConvert.new(options).convert(outname, isodoc_node)
39
+ IsoDoc::NIST::HtmlConvert.new(options).convert(inname, isodoc_node, nil, outname)
40
40
  when :doc
41
- IsoDoc::NIST::WordConvert.new(options).convert(outname, isodoc_node)
41
+ IsoDoc::NIST::WordConvert.new(options).convert(inname, isodoc_node, nil, outname)
42
42
  when :pdf
43
- IsoDoc::NIST::PdfConvert.new(options).convert(outname, isodoc_node)
43
+ IsoDoc::NIST::PdfConvert.new(options).convert(inname, isodoc_node, nil, outname)
44
+ when :presentation
45
+ IsoDoc::NIST::PresentationXMLConvert.new(options).convert(inname, isodoc_node, nil, outname)
44
46
  else
45
47
  super
46
48
  end
@@ -1,5 +1,5 @@
1
1
  module Metanorma
2
2
  module NIST
3
- VERSION = "1.0.10"
3
+ VERSION = "1.1.0"
4
4
  end
5
5
  end
@@ -31,7 +31,7 @@ Gem::Specification.new do |spec|
31
31
  spec.add_dependency "tzinfo-data" # we need this for windows only
32
32
 
33
33
  spec.add_dependency "metanorma-standoc", "~> 1.4.0"
34
- spec.add_dependency "isodoc", "~> 1.0.0"
34
+ spec.add_dependency "isodoc", "~> 1.1.0"
35
35
  #spec.add_dependency "relaton-nist", "~> 0.3.0"
36
36
 
37
37
  spec.add_development_dependency "byebug", "~> 9.1"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metanorma-nist
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.10
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-06-19 00:00:00.000000000 Z
11
+ date: 2020-06-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: htmlentities
@@ -100,14 +100,14 @@ dependencies:
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: 1.0.0
103
+ version: 1.1.0
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: 1.0.0
110
+ version: 1.1.0
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: byebug
113
113
  requirement: !ruby/object:Gem::Requirement
@@ -298,6 +298,7 @@ files:
298
298
  - lib/isodoc/nist/nist.cswp.xsl
299
299
  - lib/isodoc/nist/nist.sp.xsl
300
300
  - lib/isodoc/nist/pdf_convert.rb
301
+ - lib/isodoc/nist/presentation_xml_convert.rb
301
302
  - lib/isodoc/nist/refs.rb
302
303
  - lib/isodoc/nist/render.rb
303
304
  - lib/isodoc/nist/render_contributors.rb
@@ -305,7 +306,7 @@ files:
305
306
  - lib/isodoc/nist/section.rb
306
307
  - lib/isodoc/nist/word_convert.rb
307
308
  - lib/isodoc/nist/word_convert_toc.rb
308
- - lib/isodoc/nist/xrefs.rb
309
+ - lib/isodoc/nist/xref.rb
309
310
  - lib/metanorma-nist.rb
310
311
  - lib/metanorma/nist.rb
311
312
  - lib/metanorma/nist/processor.rb
@@ -315,7 +316,7 @@ homepage: https://github.com/metanorma/metanorma-nist
315
316
  licenses:
316
317
  - BSD-2-Clause
317
318
  metadata: {}
318
- post_install_message:
319
+ post_install_message:
319
320
  rdoc_options: []
320
321
  require_paths:
321
322
  - lib
@@ -330,9 +331,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
330
331
  - !ruby/object:Gem::Version
331
332
  version: '0'
332
333
  requirements: []
333
- rubyforge_project:
334
- rubygems_version: 2.7.6
335
- signing_key:
334
+ rubygems_version: 3.0.3
335
+ signing_key:
336
336
  specification_version: 4
337
337
  summary: Metanorma NIST gem.
338
338
  test_files: []