metanorma-cli 1.3.8.1 → 1.4.1pre2

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: 91bf6eef03296f9d321401c0017c4b39583dea7b21de170c694f2de236106878
4
- data.tar.gz: 45cc3c9ae1e529d30f818205ef055ef10aee56c5b2280d01e9e2318ca9ab19b9
3
+ metadata.gz: 4a910e2812c1da05b08d76dc9bd6fda1859ef59052c8c902ce11f367bf9fd137
4
+ data.tar.gz: 32070afaf5c7b460635ae2eb9dc1343259793df5cc6e4e3bebf285310456006f
5
5
  SHA512:
6
- metadata.gz: 9449c8bc2de3dbe5a51f5587c6c475bb0af445eb395e232b69957747123a322f0dadb19f44d8b69b372c9eb0938ac98100177b98647d4ea446183ef7ab516b5f
7
- data.tar.gz: 773578d9c862b66ee11cb67e9c6071f85f92a00ff4e31fc0b8c33f0d379a5dbd37817dad45fe439913ad6f84e0958425e6bec444f257fa8cc4652964a0c4d24c
6
+ metadata.gz: 4c54fa10cf2f4131490ad9e6b030c236a4df6d91972be12ad7a0ed99d49693afc49ee14b7f91f2068655e120c38c54dc699887def94d9b9223cc2ed50ef2f299
7
+ data.tar.gz: 9330606dcef7ee362afea8218244edc79d33820e3416d04a1b7b1b02ef9f3e3dddfcdc7eab62dffe422ac03fcb57e4df86da0910f027bc00b75a43cd718db41b
@@ -228,6 +228,32 @@ Options:
228
228
  -c, [--coverpage=COVERPAGE] # Cover page as Liquid template for collection (currently HTML only)
229
229
  ----
230
230
 
231
+ === List supported doctypes (`metanorma list-doctypes`)
232
+
233
+ You want to know what are the supported doctypes and what do they support for
234
+ input and output format? Well, the `metanorma list-doctypes` can help.
235
+
236
+
237
+ [source,sh]
238
+ ----
239
+ metanorma list-doctypes
240
+ ----
241
+
242
+
243
+ To list out the details for a specific flavor run the following command:
244
+
245
+ [source,sh]
246
+ ----
247
+ metanorma list-doctypes <flavor>
248
+ ----
249
+
250
+ e.g.,
251
+
252
+ [source,sh]
253
+ ----
254
+ metanorma list-doctypes iso
255
+ ----
256
+
231
257
  === List supported output formats (`metanorma list-extensions`)
232
258
 
233
259
  Need to know what output formats are supported for a given flavor?
@@ -285,6 +311,21 @@ repository.
285
311
  metanorma template-repo add my-iso https://github.com/you/my-iso-template
286
312
  ----
287
313
 
314
+ === Generate metanorma minisite
315
+
316
+ The `site` interface allows you to manage mini site generation using the CLI.
317
+ To generate a mini site you need to provide the `SOURCE_PATH` and the CLI will
318
+ take care of compiling each of those files and generate deployable site in the
319
+ provided output directory.
320
+
321
+ This interface also supports a YAML manifest file that can be used to customize
322
+ the site generation process. You can check more details here: link:./spec/fixtures/metanorma.yml[metanorma.yml]
323
+
324
+ [source, sh]
325
+ ----
326
+ metanorma site generate SOURCE_PATH -o OUTPUT_PATH -c metanorma.yml
327
+ ----
328
+
288
329
  == Credits
289
330
 
290
331
  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
@@ -54,12 +58,16 @@ module Metanorma
54
58
  option :format, aliases: "-x", type: :string, desc: "Formats to generate"
55
59
  option "output-folder", aliases: "-w", required: true, desc: "Directory to save compiled files"
56
60
  option :coverpage, aliases: "-c", desc: "Liquid template"
61
+ option :"agree-to-terms", type: :boolean, desc: "Agree / Disagree with all third-party licensing terms presented (WARNING: do know what you are agreeing with!)"
62
+ option :"no-install-fonts", type: :boolean, desc: "Skip the font installation process"
63
+ option :"continue-without-fonts", type: :boolean, desc: "Continue processing even when fonts are missing"
57
64
 
58
65
  def collection(filename = nil)
59
66
  if filename
60
67
  opts = options.dup
61
68
  opts[:format] &&= opts[:format].split(",").map &:to_sym
