metanorma-cli 1.3.8 → 1.4.0pre

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: 0bf83d595a57ad66ccd46a13369959bbbbedb12f8862de67dbb52866cd3f61c1
4
- data.tar.gz: 54436b4066c82e5e756bcf2c80d060d5cc23d3baea6428bca490d7b41585b2c0
3
+ metadata.gz: 88924f3243331ffe69a875d04a60ba95b22a7dc2a580b3d7019f919a4b930da7
4
+ data.tar.gz: 238e5f13c374e907ab8d4245e1ac3794891c6cb24b9da0e3c4abd66c982e9c33
5
5
  SHA512:
6
- metadata.gz: 58e694c9325bbbc824f6d56143b0fc3904a5d652cbd6eebbf9b4b31ff10f3c42bad4da50daf1866cce21a02ee89034df68ab245b2960e83ff6a0937c8cbcc149
7
- data.tar.gz: 87a4173fee1fc642be7773ad7b637ab70849d9326456ec35d94c682f7dcf31c3dbecc12e17e4c8d49f1fbc1e642c1ba10865d2246fcbb3d377312f6175ec94ac
6
+ metadata.gz: e45a497c87d344efae6f3c5783ad3d1508ef405dba142adf8044d1fc77c733e2c334091bb263389d9ce4e61398ecb3ac3d3f759f4f81887293beff5e6ccf8c61
7
+ data.tar.gz: 77e5b0b96d5e7ebcb549c3f018f794998c3512165aa13ddc64974ea5ce163b32b919b593206849180a0d22d104d1a275af2be37696f21a49edeb3fec624b8d36
data/Gemfile CHANGED
@@ -4,6 +4,7 @@ Encoding.default_internal = Encoding::UTF_8
4
4
  source "https://rubygems.org"
5
5
  git_source(:github) { |repo| "https://github.com/#{repo}" }
6
6
 
7
+
7
8
  gemspec
8
9
 
9
10
  if File.exist? 'Gemfile.devel'
@@ -1,9 +1,7 @@
1
1
  = Metanorma command-line interface (CLI)
2
2
 
3
3
  image:https://img.shields.io/gem/v/metanorma-cli.svg["Gem Version", link="https://rubygems.org/gems/metanorma-cli"]
4
- image:https://github.com/metanorma/metanorma-cli/workflows/macos/badge.svg["Build Status (macOS)", link="https://github.com/metanorma/metanorma-cli/actions?workflow=macos"]
5
- image:https://github.com/metanorma/metanorma-cli/workflows/ubuntu/badge.svg["Build Status (ubuntu)", link="https://github.com/metanorma/metanorma-cli/actions?workflow=ubuntu"]
6
- image:https://github.com/metanorma/metanorma-cli/workflows/windows/badge.svg["Build Status (Windows)", link="https://github.com/metanorma/metanorma-cli/actions?workflow=windows"]
4
+ image:https://github.com/metanorma/metanorma-cli/workflows/rake/badge.svg["Build Status", link="https://github.com/metanorma/metanorma-cli/actions?workflow=rake"]
7
5
  image:https://codeclimate.com/github/metanorma/metanorma-cli/badges/gpa.svg["Code Climate", link="https://codeclimate.com/github/metanorma/metanorma-cli"]
8
6
  image:https://img.shields.io/github/issues-pr-raw/metanorma/metanorma-cli.svg["Pull Requests", link="https://github.com/metanorma/metanorma-cli/pulls"]
9
7
  image:https://img.shields.io/github/commits-since/metanorma/metanorma-cli/latest.svg["Commits since latest",link="https://github.com/metanorma/metanorma-cli/releases"]
@@ -287,6 +285,21 @@ repository.
287
285
  metanorma template-repo add my-iso https://github.com/you/my-iso-template
288
286
  ----
289
287
 
288
+ === Generate metanorma minisite
289
+
290
+ The `site` interface allows you to manage mini site generation using the CLI.
291
+ To generate a mini site you need to provide the `SOURCE_PATH` and the CLI will
292
+ take care of compiling each of those files and generate deployable site in the
293
+ provided output directory.
294
+
295
+ This interface also supports a YAML manifest file that can be used to customize
296
+ the site generation process. You can check more details here: link:./spec/fixtures/metanorma.yml[metanorma.yml]
297
+
298
+ [source, sh]
299
+ ----
300
+ metanorma site generate SOURCE_PATH -o OUTPUT_PATH -c metanorma.yml
301
+ ----
302
+
290
303
  == Credits
