metanorma 2.0.0 → 2.5.5

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.
Files changed (68) hide show
  1. checksums.yaml +4 -4
  2. data/.envrc +1 -0
  3. data/.gitignore +3 -0
  4. data/.rubocop.yml +23 -2
  5. data/Gemfile +17 -0
  6. data/Gemfile.devel +10 -0
  7. data/README.adoc +1 -1
  8. data/lib/metanorma/collection/artifact_store.rb +142 -0
  9. data/lib/metanorma/collection/collection.rb +160 -122
  10. data/lib/metanorma/collection/config/bibdata.rb +3 -3
  11. data/lib/metanorma/collection/config/compile_options.rb +4 -5
  12. data/lib/metanorma/collection/config/config.rb +81 -83
  13. data/lib/metanorma/collection/config/converters.rb +92 -8
  14. data/lib/metanorma/collection/config/directive.rb +9 -3
  15. data/lib/metanorma/collection/config/doc_container.rb +28 -0
  16. data/lib/metanorma/collection/config/manifest.rb +59 -29
  17. data/lib/metanorma/collection/config/namespaces.rb +12 -0
  18. data/lib/metanorma/collection/document/document.rb +56 -15
  19. data/lib/metanorma/collection/filelookup/filelookup.rb +185 -77
  20. data/lib/metanorma/collection/filelookup/filelookup_sectionsplit.rb +99 -27
  21. data/lib/metanorma/collection/filelookup/utils.rb +52 -0
  22. data/lib/metanorma/collection/helpers.rb +82 -0
  23. data/lib/metanorma/collection/log.rb +24 -0
  24. data/lib/metanorma/collection/manifest/manifest.rb +45 -14
  25. data/lib/metanorma/collection/multilingual/multilingual.rb +660 -0
  26. data/lib/metanorma/collection/renderer/filelocation.rb +166 -0
  27. data/lib/metanorma/collection/renderer/fileparse.rb +135 -115
  28. data/lib/metanorma/collection/renderer/fileprocess.rb +185 -37
  29. data/lib/metanorma/collection/renderer/navigation.rb +21 -7
  30. data/lib/metanorma/collection/renderer/render_word.rb +15 -10
  31. data/lib/metanorma/collection/renderer/renderer.rb +236 -32
  32. data/lib/metanorma/collection/renderer/svg.rb +107 -0
  33. data/lib/metanorma/collection/renderer/utils.rb +110 -39
  34. data/lib/metanorma/collection/sectionsplit/collection.rb +110 -0
  35. data/lib/metanorma/collection/sectionsplit/sectionsplit.rb +198 -115
  36. data/lib/metanorma/collection/util/disambig_files.rb +4 -5
  37. data/lib/metanorma/collection/util/util.rb +155 -18
  38. data/lib/metanorma/collection/xrefprocess/xrefprocess.rb +47 -33
  39. data/lib/metanorma/compile/assets/icc-boilerplate.adoc +41 -0
  40. data/lib/metanorma/compile/compile.rb +181 -156
  41. data/lib/metanorma/compile/compile_options.rb +186 -79
  42. data/lib/metanorma/compile/extract.rb +75 -58
  43. data/lib/metanorma/compile/flavor.rb +28 -0
  44. data/lib/metanorma/compile/output_filename.rb +75 -0
  45. data/lib/metanorma/compile/output_filename_config.rb +27 -0
  46. data/lib/metanorma/compile/relaton_drop.rb +56 -0
  47. data/lib/metanorma/compile/render.rb +226 -0
  48. data/lib/metanorma/compile/validator.rb +26 -0
  49. data/lib/metanorma/compile/writeable.rb +12 -0
  50. data/lib/metanorma/util/fontist_helper.rb +35 -19
  51. data/lib/metanorma/version.rb +1 -1
  52. data/lib/metanorma.rb +1 -7
  53. data/metanorma.gemspec +15 -21
  54. data/plans/collection-rendering-architecture-review.md +516 -0
  55. metadata +65 -113
  56. data/.hound.yml +0 -5
  57. data/lib/metanorma/asciidoctor_extensions/glob_include_processor.rb +0 -22
  58. data/lib/metanorma/asciidoctor_extensions.rb +0 -1
  59. data/lib/metanorma/compile/compile_validate.rb +0 -68
  60. data/lib/metanorma/config/config.rb +0 -23
  61. data/lib/metanorma/input/asciidoc.rb +0 -107
  62. data/lib/metanorma/input/base.rb +0 -9
  63. data/lib/metanorma/input.rb +0 -7
  64. data/lib/metanorma/processor/processor.rb +0 -54
  65. data/lib/metanorma/processor.rb +0 -6
  66. data/lib/metanorma/registry/registry.rb +0 -63
  67. data/lib/metanorma/shale_monkeypatch.rb +0 -15
  68. data/lib/metanorma/util/util.rb +0 -45
