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 +4 -4
- data/Gemfile +1 -0
- data/README.adoc +16 -3
- 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 +19 -18
- metadata +51 -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: 88924f3243331ffe69a875d04a60ba95b22a7dc2a580b3d7019f919a4b930da7
|
4
|
+
data.tar.gz: 238e5f13c374e907ab8d4245e1ac3794891c6cb24b9da0e3c4abd66c982e9c33
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e45a497c87d344efae6f3c5783ad3d1508ef405dba142adf8044d1fc77c733e2c334091bb263389d9ce4e61398ecb3ac3d3f759f4f81887293beff5e6ccf8c61
|
7
|
+
data.tar.gz: 77e5b0b96d5e7ebcb549c3f018f794998c3512165aa13ddc64974ea5ce163b32b919b593206849180a0d22d104d1a275af2be37696f21a49edeb3fec624b8d36
|
data/Gemfile
CHANGED
data/README.adoc
CHANGED
@@ -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/
|
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.]
|
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
@@ -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
|
-
|
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
|
41
|
-
spec.add_runtime_dependency
|
42
|
-
spec.add_runtime_dependency
|
43
|
-
spec.add_runtime_dependency
|
44
|
-
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"
|
45
46
|
#spec.add_runtime_dependency 'metanorma-ribose', "~> 1.6.0"
|
46
|
-
spec.add_runtime_dependency
|
47
|
-
spec.add_runtime_dependency
|
48
|
-
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"
|
49
51
|
#spec.add_runtime_dependency 'metanorma-mpfa', "~> 0.5.0"
|
50
|
-
spec.add_runtime_dependency
|
51
|
-
spec.add_runtime_dependency
|
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
|
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.
|
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-
|
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-
|
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.
|
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.
|
208
|
+
version: 1.2.0
|
195
209
|
- !ruby/object:Gem::Dependency
|
196
|
-
name: metanorma-
|
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.
|
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.
|
222
|
+
version: 1.6.0
|
209
223
|
- !ruby/object:Gem::Dependency
|
210
|
-
name: metanorma-
|
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.
|
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.
|
236
|
+
version: 1.7.0
|
223
237
|
- !ruby/object:Gem::Dependency
|
224
|
-
name: metanorma-
|
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-
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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/
|
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:
|
496
|
+
version: 1.3.1
|
496
497
|
requirements: []
|
497
498
|
rubygems_version: 3.0.3
|
498
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
|