291
304
 
292
305
  This gem is developed, maintained and funded by https://www.metanorma.com/docs/getting-started/[Ribose Inc.]
@@ -9,7 +9,8 @@ module Metanorma
9
9
  "metanorma-iso",
10
10
  "metanorma-iec",
11
11
  "metanorma-ietf",
12
- "metanorma-gb",
12
+ #"metanorma-gb",
13
+ "metanorma-bipm",
13
14
  "metanorma-cc",
14
15
  "metanorma-csa",
15
16
  "metanorma-iho",
@@ -81,14 +82,6 @@ module Metanorma
81
82
  Pathname.new(Dir.home).join(".metanorma")
82
83
  end
83
84
 
84
- def self.fonts_directory
85
- Metanorma::Cli.home_directory.join("fonts")
86
- end
87
-
88
- def self.fonts
89
- Dir.glob(Metanorma::Cli.fonts_directory.join("**"))
90
- end
91
-
92
85
  def self.writable_templates_path?
93
86
  parent_directory = templates_path.join("..", "..")
94
87
 
@@ -1,9 +1,9 @@
1
1
  require "thor"
2
- require "metanorma/cli/setup"
3
2
  require "metanorma/cli/compiler"
4
3
  require "metanorma/cli/generator"
5
4
  require "metanorma/cli/git_template"
6
5
  require "metanorma/cli/commands/template_repo"
6
+ require "metanorma/cli/commands/site"
7
7
  require "metanorma"
8
8
 
9
9
  module Metanorma
@@ -32,6 +32,10 @@ module Metanorma
32
32
  option :version, aliases: "-v", desc: "Print version of code (accompanied with -t)"
33
33
  option "output-dir", aliases: "-o", desc: "Directory to save compiled files"
34
34
 
35
+ option :agree_to_terms, type: :boolean, desc: "Agree / Disagree with all third-party licensing terms presented (WARNING: do know what you are agreeing with!)"
36
+ option :no_install_fonts, type: :boolean, desc: "Skip the font installation process"
37
+ option :continue_without_fonts, type: :boolean, desc: "Continue processing even when fonts are missing"
38
+
35
39
  def compile(file_name = nil)
36
40
  if file_name && !options[:version]
37
41
  Metanorma::Cli.load_flavors
@@ -89,33 +93,8 @@ module Metanorma
89
93
  desc "template-repo", "Manage metanorma templates repository"
90
94
  subcommand :template_repo, Metanorma::Cli::Commands::TemplateRepo
91
95
 
92
- desc "setup", "Initial necessary setup"
93
- option(
94
- :agree_to_terms,
95
- type: :boolean,
96
- required: false,
97
- default: false,
98
- desc: "Agree / Disagree with all third-party licensing terms presented (WARNING: do know what you are agreeing with!)",
99
- )
100
-
101
- def setup
102
- list_required_fonts.each do |font|
103
- begin
104
- Metanorma::Cli::Setup.run(
105
- font: font,
106
- term_agreement: options[:agree_to_terms],
107
- )
108
- rescue Fontist::Errors::LicensingError
109
- UI.error(
110
- "[error]: License acceptance required to install a necessary font." \
111
- "Accept required licenses with: `metanorma setup --agree-to-terms`."
112
- )
113
- return
114
- rescue Fontist::Errors::NonSupportedFontError
115
- UI.say("[info]: The font `#{font}` is not yet supported.")
116
- end
117
- end
118
- end
96
+ desc "site", "Manage site for metanorma collections"
97
+ subcommand :site, Metanorma::Cli::Commands::Site
119
98
 
120
99
  private
121
100
 
@@ -175,19 +154,6 @@ module Metanorma
175
154
  )
176
155
  end
177
156
 
178
- def list_required_fonts
179
- Metanorma::Cli.load_flavors
180
-
181
- Metanorma::Registry.instance.processors.map do |_key, processor|
182
- flavour = processor.class.to_s.gsub("::Processor", "")
183
- flavour_module = Object.const_get(flavour)
184
-
185
- if flavour_module.respond_to?(:fonts_used)
186
- flavour_module.fonts_used.map { |_, value| value }.flatten
187
- end
188
- end.compact.flatten.uniq
189
- end
190
-
191
157
  def load_flavours(type)