62
69
  opts[:output_folder] = opts.delete :"output-folder"
70
+ opts[:compile] = opts.slice("agree-to-terms", "no-install-fonts", "continue-without-fonts").map { |k, v| [k.to_sym, v] }.to_h
63
71
  coll = Metanorma::Collection.parse filename
64
72
  coll.render opts
65
73
  else UI.say("Need to specify a file to process")
@@ -86,37 +94,23 @@ module Metanorma
86
94
  UI.say("Couldn't load #{type}, please provide a valid type!")
87
95
  end
88
96
 
89
- desc "template-repo", "Manage metanorma templates repository"
90
- subcommand :template_repo, Metanorma::Cli::Commands::TemplateRepo
97
+ desc "list-doctypes", "List supported doctypes"
98
+ def list_doctypes(type = nil)
99
+ processors = backend_processors
91
100
 
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
101
+ if type && processors[type.to_sym]
102
+ processors = { type.to_sym => processors[type.to_sym] }
117
103
  end
104
+
105
+ print_doctypes_table(processors)
118
106
  end
119
107
 
108
+ desc "template-repo", "Manage metanorma templates repository"
109
+ subcommand :template_repo, Metanorma::Cli::Commands::TemplateRepo
110
+
111
+ desc "site", "Manage site for metanorma collections"
112
+ subcommand :site, Metanorma::Cli::Commands::Site
113
+
120
114
  private
121
115
 
122
116
  def single_type_extensions(type)
@@ -145,6 +139,13 @@ module Metanorma
145
139
  end
146
140
  end
147
141
 
142
+ def backend_processors
143
+ @backend_processors ||= (
144
+ Metanorma::Cli.load_flavors
145
+ Metanorma::Registry.instance.processors
146
+ )
147
+ end
148
+
148
149
  def find_backend(type)
149
150
  load_flavours(type)
150
151
  Metanorma::Registry.instance.find_processor(type&.to_sym)
@@ -175,25 +176,24 @@ module Metanorma
175
176
  )
176
177
  end
177
178
 
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
179
  def load_flavours(type)
192
180
  Metanorma::Cli.load_flavors
193
181
  unless Metanorma::Registry.instance.find_processor(type&.to_sym)
194
182
  require "metanorma-#{type}"
195
183
  end
196
184
  end
185
+
186
+ def print_doctypes_table(processors)
187
+ table_data = processors.map do |type_sym, processor|
188
+ [
189
+ type_sym.to_s,
190
+ processor.input_format,
191
+ join_keys(processor.output_formats.keys),
192
+ ]
193
+ end
194
+
195
+ UI.table(["Type", "Input", "Supported output format"], table_data)
196
+ end
197
197
  end
198
198
  end
199
199
  end
