metanorma 1.0.0 → 1.0.1

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: 1d0a42d18ad2b95b3d714ad8564f52946bfc3f7aea5d92c0811145aaa73dbe02
4
- data.tar.gz: 5f2eadd66a58d2d26a0ff281a67438030a41eb0a5bc0b6fe3c80f6731703b93f
3
+ metadata.gz: 1b847f719ea09aa03edc9b67fc73f955c682bbff4690c0d5cea06561f7fbc478
4
+ data.tar.gz: c545afe2938e475a9360d5ae5bd1031920de4c279edf1d1860b83ee287367faf
5
5
  SHA512:
6
- metadata.gz: 6aee169581e757063339606669a64c7027e98fd6f817d9944f23b66dde5dba28050e1985cf8c98331be2a4438fe6f7bb7573a9ffa53bf526db2292817c64cc30
7
- data.tar.gz: dd1bfa19872fea3ca3d61f462998f00d961de3dfc4f22f9893263f88a5dd18dbcb13518696c9514e200d8eac759bdcb461dcda637e0187b364208a0cca1124cd
6
+ metadata.gz: 98b3f3268ce2ac4f60d71ecff97abe398e4c49ad84ff2d8759c486a3b87788c556e23b10454b9c67b352b8a86418587c969290072ee42d131d0449af030b3466
7
+ data.tar.gz: 3f3cf0eb527bf6d2b7db8438d01206961e57bdb2e7249d43537dd635c4bbac3e293b50fd5dcf7f3c069c542c454aa3b2356021aafeecd5ae0fb6c8cf3b198f4f
@@ -1,2 +1,2 @@
1
1
  ORGANISATION=metanorma
2
- DEPENDENT_REPOS=metanorma-docker
2
+ DEPENDENT_REPOS="metanorma-docker"
@@ -1,12 +1,11 @@
1
- # Auto-generated !!! Do not edit it manually
2
- # use ci-master https://github.com/metanorma/metanorma-build-scripts
1
+ # Auto-generated by Cimas: Do not edit it manually!
2
+ # See https://github.com/metanorma/cimas
3
3
  name: macos
4
4
 
5
5
  on:
6
6
  push:
7
7
  branches: [ master ]
8
8
  pull_request:
9
- branches: [ '**' ]
10
9
 
11
10
  jobs:
12
11
  test-macos:
@@ -1,5 +1,5 @@
1
- # Auto-generated !!! Do not edit it manually
2
- # use ci-master https://github.com/metanorma/metanorma-build-scripts
1
+ # Auto-generated by Cimas: Do not edit it manually!
2
+ # See https://github.com/metanorma/cimas
3
3
  name: ubuntu
4
4
 
5
5
  on:
@@ -24,7 +24,7 @@ jobs:
24
24
  architecture: 'x64'
25
25
  - name: Update gems
26
26
  run: |
27
- gem install bundler
27
+ gem install bundler
28
28
  bundle install --jobs 4 --retry 3
29
29
  - name: Use Node
30
30
  uses: actions/setup-node@v1
@@ -43,8 +43,8 @@ jobs:
43
43
  GH_ACCESS_TOKEN: ${{ secrets.PAT_TOKEN }}
44
44
  run: |
45
45
  curl -LO --retry 3 https://raw.githubusercontent.com/metanorma/metanorma-build-scripts/master/trigger-gh-actions.sh
46
- source .github/workflows/dependent_repos.env
46
+ [[ -f ".github/workflows/dependent_repos.env" ]] && source .github/workflows/dependent_repos.env
47
47
  for repo in $DEPENDENT_REPOS
48
48
  do
49
49
  sh trigger-gh-actions.sh $ORGANISATION $repo $GH_USERNAME $GH_ACCESS_TOKEN $GITHUB_REPOSITORY
50
- done
50
+ done
@@ -1,12 +1,11 @@
1
- # Auto-generated !!! Do not edit it manually
2
- # use ci-master https://github.com/metanorma/metanorma-build-scripts
1
+ # Auto-generated by Cimas: Do not edit it manually!
2
+ # See https://github.com/metanorma/cimas
3
3
  name: windows
4
4
 
5
5
  on:
6
6
  push:
7
7
  branches: [ master ]
8
8
  pull_request:
9
- branches: [ '**' ]
10
9
 
11
10
  jobs:
12
11
  test-windows:
@@ -26,9 +25,8 @@ jobs:
26
25
  - name: Update gems
27
26
  shell: pwsh
28
27
  run: |
29
- gem install bundler
28
+ gem install bundler
30
29
  bundle config --local path vendor/bundle
31
- bundle update
32
30
  bundle install --jobs 4 --retry 3
33
31
  - name: Use Node
34
32
  uses: actions/setup-node@v1
@@ -1,8 +1,9 @@
1
1
  = Metanorma: the standard for standards
2
2
 
3
3
  image:https://img.shields.io/gem/v/metanorma.svg["Gem Version", link="https://rubygems.org/gems/metanorma"]
4
- image:https://travis-ci.com/metanorma/metanorma.svg["Build Status", link="https://travis-ci.com/metanorma/metanorma"]
5
- image:https://ci.appveyor.com/api/projects/status/ya3ymheq7xq5wn74?svg=true["AppVeyor Build Status", link="https://ci.appveyor.com/project/metanorma/metanorma"]
4
+ image:https://github.com/metanorma/metanorma/workflows/ubuntu/badge.svg["Ubuntu Build Status", link="https://github.com/metanorma/metanorma/actions?query=workflow%3Aubuntu"]
5
+ image:https://github.com/metanorma/metanorma/workflows/macos/badge.svg["OSX Build Status", link="https://github.com/metanorma/metanorma/actions?query=workflow%3Amacos"]
6
+ image:https://github.com/metanorma/metanorma/workflows/windows/badge.svg["Windows Build Status", link="https://github.com/metanorma/metanorma/actions?query=workflow%3Awindows"]
6
7
  image:https://codeclimate.com/github/metanorma/metanorma/badges/gpa.svg["Code Climate", link="https://codeclimate.com/github/metanorma/metanorma"]