192
158
  Metanorma::Cli.load_flavors
193
159
  unless Metanorma::Registry.instance.find_processor(type&.to_sym)
@@ -0,0 +1,26 @@
1
+ require "pathname"
2
+ require "metanorma/cli/site_generator"
3
+
4
+ module Metanorma
5
+ module Cli
6
+ module Commands
7
+ class Site < Thor
8
+ desc "site generate SOURCE_PATH", "Geneate site from collection"
9
+ option :config, aliases: "-c", desc: "The metanorma configuration file"
10
+ option(
11
+ :output_dir,
12
+ aliases: "-o",
13
+ default: Pathname.new(Dir.pwd).join("site").to_s,
14
+ desc: "Output directory for the generated site",
15
+ )
16
+
17
+ def generate(source_path)
18
+ Cli::SiteGenerator.generate(source_path, options.dup)
19
+ UI.say("Site has been generated at #{options[:output_dir]}")
20
+ rescue Cli::Errors::InvalidManifestFileError
21
+ UI.error("Invalid data in: #{options[:config]}")
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -4,6 +4,7 @@ module Metanorma
4
4
  class DuplicateTemplateError < StandardError; end
5
5
 
6
6
  class FileNotFoundError < StandardError; end
7
+ class InvalidManifestFileError < StandardError; end
7
8
  end
8
9
  end
9
10
  end
@@ -0,0 +1,130 @@
1
+ require "yaml"
2
+ require "pathname"
3
+ require "fileutils"
4
+
5
+ module Metanorma
6
+ module Cli
7
+ class SiteGenerator
8
+ def initialize(source, options = {})
9
+ @source = find_realpath(source)
10
+ @site_path = options.fetch(:output_dir, "site").to_s
11
+ @manifest_file = find_realpath(options.fetch(:config, nil))
12
+ @asset_folder = options.fetch(:asset_folder, "documents").to_s
13
+ @collection_name = options.fetch(:collection_name, "documents.xml")
14
+
15
+ ensure_site_asset_directory!
16
+ end
17
+
18
+ def self.generate(source, options = {})
19
+ new(source, options).generate
20
+ end
21
+
22
+ def generate
23
+ site_directory = asset_directory.join("..")
24
+
25
+ Dir.chdir(site_directory) do
26
+ select_source_files.each { |source| compile(source) }
27
+
28
+ build_collection_file(collection_name)
29
+ convert_to_html_page(collection_name, "index.html")
30
+ end
31
+ end
32
+
33
+ private
34
+
35
+ attr_reader :source, :asset_folder, :asset_directory
36
+ attr_reader :site_path, :manifest_file, :collection_name
37
+
38
+ def find_realpath(source_path)
39
+ Pathname.new(source_path.to_s).realpath if source_path
40
+ rescue Errno::ENOENT
41
+ source_path
42
+ end
43
+
44
+ def select_source_files
45
+ files = source_from_manifest
46
+
47
+ if files.empty?
48
+ files = Dir[File.join(source, "**", "*.adoc")]
49
+ end
50
+
51
+ files.flatten.uniq.reject { |file| File.directory?(file) }
52
+ end
53
+
54
+ def build_collection_file(collection_name)
55
+ collection_path = [site_path, collection_name].join("/")
56
+ UI.info("Building collection file: #{collection_path} ...")
57
+
58
+ Relaton::Cli::RelatonFile.concatenate(
59
+ asset_folder,
60
+ collection_name,
61
+ title: manifest[:collection_name],
62
+ organization: manifest[:collection_organization],
63
+ )
64
+ end
65
+
66
+ def compile(source)
67
+ UI.info("Compiling #{source} ...")
68
+
69
+ Metanorma::Cli::Compiler.compile(
70
+ source.to_s, format: :asciidoc, "output-dir" => asset_folder
71
+ )
72
+ end
73
+
74
+ def convert_to_html_page(collection, page_name)
75
+ UI.info("Generating html site in #{site_path} ...")
76
+
77
+ Relaton::Cli::XMLConvertor.to_html(collection)
78
+ File.rename(Pathname.new(collection).sub_ext(".html").to_s, page_name)
79
+ end
80
+
81
+ def manifest
82
+ @manifest ||= config_from_manifest || {
83
+ files: [], collection_name: "", collection_organization: ""
84
+ }
85
+ end
86
+
87
+ def config_from_manifest
88
+ if manifest_file
89
+ manifest_config(YAML.safe_load(File.read(manifest_file.to_s)))
90
+ end
91
+ end
92
+
93
+ def manifest_config(manifest)
94
+ {
95
+ files: extract_config_data(
96
+ manifest["metanorma"]["source"], "files"
97
+ ) || [],
98
+
99
+ collection_name: extract_config_data(
100
+ manifest["relaton"]["collection"], "name"
101
+ ),
102
+
103
+ collection_organization: extract_config_data(
104
+ manifest["relaton"]["collection"], "organization"
105
+ ),
106
+ }
107
+ rescue NoMethodError
108
+ raise Errors::InvalidManifestFileError.new("Invalid manifest file")
109
+ end
110
+
111
+ def extract_config_data(node, key)
112
+ node ? node[key] : nil
113
+ end
114
+
115
+ def source_from_manifest
116
+ @source_from_manifest ||= manifest[:files].map do |source_file|
117
+ file_path = source.join(source_file).to_s
118
+ file_path.include?("*") ? Dir.glob(file_path) : file_path
119
+ end.flatten
120
+ end
121
+
122
+ def ensure_site_asset_directory!
123
+ asset_path = [site_path, asset_folder].join("/")
124
+ @asset_directory = Pathname.new(Dir.pwd).join(asset_path)
125
+
126
+ FileUtils.mkdir_p(@asset_directory) unless @asset_directory.exist?
127
+ end
128
+ end
129
+ end
130
+ end
@@ -11,6 +11,10 @@ module Metanorma
11
11
  new.say(message)
