metanorma-iho 0.0.1 → 0.1.2

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.
@@ -11,19 +11,12 @@ module IsoDoc
11
11
  super
12
12
  end
13
13
 
14
- def convert(filename, file = nil, debug = false)
15
- return
16
- file = File.read(filename, encoding: "utf-8") if file.nil?
17
- docxml, outname_html, dir = convert_init(file, filename, debug)
18
- /\.xml$/.match(filename) or
19
- filename = Tempfile.open([outname_html, ".xml"], encoding: "utf-8") do |f|
20
- f.write file
21
- f.path
14
+ def pdf_stylesheet(docxml)
15
+ case doctype = docxml&.at(ns("//bibdata/ext/doctype"))&.text
16
+ when "standard" then "iho.standard.xsl"
17
+ else
18
+ "iho.specification.xsl"
22
19
  end
23
- FileUtils.rm_rf dir
24
- ::Metanorma::Output::XslfoPdf.new.convert(
25
- filename, outname_html + ".pdf",
26
- File.join(@libdir, "rsd.standard.xsl"))
27
20
  end
28
21
  end
29
22
  end
@@ -0,0 +1,11 @@
1
+ require_relative "base_convert"
2
+ require "isodoc"
3
+ require "metanorma-generic"
4
+
5
+ module IsoDoc
6
+ module IHO
7
+ class PresentationXMLConvert < IsoDoc::Generic::PresentationXMLConvert
8
+ end
9
+ end
10
+ end
11
+
@@ -0,0 +1,64 @@
1
+ require "isodoc/generic/xref"
2
+
3
+ module IsoDoc
4
+ module IHO
5
+ class Xref < IsoDoc::Generic::Xref
6
+ def annex_name_lbl(clause, num)
7
+ lbl = clause["obligation"] == "informative" ?
8
+ @labels["appendix"] : @labels["annex"]
9
+ l10n("<b>#{lbl} #{num}</b>")
10
+ end
11
+
12
+ def annex_names(clause, num)
13
+ appendix_names(clause, num)
14
+ lbl = clause["obligation"] == "informative" ?
15
+ @labels["appendix"] : @labels["annex"]
16
+ @anchors[clause["id"]] =
17
+ { label: annex_name_lbl(clause, num), type: "clause",
18
+ xref: "#{lbl} #{num}", level: 1 }
19
+ if a = single_annex_special_section(clause)
20
+ annex_names1(a, "#{num}", 1)
21
+ else
22
+ clause.xpath(ns("./clause | ./references | ./terms | ./definitions")).
23
+ each_with_index do |c, i|
24
+ annex_names1(c, "#{num}.#{i + 1}", 2)
25
+ end
26
+ end
27
+ hierarchical_asset_names(clause, num)
28
+ end
29
+
30
+ def back_anchor_names(docxml)
31
+ super
32
+ docxml.xpath(ns("//annex[@obligation = 'informative']")).
33
+ each_with_index do |c, i|
34
+ annex_names(c, i + 1)
35
+ end
36
+ docxml.xpath(ns("//annex[not(@obligation = 'informative')]")).
37
+ each_with_index do |c, i|
38
+ annex_names(c, (65 + i + (i > 7 ? 1 : 0)).chr.to_s)
39
+ end
40
+ end
41
+
42
+ def annex_names1(clause, num, level)
43
+ lbl = clause.at("./ancestor::xmlns:annex/@obligation").
44
+ text == "informative" ? @labels["appendix"] : @labels["annex"]
45
+ @anchors[clause["id"]] =
46
+ { label: num, xref: "#{lbl} #{num}",
47
+ level: level, type: "clause" }
48
+ clause.xpath(ns("./clause | ./references | ./terms | ./definitions")).
49
+ each_with_index do |c, i|
50
+ annex_names1(c, "#{num}.#{i + 1}", level + 1)
51
+ end
52
+ end
53
+
54
+ def appendix_names(clause, num)
55
+ clause.xpath(ns("./appendix")).each_with_index do |c, i|
56
+ @anchors[c["id"]] =
57
+ anchor_struct(i + 1, nil, @labels["appendix"], "clause")
58
+ @anchors[c["id"]][:level] = 2
59
+ @anchors[c["id"]][:container] = clause["id"]
60
+ end
61
+ end
62
+ end
63
+ end
64
+ end
@@ -4,6 +4,7 @@ require_relative "isodoc/iho/base_convert"
4
4
  require_relative "isodoc/iho/html_convert"
5
5
  require_relative "isodoc/iho/word_convert"
6
6
  require_relative "isodoc/iho/pdf_convert"
7
+ require_relative "isodoc/iho/presentation_xml_convert"
7
8
  require_relative "metanorma/iho/version"
8
9
 
9
10
  if defined? Metanorma
@@ -3,7 +3,11 @@ require "metanorma/processor"
3
3
  module Metanorma