@@ -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 "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,134 @@
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
+ @asset_folder = options.fetch(:asset_folder, "documents").to_s
12
+ @collection_name = options.fetch(:collection_name, "documents.xml")
13
+ @manifest_file = find_realpath(options.fetch(:config, default_config))
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
+ select_source_files.each { |source| compile(source) }
25
+
26
+ Dir.chdir(site_directory) do
27
+ build_collection_file(collection_name)
28
+ convert_to_html_page(collection_name, "index.html")
29
+ end
30
+ end
31
+
32
+ private
33
+
34
+ attr_reader :source, :asset_folder, :asset_directory
35
+ attr_reader :site_path, :manifest_file, :collection_name
36
+
37
+ def find_realpath(source_path)
38
+ Pathname.new(source_path.to_s).realpath if source_path
39
+ rescue Errno::ENOENT
40
+ source_path
41
+ end
42
+
43
+ def default_config
44
+ default_file = Pathname.new(Dir.pwd).join("metanorma.yml")
45
+ default_file if File.exist?(default_file)
46
+ end
47
+
48
+ def select_source_files
49
+ files = source_from_manifest
50
+
51
+ if files.empty?
52
+ files = Dir[File.join(source, "**", "*.adoc")]
53
+ end
54
+
55
+ files.flatten.uniq.reject { |file| File.directory?(file) }
56
+ end
57
+
58
+ def build_collection_file(collection_name)
59
+ collection_path = [site_path, collection_name].join("/")
60
+ UI.info("Building collection file: #{collection_path} ...")
61
+
62
+ Relaton::Cli::RelatonFile.concatenate(
63
+ asset_folder,
64
+ collection_name,
65
+ title: manifest[:collection_name],
66
+ organization: manifest[:collection_organization],
67
+ )
68
+ end
69
+
70
+ def compile(source)
71
+ UI.info("Compiling #{source} ...")
72
+
73
+ Metanorma::Cli::Compiler.compile(
74
+ source.to_s, format: :asciidoc, "output-dir" => asset_directory
75
+ )
76
+ end
77
+
78
+ def convert_to_html_page(collection, page_name)
79
+ UI.info("Generating html site in #{site_path} ...")
80
+
81
+ Relaton::Cli::XMLConvertor.to_html(collection)
82
+ File.rename(Pathname.new(collection).sub_ext(".html").to_s, page_name)
83
+ end
84
+
85
+ def manifest
86
+ @manifest ||= config_from_manifest || {
87
+ files: [], collection_name: "", collection_organization: ""
88
+ }
89
+ end
90
+
91
+ def config_from_manifest
92
+ if manifest_file
93
+ manifest_config(YAML.safe_load(File.read(manifest_file.to_s)))
94
+ end
95
+ end
96
+
97
+ def manifest_config(manifest)
98
+ {
99
+ files: extract_config_data(
100
+ manifest["metanorma"]["source"], "files"
101
+ ) || [],
102
+
103
+ collection_name: extract_config_data(
104
+ manifest["relaton"]["collection"], "name"
105
+ ),
106
+
107
+ collection_organization: extract_config_data(
108
+ manifest["relaton"]["collection"], "organization"
109
+ ),
110
+ }
111
+ rescue NoMethodError
112
+ raise Errors::InvalidManifestFileError.new("Invalid manifest file")
113
+ end
114
+
115
+ def extract_config_data(node, key)
116
+ node ? node[key] : nil
117
+ end
118
+
119
+ def source_from_manifest
120
+ @source_from_manifest ||= manifest[:files].map do |source_file|
121
+ file_path = source.join(source_file).to_s
122
+ file_path.include?("*") ? Dir.glob(file_path) : file_path
123
+ end.flatten
124
+ end
125
+
126
+ def ensure_site_asset_directory!
127
+ asset_path = [site_path, asset_folder].join("/")
128
+ @asset_directory = Pathname.new(Dir.pwd).join(asset_path)
129
+
130
+ FileUtils.mkdir_p(@asset_directory) unless @asset_directory.exist?
131
+ end
132
+ end
133
+ end
134
+ end
@@ -11,10 +11,18 @@ 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
17
21
 
22
+ def self.table(header, data)
23
+ new.print_table(data.unshift(header))
24
+ end
25
+
18
26
  def self.run(command)
19
27
  require "open3"
20
28
  Open3.capture3(command)
@@ -1,5 +1,5 @@
1
1
  module Metanorma
2
2
  module Cli
3
- VERSION = "1.3.8.1"
3
+ VERSION = "1.4.1pre2"
4
4
  end
5
5
  end
@@ -29,7 +29,6 @@ Gem::Specification.new do |spec|
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"
@@ -38,25 +37,25 @@ Gem::Specification.new do |spec|
38
37
  spec.add_development_dependency "sassc"
39
38
 
40
39
  spec.add_runtime_dependency "thor", "~> 1.0"
41
- spec.add_runtime_dependency "metanorma-iso", "~> 1.5.0"
42
- spec.add_runtime_dependency 'metanorma-ietf', "~> 2.2.0"
43
- spec.add_runtime_dependency 'metanorma-gb', "~> 1.5.0"
44
- spec.add_runtime_dependency 'metanorma-iec', "~> 1.2.0"
45
- spec.add_runtime_dependency 'metanorma-cc', "~> 1.6.0"
46
- spec.add_runtime_dependency 'metanorma-csa', "~> 1.6.0"
40
+ spec.add_runtime_dependency "metanorma-iso", "~> 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"
47
46
  #spec.add_runtime_dependency 'metanorma-ribose', "~> 1.6.0"
48
- spec.add_runtime_dependency 'metanorma-m3aawg', "~> 1.6.0"
49
- spec.add_runtime_dependency 'metanorma-generic', "~> 1.7.0"
50
- 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.2"
50
+ spec.add_runtime_dependency "metanorma-standoc", "~> 1.7.0"
51
51
  #spec.add_runtime_dependency 'metanorma-mpfa', "~> 0.5.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.2.0"
58
- 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.4.2"
58
+ spec.add_runtime_dependency "metanorma", "~> 1.2.0"
59
59
  spec.add_runtime_dependency "git", "~> 1.5"