12
12
  end
13
13
 
14
+ def self.info(message)
15
+ new.say(["[info]", message].join(": "))
16
+ end
17
+
14
18
  def self.error(message)
15
19
  new.error(message)
16
20
  end
@@ -1,5 +1,5 @@
1
1
  module Metanorma
2
2
  module Cli
3
- VERSION = "1.3.8"
3
+ VERSION = "1.4.0pre"
4
4
  end
5
5
  end
@@ -24,37 +24,38 @@ Gem::Specification.new do |spec|
24
24
  spec.require_paths = ["lib"]
25
25
  spec.required_ruby_version = '>= 2.4.0'
26
26
 
27
- #spec.add_development_dependency "pry"
27
+ spec.add_development_dependency "pry"
28
28
  spec.add_development_dependency "rake", "~> 12.0"
29
29
  spec.add_development_dependency "rspec", "~> 3.0"
30
30
  spec.add_development_dependency "byebug", "~> 10.0"
31
31
  spec.add_development_dependency "rspec-command", "~> 1.0.3"
32
- spec.add_development_dependency "equivalent-xml", "~> 0.6"
33
32
  spec.add_development_dependency "rspec-core", "~> 3.4"
34
33
  spec.add_development_dependency "vcr", "~> 5.0.0"
35
34
  spec.add_development_dependency "webmock"
36
35
  spec.add_development_dependency "simplecov", "~> 0.15"
36
+ # need for dev because locally compiled metanorma-iso does not have css
37
+ spec.add_development_dependency "sassc"
37
38
 
38
39
  spec.add_runtime_dependency "thor", "~> 1.0"
39
40
  spec.add_runtime_dependency "metanorma-iso", "~> 1.5.0"
40
- spec.add_runtime_dependency 'metanorma-ietf', "~> 2.2.0"
41
- spec.add_runtime_dependency 'metanorma-gb', "~> 1.5.0"
42
- spec.add_runtime_dependency 'metanorma-iec', "~> 1.2.0"
43
- spec.add_runtime_dependency 'metanorma-cc', "~> 1.5.0"
44
- spec.add_runtime_dependency 'metanorma-csa', "~> 1.6.0"
41
+ spec.add_runtime_dependency "metanorma-ietf", "~> 2.2.0"
42
+ #spec.add_runtime_dependency "metanorma-gb", "~> 1.5.0"
43
+ spec.add_runtime_dependency "metanorma-iec", "~> 1.2.0"
44
+ spec.add_runtime_dependency "metanorma-cc", "~> 1.6.0"
45
+ spec.add_runtime_dependency "metanorma-csa", "~> 1.7.0"
45
46
  #spec.add_runtime_dependency 'metanorma-ribose', "~> 1.6.0"