@@ -1,63 +0,0 @@
1
- # Registry of all Metanorma types and entry points
2
-
3
- require "singleton"
4
-
5
- class Error < StandardError
6
- end
7
-
8
- module Metanorma
9
- class Registry
10
- include Singleton
11
-
12
- attr_reader :processors
13
-
14
- def initialize
15
- @processors = {}
16
- @aliases = { csd: :cc, m3d: :m3aawg, mpfd: :mpfa, csand: :csa }
17
- end
18
-
19
- def alias(x)
20
- @aliases[x]
21
- end
22
-
23
- def register(processor)
24
- raise Error unless processor < ::Metanorma::Processor
25
-
26
- p = processor.new
27
- # p.short[-1] is the canonical name
28
- short = Array(p.short)
29
- @processors[short[-1]] = p
30
- short.each do |s|
31
- @aliases[s] = short[-1]
32
- end
33
- Array(p.short)
34
- Util.log("[metanorma] processor \"#{Array(p.short)[0]}\" registered",
35
- :info)
36
- end
37
-
38
- def find_processor(short)
39
- @processors[short.to_sym]
40
- end
41
-
42
- def supported_backends
43
- @processors.keys
44
- end
45
-
46
- def output_formats
47
- @processors.inject({}) do |acc, (k, v)|
48
- acc[k] = v.output_formats
49
- acc
50
- end
51
- end
52
-
53
- def root_tags
54
- @processors.inject({}) do |acc, (k, v)|
55
- if v.asciidoctor_backend
56
- x = Asciidoctor.load nil, { backend: v.asciidoctor_backend }
57
- acc[k] = x.converter.xml_root_tag
58
- end
59
- acc
60
- end
61
- end
62
- end
63
- end
@@ -1,15 +0,0 @@
1
- module Shale
2
- module Adapter
3
- module Nokogiri
4
- class Node
5
- def content
6
- @node
7
- end
8
-
9
- def to_xml
10
- @node.to_xml
11
- end
12
- end
13
- end
14
- end
15
- end
@@ -1,45 +0,0 @@
1
- module Metanorma
2
- module Util
3
- class << self
4
- def log(message, type = :info)
5
- log_types = Metanorma.configuration.logs.map(&:to_s) || []
6
-
7
- if log_types.include?(type.to_s)
8
- puts(message)
9
- end
10
-
11
- if type == :fatal
12
- exit(1)
13
- end
14
- end
15
-
16
- # dependency ordering
17
- def sort_extensions_execution_ord(ext)
18
- case ext
19
- when :xml then 0
20
- when :rxl then 1
21
- when :presentation then 2
22
- else
23
- 99
24
- end
25
- end
26
-
27
- def sort_extensions_execution(ext)
28
- ext.sort do |a, b|
29
- sort_extensions_execution_ord(a) <=> sort_extensions_execution_ord(b)
30
- end
31
- end
32
-
33
- def recursive_string_keys(hash)
34
- case hash
35
- when Hash then hash.map do |k, v|
36
- [k.to_s, recursive_string_keys(v)]
37
- end.to_h
38
- when Enumerable then hash.map { |v| recursive_string_keys(v) }
39
- else
40
- hash
41
- end
42
- end
43
- end
44
- end
45
- end