4
4
  module IHO
5
5
  def self.fonts_used
6
- ["SourceSansPro-Light", "SourceSerifPro", "SourceCodePro-Light", "HanSans"]
6
+ {
7
+ html: ["SourceSansPro-Light", "SourceSerifPro", "SourceCodePro-Light", "HanSans"],
8
+ doc: ["SourceSansPro-Light", "SourceSerifPro", "SourceCodePro-Light", "HanSans"],
9
+ pdf: ["SourceSansPro-Light", "SourceSerifPro", "SourceCodePro-Light", "HanSans"],
10
+ }
7
11
  end
8
12
 
9
13
  class Processor < Metanorma::Generic::Processor
@@ -15,19 +19,24 @@ module Metanorma
15
19
  super.merge(
16
20
  html: "html",
17
21
  doc: "doc",
18
- ).tap { |hs| hs.delete(:pdf) }
22
+ pdf: "pdf",
23
+ )
19
24
  end
20
25
 
21
26
  def version
22
27
  "Metanorma::IHO #{Metanorma::IHO::VERSION}"
23
28
  end
24
29
 
25
- def output(isodoc_node, outname, format, options={})
30
+ def output(isodoc_node, inname, outname, format, options={})
26
31
  case format
27
32
  when :html
28
- IsoDoc::IHO::HtmlConvert.new(options).convert(outname, isodoc_node)
33
+ IsoDoc::IHO::HtmlConvert.new(options).convert(inname, isodoc_node, nil, outname)
29
34
  when :doc
30
- IsoDoc::IHO::WordConvert.new(options).convert(outname, isodoc_node)
35
+ IsoDoc::IHO::WordConvert.new(options).convert(inname, isodoc_node, nil, outname)
36
+ when :pdf
37
+ IsoDoc::IHO::PdfConvert.new(options).convert(inname, isodoc_node, nil, outname)
38
+ when :presentation
39
+ IsoDoc::IHO::PresentationXMLConvert.new(options).convert(inname, isodoc_node, nil, outname)
31
40
  else
32
41
  super
33
42
  end
@@ -1,5 +1,5 @@
1
1
  module Metanorma
2
2
  module IHO
3
- VERSION = "0.0.1"
3
+ VERSION = "0.1.2"
4
4
  end
5
5
  end
@@ -27,11 +27,12 @@ Gem::Specification.new do |spec|
27
27
  spec.required_ruby_version = Gem::Requirement.new(">= 2.4.0")
28
28
 
29
29
  spec.add_dependency "htmlentities", "~> 4.3.4"
30
- spec.add_dependency "metanorma-standoc", "~> 1.3.0"
31
- spec.add_dependency "isodoc", "~> 1.0.0"
32
- spec.add_dependency 'metanorma-generic', '~> 1.4.0'
30
+ spec.add_dependency "metanorma-standoc", "~> 1.4.0"
31
+ spec.add_dependency "isodoc", "~> 1.1.0"
32
+ spec.add_dependency 'metanorma-generic', '~> 1.5.0'
33
33
 
34
34
  spec.add_development_dependency "byebug", "~> 9.1"
35
+ spec.add_development_dependency "sassc", "2.4.0"
35
36
  spec.add_development_dependency "equivalent-xml", "~> 0.6"
36
37
  spec.add_development_dependency "guard", "~> 2.14"
37
38
  spec.add_development_dependency "guard-rspec", "~> 4.7"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metanorma-iho
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.2
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-05-13 00:00:00.000000000 Z
11
+ date: 2020-07-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: htmlentities
@@ -30,42 +30,42 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 1.3.0
33
+ version: 1.4.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 1.3.0
40
+ version: 1.4.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: isodoc
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 1.0.0
47
+ version: 1.1.0
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 1.0.0
54
+ version: 1.1.0
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: metanorma-generic
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 1.4.0
61
+ version: 1.5.0
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 1.4.0
68
+ version: 1.5.0
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: byebug
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -80,6 +80,20 @@ dependencies:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: '9.1'
83
+ - !ruby/object:Gem::Dependency
84
+ name: sassc
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - '='
88
+ - !ruby/object:Gem::Version
89
+ version: 2.4.0
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - '='
95
+ - !ruby/object:Gem::Version
96
+ version: 2.4.0
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: equivalent-xml
85
99
  requirement: !ruby/object:Gem::Requirement
@@ -225,7 +239,9 @@ files:
225
239
  - lib/isodoc/iho/html/header.html
226
240
  - lib/isodoc/iho/html/html_iho_intro.html
227
241
  - lib/isodoc/iho/html/html_iho_titlepage.html
242
+ - lib/isodoc/iho/html/htmlstyle.css
228
243
  - lib/isodoc/iho/html/htmlstyle.scss
244
+ - lib/isodoc/iho/html/iho.css
229
245
  - lib/isodoc/iho/html/iho.scss