46
- spec.add_runtime_dependency 'metanorma-m3aawg', "~> 1.5.0"
47
- spec.add_runtime_dependency 'metanorma-generic', "~> 1.7.0"
48
- spec.add_runtime_dependency 'metanorma-standoc', "~> 1.6.0"
47
+ spec.add_runtime_dependency "metanorma-m3aawg", "~> 1.6.0"
48
+ spec.add_runtime_dependency "metanorma-bipm", "~> 1.0.0"
49
+ spec.add_runtime_dependency "metanorma-generic", "~> 1.8.0"
50
+ spec.add_runtime_dependency "metanorma-standoc", "~> 1.6.0"
49
51
  #spec.add_runtime_dependency 'metanorma-mpfa', "~> 0.5.0"
50
- spec.add_runtime_dependency 'metanorma-un', "~> 0.5.0"
51
- spec.add_runtime_dependency 'metanorma-ogc', "~> 1.2.0"
52
- spec.add_runtime_dependency 'metanorma-nist', "~> 1.2.0"
53
- spec.add_runtime_dependency 'metanorma-itu', "~> 1.2.0"
54
- spec.add_runtime_dependency 'metanorma-iho', "~> 0.2.0"
55
- spec.add_runtime_dependency 'isodoc', ">= 1.2.0"
56
- spec.add_runtime_dependency 'metanorma', "~> 1.2.0"
52
+ spec.add_runtime_dependency "metanorma-un", "~> 0.5.0"
53
+ spec.add_runtime_dependency "metanorma-ogc", "~> 1.2.0"
54
+ spec.add_runtime_dependency "metanorma-nist", "~> 1.2.0"
55
+ spec.add_runtime_dependency "metanorma-itu", "~> 1.2.0"
56
+ spec.add_runtime_dependency "metanorma-iho", "~> 0.2.0"
57
+ spec.add_runtime_dependency "isodoc", ">= 1.3.0"
58
+ spec.add_runtime_dependency "metanorma", "~> 1.2.0"
57
59
  spec.add_runtime_dependency "git", "~> 1.5"
58
60
  spec.add_runtime_dependency "relaton-cli", ">= 0.8.2"
59
- spec.add_runtime_dependency "fontist", "~> 1.3.0"
60
61
  end
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metanorma-cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.8
4
+ version: 1.4.0pre
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-10-26 00:00:00.000000000 Z
11
+ date: 2020-12-14 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: pry
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: rake
15
29
  requirement: !ruby/object:Gem::Requirement
@@ -66,20 +80,6 @@ dependencies:
66
80
  - - "~>"
67
81
  - !ruby/object:Gem::Version
68
82
  version: 1.0.3
69
- - !ruby/object:Gem::Dependency
70
- name: equivalent-xml
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - "~>"
74
- - !ruby/object:Gem::Version
75
- version: '0.6'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - "~>"
81
- - !ruby/object:Gem::Version
82
- version: '0.6'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: rspec-core
85
85
  requirement: !ruby/object:Gem::Requirement
@@ -136,6 +136,20 @@ dependencies:
136
136
  - - "~>"
137
137
  - !ruby/object:Gem::Version
138
138
  version: '0.15'
139
+ - !ruby/object:Gem::Dependency
140
+ name: sassc
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
139
153
  - !ruby/object:Gem::Dependency
140
154
  name: thor
141
155
  requirement: !ruby/object:Gem::Requirement
@@ -179,49 +193,49 @@ dependencies:
179
193
  - !ruby/object:Gem::Version
180
194
  version: 2.2.0
181
195
  - !ruby/object:Gem::Dependency
182
- name: metanorma-gb
196
+ name: metanorma-iec
183
197
  requirement: !ruby/object:Gem::Requirement
184
198
  requirements:
185
199
  - - "~>"