60
60
  spec.add_runtime_dependency "relaton-cli", ">= 0.8.2"
61
- spec.add_runtime_dependency "fontist", "~> 1.3.0"
62
61
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metanorma-cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.8.1
4
+ version: 1.4.1pre2
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-11-13 00:00:00.000000000 Z
11
+ date: 2021-01-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pry
@@ -80,20 +80,6 @@ dependencies:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: 1.0.3
83
- - !ruby/object:Gem::Dependency
84
- name: equivalent-xml
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - "~>"
88
- - !ruby/object:Gem::Version
89
- version: '0.6'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - "~>"
95
- - !ruby/object:Gem::Version
96
- version: '0.6'
97
83
  - !ruby/object:Gem::Dependency
98
84
  name: rspec-core
99
85
  requirement: !ruby/object:Gem::Requirement
@@ -184,14 +170,14 @@ dependencies:
184
170
  requirements:
185
171
  - - "~>"
186
172
  - !ruby/object:Gem::Version
187
- version: 1.5.0
173
+ version: 1.6.0
188
174
  type: :runtime
189
175
  prerelease: false
190
176
  version_requirements: !ruby/object:Gem::Requirement
191
177
  requirements:
192
178
  - - "~>"
193
179
  - !ruby/object:Gem::Version
194
- version: 1.5.0
180
+ version: 1.6.0
195
181
  - !ruby/object:Gem::Dependency
196
182
  name: metanorma-ietf
197
183
  requirement: !ruby/object:Gem::Requirement
@@ -207,49 +193,49 @@ dependencies:
207
193
  - !ruby/object:Gem::Version
208
194
  version: 2.2.0
209
195
  - !ruby/object:Gem::Dependency
210
- name: metanorma-gb
196
+ name: metanorma-iec
211
197
  requirement: !ruby/object:Gem::Requirement
212
198
  requirements:
213
199
  - - "~>"
214
200
  - !ruby/object:Gem::Version
215
- version: 1.5.0
201
+ version: 1.2.0
216
202
  type: :runtime
217
203
  prerelease: false
218
204
  version_requirements: !ruby/object:Gem::Requirement
219
205
  requirements:
220
206
  - - "~>"
221
207
  - !ruby/object:Gem::Version
222
- version: 1.5.0
208
+ version: 1.2.0
223
209
  - !ruby/object:Gem::Dependency
224
- name: metanorma-iec
210
+ name: metanorma-cc
225
211
  requirement: !ruby/object:Gem::Requirement
226
212
  requirements:
227
213
  - - "~>"
228
214
  - !ruby/object:Gem::Version
229
- version: 1.2.0
215
+ version: 1.6.0
230
216
  type: :runtime
231
217
  prerelease: false
232
218
  version_requirements: !ruby/object:Gem::Requirement
233
219
  requirements:
234
220
  - - "~>"
235
221
  - !ruby/object:Gem::Version
236
- version: 1.2.0
222
+ version: 1.6.0
237
223
  - !ruby/object:Gem::Dependency
238
- name: metanorma-cc
224
+ name: metanorma-csa
239
225
  requirement: !ruby/object:Gem::Requirement
240
226
  requirements:
241
227
  - - "~>"
242
228
  - !ruby/object:Gem::Version
243
- version: 1.6.0
229
+ version: 1.7.0
244
230
  type: :runtime
245
231
  prerelease: false
246
232
  version_requirements: !ruby/object:Gem::Requirement
247
233
  requirements:
248
234
  - - "~>"
249
235
  - !ruby/object:Gem::Version
250
- version: 1.6.0
236
+ version: 1.7.0
251
237
  - !ruby/object:Gem::Dependency
252
- name: metanorma-csa
238
+ name: metanorma-m3aawg
253
239
  requirement: !ruby/object:Gem::Requirement
254
240
  requirements:
255
241
  - - "~>"
@@ -263,47 +249,47 @@ dependencies:
263
249
  - !ruby/object:Gem::Version
264
250
  version: 1.6.0
265
251
  - !ruby/object:Gem::Dependency
266
- name: metanorma-m3aawg
252
+ name: metanorma-bipm
267
253
  requirement: !ruby/object:Gem::Requirement
268
254
  requirements:
269
255
  - - "~>"
270
256
  - !ruby/object:Gem::Version