7
8
  image:https://img.shields.io/github/issues-pr-raw/metanorma/metanorma.svg["Pull Requests", link="https://github.com/metanorma/metanorma/pulls"]
8
9
  image:https://img.shields.io/github/commits-since/metanorma/metanorma/latest.svg["Commits since latest",link="https://github.com/metanorma/metanorma/releases"]
@@ -3,17 +3,24 @@
3
3
 
4
4
  const puppeteer = require('puppeteer');
5
5
 
6
+ const args = () => {
7
+ let args = ['--no-sandbox', '--disable-setuid-sandbox', '--headless'];
8
+ if (!process.platform.startsWith('win')) {
9
+ args << '--single-process';
10
+ }
11
+ return {args};
12
+ }
13
+
6
14
  const createPdf = async() => {
7
15
  let browser;
8
16
  let exitCode = 0;
9
17
  try {
10
- let args = ['--no-sandbox', '--disable-setuid-sandbox', '--headless'];
11
- if (!process.platform.startsWith('win')) {
12
- args << '--single-process';
13
- }
14
- browser = await puppeteer.launch({args});
18
+ browser = await puppeteer.launch(args());
15
19
  const page = await browser.newPage();
16
- await page.goto(process.argv[2], {waitUntil: 'networkidle0'});
20
+ await page.goto(process.argv[2], {
21
+ waitUntil: 'networkidle0',
22
+ timeout: 120000 //ms
23
+ });
17
24
  await page.pdf({
18
25
  path: process.argv[3],
19
26
  format: 'A4'
@@ -39,8 +39,9 @@ module Metanorma
39
39
  end
40
40
 
41
41
  def options_extract(filename, options)
42
- o = Metanorma::Input::Asciidoc.new.extract_metanorma_options(File.read(filename, encoding: "utf-8"))
43
- o = o.merge(xml_options_extract(File.read(filename, encoding: "utf-8")))
42
+ content = read_file(filename)
43
+ o = Metanorma::Input::Asciidoc.new.extract_metanorma_options(content)
44
+ o = o.merge(xml_options_extract(content))
44
45
  options[:type] ||= o[:type]&.to_sym
45
46
  dir = filename.sub(%r(/[^/]+$), "/")
46
47
  options[:relaton] ||= "#{dir}/#{o[:relaton]}" if o[:relaton]
@@ -103,7 +104,7 @@ module Metanorma
103
104
  case extname = File.extname(filename)
104
105
  when ".adoc"
105
106
  Util.log("[metanorma] Processing: Asciidoctor input.", :info)
106
- file = File.read(filename, encoding: "utf-8")
107
+ file = read_file(filename)
107
108
  options[:asciimath] and
108
109
  file.sub!(/^(=[^\n]+\n)/, "\\1:mn-keep-asciimath:\n")
109
110
  dir = File.dirname(filename)
@@ -114,13 +115,17 @@ module Metanorma
114
115
  Util.log("[metanorma] Processing: Metanorma XML input.", :info)
115
116
  # TODO NN: this is a hack -- we should provide/bridge the
116
117
  # document attributes in Metanorma XML
117
- ["", File.read(filename, encoding: "utf-8")]
118
+ ["", read_file(filename)]
118
119
  else
119
120
  Util.log("[metanorma] Error: file extension #{extname} is not supported.", :error)
120
121
  nil
121
122
  end
122
123
  end
123
124
 
125
+ def read_file(filename)
126
+ File.read(filename, encoding: "utf-8").gsub("\r\n", "\n")
127
+ end
128
+
124
129
  def relaton_export(isodoc, options)
125
130
  return unless options[:relaton]
126
131
  xml = Nokogiri::XML(isodoc)
@@ -1,5 +1,6 @@
1
1
  require "open3"
2
2
  require "pathname"
3
+ require "shellwords"
3
4
 
4
5
  module Metanorma
5
6
  module Output
@@ -12,11 +13,20 @@ module Metanorma
12
13
  pdfjs = File.join(File.dirname(__FILE__), "../../../bin/metanorma-pdf.js")
13
14
 
14
15
  node_path = ENV["NODE_PATH"] || `npm root --quiet -g`.strip
15
- node_cmd = ["node", pdfjs, file_url, output_path].join(" ")
16
+ node_cmd = ["node", pdfjs, file_url, output_path].map { |arg| shellescape(arg) }.join(" ")
16
17
 
17
18
  _, error_str, status = Open3.capture3({ "NODE_PATH" => node_path }, node_cmd)
18
19
  raise error_str unless status.success?
19
20
  end
21
+
22
+ def shellescape(str)
23
+ if Gem.win_platform?()
24
+ # https://bugs.ruby-lang.org/issues/16741
25
+ str.match(" ") ? "\"#{str}\"" : str
26
+ else
27
+ Shellwords.shellescape(str)
28
+ end
29
+ end
20
30
  end
21
31
  end
22
32
  end
@@ -1,3 +1,3 @@
1
1
  module Metanorma
2
- VERSION = "1.0.0"
2
+ VERSION = "1.0.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metanorma
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-03-05 00:00:00.000000000 Z
11
+ date: 2020-04-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: asciidoctor