186
200
  - !ruby/object:Gem::Version
187
- version: 1.5.0
201
+ version: 1.2.0
188
202
  type: :runtime
189
203
  prerelease: false
190
204
  version_requirements: !ruby/object:Gem::Requirement
191
205
  requirements:
192
206
  - - "~>"
193
207
  - !ruby/object:Gem::Version
194
- version: 1.5.0
208
+ version: 1.2.0
195
209
  - !ruby/object:Gem::Dependency
196
- name: metanorma-iec
210
+ name: metanorma-cc
197
211
  requirement: !ruby/object:Gem::Requirement
198
212
  requirements:
199
213
  - - "~>"
200
214
  - !ruby/object:Gem::Version
201
- version: 1.2.0
215
+ version: 1.6.0
202
216
  type: :runtime
203
217
  prerelease: false
204
218
  version_requirements: !ruby/object:Gem::Requirement
205
219
  requirements:
206
220
  - - "~>"
207
221
  - !ruby/object:Gem::Version
208
- version: 1.2.0
222
+ version: 1.6.0
209
223
  - !ruby/object:Gem::Dependency
210
- name: metanorma-cc
224
+ name: metanorma-csa
211
225
  requirement: !ruby/object:Gem::Requirement
212
226
  requirements:
213
227
  - - "~>"
214
228
  - !ruby/object:Gem::Version
215
- version: 1.5.0
229
+ version: 1.7.0
216
230
  type: :runtime
217
231
  prerelease: false
218
232
  version_requirements: !ruby/object:Gem::Requirement
219
233
  requirements:
220
234
  - - "~>"
221
235
  - !ruby/object:Gem::Version
222
- version: 1.5.0
236
+ version: 1.7.0
223
237
  - !ruby/object:Gem::Dependency
224
- name: metanorma-csa
238
+ name: metanorma-m3aawg
225
239
  requirement: !ruby/object:Gem::Requirement
226
240
  requirements:
227
241
  - - "~>"
@@ -235,33 +249,33 @@ dependencies:
235
249
  - !ruby/object:Gem::Version
236
250
  version: 1.6.0
237
251
  - !ruby/object:Gem::Dependency
238
- name: metanorma-m3aawg
252
+ name: metanorma-bipm
239
253
  requirement: !ruby/object:Gem::Requirement
240
254
  requirements:
241
255
  - - "~>"
242
256
  - !ruby/object:Gem::Version
243
- version: 1.5.0
257
+ version: 1.0.0
244
258
  type: :runtime
245
259
  prerelease: false
246
260
  version_requirements: !ruby/object:Gem::Requirement
247
261
  requirements:
248
262
  - - "~>"
249
263
  - !ruby/object:Gem::Version
250
- version: 1.5.0
264
+ version: 1.0.0
251
265
  - !ruby/object:Gem::Dependency
252
266
  name: metanorma-generic
253
267
  requirement: !ruby/object:Gem::Requirement
254
268
  requirements:
255
269
  - - "~>"
256
270
  - !ruby/object:Gem::Version
257
- version: 1.7.0
271
+ version: 1.8.0
258
272
  type: :runtime
259
273
  prerelease: false
260
274
  version_requirements: !ruby/object:Gem::Requirement
261
275
  requirements:
262
276
  - - "~>"
263
277
  - !ruby/object:Gem::Version
264
- version: 1.7.0
278
+ version: 1.8.0
265
279
  - !ruby/object:Gem::Dependency
266
280
  name: metanorma-standoc
267
281
  requirement: !ruby/object:Gem::Requirement
@@ -352,14 +366,14 @@ dependencies:
352
366
  requirements:
353
367
  - - ">="
354
368
  - !ruby/object:Gem::Version
355
- version: 1.2.0
369
+ version: 1.3.0
356
370
  type: :runtime
357
371
  prerelease: false
358
372
  version_requirements: !ruby/object:Gem::Requirement
359
373
  requirements:
360
374
  - - ">="
361
375
  - !ruby/object:Gem::Version
362
- version: 1.2.0
376
+ version: 1.3.0
363
377
  - !ruby/object:Gem::Dependency
364
378
  name: metanorma
365
379
  requirement: !ruby/object:Gem::Requirement
@@ -402,20 +416,6 @@ dependencies:
402
416
  - - ">="