230
246
  - lib/isodoc/iho/html/image001.png
231
247
  - lib/isodoc/iho/html/image002.png
@@ -233,14 +249,18 @@ files:
233
249
  - lib/isodoc/iho/html/logo.png
234
250
  - lib/isodoc/iho/html/logo.svg
235
251
  - lib/isodoc/iho/html/scripts.html
236
- - lib/isodoc/iho/html/scripts.pdf.html
237
252
  - lib/isodoc/iho/html/word_iho_intro.html
238
253
  - lib/isodoc/iho/html/word_iho_titlepage.html
254
+ - lib/isodoc/iho/html/wordstyle.css
239
255
  - lib/isodoc/iho/html/wordstyle.scss
240
256
  - lib/isodoc/iho/html_convert.rb
257
+ - lib/isodoc/iho/iho.specification.xsl
258
+ - lib/isodoc/iho/iho.standard.xsl
241
259
  - lib/isodoc/iho/metadata.rb
242
260
  - lib/isodoc/iho/pdf_convert.rb
261
+ - lib/isodoc/iho/presentation_xml_convert.rb
243
262
  - lib/isodoc/iho/word_convert.rb
263
+ - lib/isodoc/iho/xref.rb
244
264
  - lib/metanorma-iho.rb
245
265
  - lib/metanorma/iho.rb
246
266
  - lib/metanorma/iho/processor.rb
@@ -251,7 +271,7 @@ homepage: https://github.com/metanorma/metanorma-iho
251
271
  licenses:
252
272
  - BSD-2-Clause
253
273
  metadata: {}
254
- post_install_message:
274
+ post_install_message:
255
275
  rdoc_options: []
256
276
  require_paths:
257
277
  - lib
@@ -266,9 +286,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
266
286
  - !ruby/object:Gem::Version
267
287
  version: '0'
268
288
  requirements: []
269
- rubyforge_project:
270
- rubygems_version: 2.7.6
271
- signing_key:
289
+ rubygems_version: 3.0.3
290
+ signing_key:
272
291
  specification_version: 4
273
292
  summary: metanorma-iho lets you write IHO in AsciiDoc.
274
293
  test_files: []
@@ -1,72 +0,0 @@
1
- <script>
2
- //TOC generation
3
- $('#toc').toc({
4
- 'selectors': toclevel(), //elements to use as headings
5
- 'container': 'main', //element to find all selectors in
6
- 'smoothScrolling': true, //enable or disable smooth scrolling on click
7
- 'prefix': 'toc', //prefix for anchor tags and class names
8
- 'onHighlight': function(el) {}, //called when a new section is highlighted
9
- 'highlightOnScroll': false, //add class to heading that is currently in focus
10
- 'highlightOffset': 100, //offset to trigger the next headline
11
- 'anchorName': function(i, heading, prefix) { //custom function for anchor name
12
- return prefix+i;
13
- },
14
- 'headerText': function(i, heading, $heading) { //custom function building the header-item text
15
- return $heading.text();
16
- },
17
- 'itemClass': function(i, heading, $heading, prefix) { // custom function for item class
18
- return $heading[0].tagName.toLowerCase();
19
- }
20
- });
21
-
22
- </script>
23
-
24
- <script>
25
- //TOC toggle animation
26
- $('#toggle').on('click', function(){
27
- if( $('nav').is(':visible') ) {
28
- $('nav').animate({ 'left': '-353px' }, 'slow', function(){
29
- $('nav').hide();
30
- });
31
- $('.container').animate({ 'padding-left': '31px' }, 'slow');
32
- }
33
- else {
34
- $('nav').show();
35
- $('nav').animate({ 'left': '0px' }, 'slow');
36
- $('.container').animate({ 'padding-left': '360px' }, 'slow');
37
- }
38
- });
39
- </script>
40
-
41
- <script>
42
- // Scroll to top button
43
- window.onscroll = function() {scrollFunction()};
44
-
45
- function scrollFunction() {
46
- if (document.body.scrollTop > 100 || document.documentElement.scrollTop > 100) {
47
- document.getElementById("myBtn").style.display = "block";
48
- } else {
49
- document.getElementById("myBtn").style.display = "none";
50
- }
51
- }
52
-
53
- // When the user clicks on the button, scroll to the top of the document
54
- function topFunction() {
55
- document.body.scrollTop = 0;
56
- document.documentElement.scrollTop = 0;
57
- }
58
- </script>
59
-
60
- <script>
61
- /*
62
- $(document).ready(function() {
63
- $('[id^=toc]').each(function ()
64
- {
65
- var currentToc = $(this);
66
- var url = window.location.href;
67
- currentToc.wrap("<a href='" + url + "#" + currentToc.attr("id") + "' </a>");
68
- });
69
- });
70
- */
71
- </script>
72
-