metanorma-iho 0.0.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
-