metanorma-csd 1.0.1 → 1.0.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.
@@ -76,6 +76,7 @@ module IsoDoc
76
76
 
77
77
  def html_head()
78
78
  <<~HEAD.freeze
79
+ <title>{{ doctitle }}</title>
79
80
  <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
80
81
 
81
82
  <!--TOC script import-->
@@ -0,0 +1,96 @@
1
+ require "isodoc"
2
+ require_relative "metadata"
3
+
4
+ module IsoDoc
5
+ module Csd
6
+ # A {Converter} implementation that generates CSD output, and a document
7
+ # schema encapsulation of the document for validation
8
+ class WordConvert < IsoDoc::WordConvert
9
+ def initialize(options)
10
+ @libdir = File.dirname(__FILE__)
11
+ super
12
+ end
13
+
14
+ def default_fonts(options)
15
+ {
16
+ bodyfont: (options[:script] == "Hans" ? '"SimSun",serif' : '"Arial",sans-serif'),
17
+ headerfont: (options[:script] == "Hans" ? '"SimHei",sans-serif' : '"Arial",sans-serif'),
18
+ monospacefont: '"Courier New",monospace'
19
+ }
20
+ end
21
+
22
+ def default_file_locations(options)
23
+ {
24
+ wordstylesheet: html_doc_path("wordstyle.scss"),
25
+ standardstylesheet: html_doc_path("csd.scss"),
26
+ header: html_doc_path("header.html"),
27
+ wordcoverpage: html_doc_path("word_csd_titlepage.html"),
28
+ wordintropage: html_doc_path("word_csd_intro.html"),
29
+ ulstyle: "l3",
30
+ olstyle: "l2",
31
+ }
32
+ end
33
+
34
+ def metadata_init(lang, script, labels)
35
+ @meta = Metadata.new(lang, script, labels)
36
+ end
37
+
38
+ def annex_name(annex, name, div)
39
+ div.h1 **{ class: "Annex" } do |t|
40
+ t << "#{get_anchors[annex['id']][:label]} "
41
+ t << "<b>#{name.text}</b>"
42
+ end
43
+ end
44
+
45
+ def annex_name_lbl(clause, num)
46
+ obl = l10n("(#{@inform_annex_lbl})")
47
+ obl = l10n("(#{@norm_annex_lbl})") if clause["obligation"] == "normative"
48
+ l10n("<b>#{@annex_lbl} #{num}</b> #{obl}")
49
+ end
50
+
51
+ def pre_parse(node, out)
52
+ out.pre node.text # content.gsub(/</, "&lt;").gsub(/>/, "&gt;")
53
+ end
54
+
55
+ def term_defs_boilerplate(div, source, term, preface)
56
+ if source.empty? && term.nil?
57
+ div << @no_terms_boilerplate
58
+ else
59
+ div << term_defs_boilerplate_cont(source, term)
60
+ end
61
+ end
62
+
63
+ def i18n_init(lang, script)
64
+ super
65
+ @annex_lbl = "Appendix"
66
+ end
67
+
68
+ def error_parse(node, out)
69
+ # catch elements not defined in ISO
70
+ case node.name
71
+ when "pre"
72
+ pre_parse(node, out)
73
+ when "keyword"
74
+ out.span node.text, **{ class: "keyword" }
75
+ else
76
+ super
77
+ end
78
+ end
79
+
80
+ def cleanup(docxml)
81
+ super
82
+ term_cleanup(docxml)
83
+ end
84
+
85
+ def term_cleanup(docxml)
86
+ docxml.xpath("//p[@class = 'Terms']").each do |d|
87
+ h2 = d.at("./preceding-sibling::*[@class = 'TermNum'][1]")
88
+ h2.add_child("&nbsp;")
89
+ h2.add_child(d.remove)
90
+ end
91
+ docxml
92
+ end
93
+ end
94
+ end
95
+ end
96
+
data/lib/metanorma-csd.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  require "asciidoctor" unless defined? Asciidoctor::Converter
2
2
  require_relative "asciidoctor/csd/converter"
3
- require_relative "isodoc/csd/csdconvert"
3
+ require_relative "isodoc/csd/html_convert"
4
+ require_relative "isodoc/csd/word_convert"
4
5
  require_relative "asciidoctor/csd/version"
5
6
 
6
7
  if defined? Metanorma
@@ -13,7 +13,8 @@ module Metanorma
13
13
  def output_formats
14
14
  super.merge(
15
15
  html: "html",
16
- pdf: "pdf"
16
+ pdf: "pdf",
17
+ doc: "doc"
17
18
  )
18
19
  end
19
20
 
@@ -29,13 +30,15 @@ module Metanorma
29
30
  case format
30
31
  when :html
31
32
  IsoDoc::Csd::HtmlConvert.new(options).convert(outname, isodoc_node)
33
+ when :doc
34
+ IsoDoc::Csd::WordConvert.new(options).convert(outname, isodoc_node)
32
35
  when :pdf
33
36
  #require 'tempfile'
34
37
  # Tempfile.open("#{outname}.html") do |tmp|
35
38
  outname_html = outname + ".html"
36
39
  IsoDoc::Csd::HtmlConvert.new(options).convert(outname_html, isodoc_node)
37
40
  puts outname_html
38
- system "cat #{outname_html}"
41
+ #system "cat #{outname_html}"
39
42
  Metanorma::Output::Pdf.new.convert(outname_html, outname)
40
43
  else
41
44
  super
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metanorma-csd
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-08-15 00:00:00.000000000 Z
11
+ date: 2018-09-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: metanorma-standoc
@@ -224,7 +224,6 @@ files:
224
224
  - lib/asciidoctor/csd/isostandard.rng
225
225
  - lib/asciidoctor/csd/pdf.js
226
226
  - lib/asciidoctor/csd/version.rb
227
- - lib/isodoc/csd/csdconvert.rb
228
227
  - lib/isodoc/csd/html/csd.scss
229
228
  - lib/isodoc/csd/html/dots-w@2x.png
230
229
  - lib/isodoc/csd/html/dots@2x.png
@@ -233,7 +232,12 @@ files:
233
232
  - lib/isodoc/csd/html/html_csd_titlepage.html
234
233
  - lib/isodoc/csd/html/htmlstyle.scss
235
234
  - lib/isodoc/csd/html/scripts.html
235
+ - lib/isodoc/csd/html/word_csd_intro.html
236
+ - lib/isodoc/csd/html/word_csd_titlepage.html
237
+ - lib/isodoc/csd/html/wordstyle.scss
238
+ - lib/isodoc/csd/html_convert.rb
236
239
  - lib/isodoc/csd/metadata.rb
240
+ - lib/isodoc/csd/word_convert.rb
237
241
  - lib/metanorma-csd.rb
238
242
  - lib/metanorma/csd.rb
239
243
  - lib/metanorma/csd/processor.rb