403
417
  - !ruby/object:Gem::Version
404
418
  version: 0.8.2
405
- - !ruby/object:Gem::Dependency
406
- name: fontist
407
- requirement: !ruby/object:Gem::Requirement
408
- requirements:
409
- - - "~>"
410
- - !ruby/object:Gem::Version
411
- version: 1.3.0
412
- type: :runtime
413
- prerelease: false
414
- version_requirements: !ruby/object:Gem::Requirement
415
- requirements:
416
- - - "~>"
417
- - !ruby/object:Gem::Version
418
- version: 1.3.0
419
419
  description: Executable to process any Metanorma standard.
420
420
  email:
421
421
  - open.source@ribose.com
@@ -461,12 +461,13 @@ files:
461
461
  - lib/metanorma-cli.rb
462
462
  - lib/metanorma/cli.rb
463
463
  - lib/metanorma/cli/command.rb
464
+ - lib/metanorma/cli/commands/site.rb
464
465
  - lib/metanorma/cli/commands/template_repo.rb
465
466
  - lib/metanorma/cli/compiler.rb
466
467
  - lib/metanorma/cli/errors.rb
467
468
  - lib/metanorma/cli/generator.rb
468
469
  - lib/metanorma/cli/git_template.rb
469
- - lib/metanorma/cli/setup.rb
470
+ - lib/metanorma/cli/site_generator.rb
470
471
  - lib/metanorma/cli/template_repo.rb
471
472
  - lib/metanorma/cli/ui.rb
472
473
  - lib/metanorma/cli/version.rb
@@ -490,9 +491,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
490
491
  version: 2.4.0
491
492
  required_rubygems_version: !ruby/object:Gem::Requirement
492
493
  requirements:
493
- - - ">="
494
+ - - ">"
494
495
  - !ruby/object:Gem::Version
495
- version: '0'
496
+ version: 1.3.1
496
497
  requirements: []
497
498
  rubygems_version: 3.0.3
498
499
  signing_key:
@@ -1,73 +0,0 @@
1
- require "fontist"
2
- require "fileutils"
3
-
4
- module Metanorma
5
- module Cli
6
- class Setup
7
- def initialize(options)
8
- @options = options
9
- @font_name = options.fetch(:font)
10
- @term_agreement = options.fetch(:term_agreement, false)
11
-
12
- create_metanorma_fonts_directory
13
- end
14
-
15
- def self.run(options = {})
16
- new(options).run
17
- end
18
-
19
- def run
20
- font = Metanorma::Cli.fonts.grep(/#{font_name}/i)
21
-
22
- if font.empty?
23
- font_paths = download_font
24
- copy_to_fonts(font_paths)
25
- end
26
- end
27
-
28
- private
29
-
30
- attr_reader :font_name, :options, :term_agreement
31
-
32
- def create_metanorma_fonts_directory
33
- unless Metanorma::Cli.fonts_directory.exist?
34
- FileUtils.mkdir_p(Metanorma::Cli.fonts_directory)
35
- end
36
- end
37
-
38
- def metanorma_fonts_path
39
- @metanorma_fonts_path ||= Metanorma::Cli.fonts_directory
40
- end
41
-
42
- def download_font
43
- begin
44
- Fontist::Font.find(font_name)
45
- rescue Fontist::Errors::MissingFontError
46
- process_font_installation(font_name)
47
- end
48
- end
49
-
50
- def copy_to_fonts(fonts_path)
51
- fonts_path.each do |font_path|
52
- font_name = File.basename(font_path)
53
- FileUtils.copy_file(font_path, metanorma_fonts_path.join(font_name))
54
- end
55
- end
56
-
57
- def process_font_installation(font_name)
58
- accepted_agreement = term_agreement == true ? "yes" : "no"
59
-
60
- UI.say(missing_font_message) if !term_agreement
61
- Fontist::Font.install(font_name, confirmation: accepted_agreement)
62
- end
63
-
64
- def missing_font_message
65
- <<~MSG
66
- Your system does not have the necessary fonts installed for
67
- PDF generation. Without these fonts, the generated PDF will use
68
- generic fonts that may not resemble the desired styling.\n
69
- MSG
70
- end
71
- end
72
- end
73
- end