271
- version: 1.6.0
257
+ version: 1.0.0
272
258
  type: :runtime
273
259
  prerelease: false
274
260
  version_requirements: !ruby/object:Gem::Requirement
275
261
  requirements:
276
262
  - - "~>"
277
263
  - !ruby/object:Gem::Version
278
- version: 1.6.0
264
+ version: 1.0.0
279
265
  - !ruby/object:Gem::Dependency
280
266
  name: metanorma-generic
281
267
  requirement: !ruby/object:Gem::Requirement
282
268
  requirements:
283
269
  - - "~>"
284
270
  - !ruby/object:Gem::Version
285
- version: 1.7.0
271
+ version: 1.8.2
286
272
  type: :runtime
287
273
  prerelease: false
288
274
  version_requirements: !ruby/object:Gem::Requirement
289
275
  requirements:
290
276
  - - "~>"
291
277
  - !ruby/object:Gem::Version
292
- version: 1.7.0
278
+ version: 1.8.2
293
279
  - !ruby/object:Gem::Dependency
294
280
  name: metanorma-standoc
295
281
  requirement: !ruby/object:Gem::Requirement
296
282
  requirements:
297
283
  - - "~>"
298
284
  - !ruby/object:Gem::Version
299
- version: 1.6.0
285
+ version: 1.7.0
300
286
  type: :runtime
301
287
  prerelease: false
302
288
  version_requirements: !ruby/object:Gem::Requirement
303
289
  requirements:
304
290
  - - "~>"
305
291
  - !ruby/object:Gem::Version
306
- version: 1.6.0
292
+ version: 1.7.0
307
293
  - !ruby/object:Gem::Dependency
308
294
  name: metanorma-un
309
295
  requirement: !ruby/object:Gem::Requirement
@@ -380,14 +366,14 @@ dependencies:
380
366
  requirements:
381
367
  - - ">="
382
368
  - !ruby/object:Gem::Version
383
- version: 1.2.0
369
+ version: 1.4.2
384
370
  type: :runtime
385
371
  prerelease: false
386
372
  version_requirements: !ruby/object:Gem::Requirement
387
373
  requirements:
388
374
  - - ">="
389
375
  - !ruby/object:Gem::Version
390
- version: 1.2.0
376
+ version: 1.4.2
391
377
  - !ruby/object:Gem::Dependency
392
378
  name: metanorma
393
379
  requirement: !ruby/object:Gem::Requirement
@@ -430,20 +416,6 @@ dependencies:
430
416
  - - ">="
431
417
  - !ruby/object:Gem::Version
432
418
  version: 0.8.2
433
- - !ruby/object:Gem::Dependency
434
- name: fontist
435
- requirement: !ruby/object:Gem::Requirement
436
- requirements:
437
- - - "~>"
438
- - !ruby/object:Gem::Version
439
- version: 1.3.0
440
- type: :runtime
441
- prerelease: false
442
- version_requirements: !ruby/object:Gem::Requirement
443
- requirements:
444
- - - "~>"
445
- - !ruby/object:Gem::Version
446
- version: 1.3.0
447
419
  description: Executable to process any Metanorma standard.
448
420
  email:
449
421
  - open.source@ribose.com
@@ -489,12 +461,13 @@ files:
489
461
  - lib/metanorma-cli.rb
490
462
  - lib/metanorma/cli.rb
491
463
  - lib/metanorma/cli/command.rb
464
+ - lib/metanorma/cli/commands/site.rb
492
465
  - lib/metanorma/cli/commands/template_repo.rb
493
466
  - lib/metanorma/cli/compiler.rb
494
467
  - lib/metanorma/cli/errors.rb
495
468
  - lib/metanorma/cli/generator.rb
496
469
  - lib/metanorma/cli/git_template.rb
497
- - lib/metanorma/cli/setup.rb
470
+ - lib/metanorma/cli/site_generator.rb
498
471
  - lib/metanorma/cli/template_repo.rb
499
472
  - lib/metanorma/cli/ui.rb
500
473
  - lib/metanorma/cli/version.rb
@@ -518,9 +491,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
518
491
  version: 2.4.0
519
492
  required_rubygems_version: !ruby/object:Gem::Requirement
520
493
  requirements:
521
- - - ">="
494
+ - - ">"
522
495
  - !ruby/object:Gem::Version
523
- version: '0'
496
+ version: 1.3.1
524
497
  requirements: []
525
498
  rubygems_version: 3.0.3
526
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