metanorma-cli 1.3.8.1pre → 1.4.0
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 +4 -4
- data/Gemfile +1 -0
- data/README.adoc +15 -0
- data/lib/metanorma/cli.rb +2 -9
- data/lib/metanorma/cli/command.rb +7 -41
- data/lib/metanorma/cli/commands/site.rb +26 -0
- data/lib/metanorma/cli/errors.rb +1 -0
- data/lib/metanorma/cli/site_generator.rb +130 -0
- data/lib/metanorma/cli/ui.rb +4 -0
- data/lib/metanorma/cli/version.rb +1 -1
- data/metanorma-cli.gemspec +16 -17
- metadata +23 -50
- data/lib/metanorma/cli/setup.rb +0 -73
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 612b4c15af1376248ef7a54ff2b9391644359954d06d998079955ef691946aeb
|
4
|
+
data.tar.gz: dd83cfa8bbeab98dd8699c90f0d7bbd65923afa6548436cfc87f5352e1df0133
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1ce6b2cf16551c745b456fee569ee4a58aed0c66142ee4c7b6a37cc6e57199ebf89a9fe2b725317dfd8e69e865e43e2985c87d2151fe6cd8a8fe23a85daa23b5
|
7
|
+
data.tar.gz: 7133934960cc61e6f41364b6001d77ff28f1f798cf558d606fbdcc17fe7755e960a82b084f929e5f0d1daf1bcefc858920ed7b55e05b20083470766ec1754383
|
data/Gemfile
CHANGED
data/README.adoc
CHANGED
@@ -285,6 +285,21 @@ repository.
|
|
285
285
|
metanorma template-repo add my-iso https://github.com/you/my-iso-template
|
286
286
|
----
|
287
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
|
+
|
288
303
|
== Credits
|
289
304
|
|
290
305
|
This gem is developed, maintained and funded by https://www.metanorma.com/docs/getting-started/[Ribose Inc.]
|
data/lib/metanorma/cli.rb
CHANGED
@@ -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 "
|
93
|
-
|
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
|
data/lib/metanorma/cli/errors.rb
CHANGED
@@ -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
|
data/lib/metanorma/cli/ui.rb
CHANGED
data/metanorma-cli.gemspec
CHANGED
@@ -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"
|
@@ -39,24 +38,24 @@ Gem::Specification.new do |spec|
|
|
39
38
|
|
40
39
|
spec.add_runtime_dependency "thor", "~> 1.0"
|
41
40
|
spec.add_runtime_dependency "metanorma-iso", "~> 1.5.0"
|
42
|
-
spec.add_runtime_dependency
|
43
|
-
spec.add_runtime_dependency
|
44
|
-
spec.add_runtime_dependency
|
45
|
-
spec.add_runtime_dependency
|
46
|
-
spec.add_runtime_dependency
|
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
|
49
|
-
spec.add_runtime_dependency
|
50
|
-
spec.add_runtime_dependency
|
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"
|
51
51
|
#spec.add_runtime_dependency 'metanorma-mpfa', "~> 0.5.0"
|
52
|
-
spec.add_runtime_dependency
|
53
|
-
spec.add_runtime_dependency
|
54
|
-
spec.add_runtime_dependency
|
55
|
-
spec.add_runtime_dependency
|
56
|
-
spec.add_runtime_dependency
|
57
|
-
spec.add_runtime_dependency
|
58
|
-
spec.add_runtime_dependency
|
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"
|
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.
|
4
|
+
version: 1.4.0
|
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
|
+
date: 2020-12-16 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
|
@@ -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-
|
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.
|
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.
|
208
|
+
version: 1.2.0
|
223
209
|
- !ruby/object:Gem::Dependency
|
224
|
-
name: metanorma-
|
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.
|
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.
|
222
|
+
version: 1.6.0
|
237
223
|
- !ruby/object:Gem::Dependency
|
238
|
-
name: metanorma-
|
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.
|
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.
|
236
|
+
version: 1.7.0
|
251
237
|
- !ruby/object:Gem::Dependency
|
252
|
-
name: metanorma-
|
238
|
+
name: metanorma-m3aawg
|
253
239
|
requirement: !ruby/object:Gem::Requirement
|
254
240
|
requirements:
|
255
241
|
- - "~>"
|
@@ -263,33 +249,33 @@ dependencies:
|
|
263
249
|
- !ruby/object:Gem::Version
|
264
250
|
version: 1.6.0
|
265
251
|
- !ruby/object:Gem::Dependency
|
266
|
-
name: metanorma-
|
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.
|
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.
|
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.
|
271
|
+
version: 1.8.0
|
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.
|
278
|
+
version: 1.8.0
|
293
279
|
- !ruby/object:Gem::Dependency
|
294
280
|
name: metanorma-standoc
|
295
281
|
requirement: !ruby/object:Gem::Requirement
|
@@ -380,14 +366,14 @@ dependencies:
|
|
380
366
|
requirements:
|
381
367
|
- - ">="
|
382
368
|
- !ruby/object:Gem::Version
|
383
|
-
version: 1.
|
369
|
+
version: 1.3.0
|
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.
|
376
|
+
version: 1.3.0
|
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/
|
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:
|
496
|
+
version: '0'
|
524
497
|
requirements: []
|
525
498
|
rubygems_version: 3.0.3
|
526
499
|
signing_key:
|
data/lib/metanorma/cli/setup.rb
DELETED
@@ -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
|