metanorma-plugin-lutaml 0.4.3 → 0.4.4
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/README.adoc +98 -76
- data/lib/metanorma/plugin/lutaml/liquid/multiply_local_file_system.rb +53 -0
- data/lib/metanorma/plugin/lutaml/liquid_templates/_diagrams_block.liquid +11 -0
- data/lib/metanorma/plugin/lutaml/liquid_templates/_packages.liquid +40 -29
- data/lib/metanorma/plugin/lutaml/lutaml_diagram_base.rb +2 -1
- data/lib/metanorma/plugin/lutaml/lutaml_uml_datamodel_description_preprocessor.rb +19 -15
- data/lib/metanorma/plugin/lutaml/utils.rb +3 -2
- data/lib/metanorma/plugin/lutaml/version.rb +1 -1
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 213cd8b2ecaa1b45360480fc2de787f6708b625f5370b7e7617317d77b703ee6
|
4
|
+
data.tar.gz: 396fd04d0ac3f979a6a9ee3b425988fc17af5a267b8e140438a92b73ac41dd5f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 37ad00c2a5bed4ddd9314ad99883545b526ed461e92d99de045072e900592c09798d82dc6119017a5e7656d891c1ea0cc331c844801ec2c0b4d2aae8784775aa
|
7
|
+
data.tar.gz: b8b6cb960be27fc5612c7a987250cd607ea0ae3f07dec61e44334765a64f7d5c22d245a108f2bbfdd4ec6fdc34e3b822b87fb801f70a3406611639d887ea00a9
|
data/README.adoc
CHANGED
@@ -285,31 +285,45 @@ The `lutaml_uml_datamodel_description` macro can be used:
|
|
285
285
|
-----
|
286
286
|
[lutaml_uml_datamodel_description, path/to/example.xmi]
|
287
287
|
--
|
288
|
-
--
|
289
288
|
[.before]
|
290
|
-
|
289
|
+
...
|
291
290
|
my text
|
292
|
-
|
291
|
+
...
|
292
|
+
|
293
|
+
[.diagram_include_block, base_path="requirements/"]
|
294
|
+
...
|
295
|
+
Diagram text
|
296
|
+
...
|
297
|
+
|
298
|
+
[.include_block, package="Another", base_path="spec/fixtures"]
|
299
|
+
...
|
300
|
+
my text
|
301
|
+
...
|
302
|
+
|
303
|
+
[.include_block, base_path="spec/fixtures"]
|
304
|
+
...
|
305
|
+
my text
|
306
|
+
...
|
293
307
|
|
294
308
|
[.before, package="Another"]
|
295
|
-
|
309
|
+
...
|
296
310
|
text before Another package
|
297
|
-
|
311
|
+
...
|
298
312
|
|
299
313
|
[.after, package="Another"]
|
300
|
-
|
314
|
+
...
|
301
315
|
text after Another package
|
302
|
-
|
316
|
+
...
|
303
317
|
|
304
318
|
[.after, package="CityGML"]
|
305
|
-
|
319
|
+
...
|
306
320
|
text after CityGML package
|
307
|
-
|
321
|
+
...
|
308
322
|
|
309
323
|
[.after]
|
310
|
-
|
324
|
+
...
|
311
325
|
footer text
|
312
|
-
|
326
|
+
...
|
313
327
|
--
|
314
328
|
--
|
315
329
|
-----
|
@@ -324,96 +338,104 @@ Where:
|
|
324
338
|
|
325
339
|
* `[.after, package="Another"]` - macro with text to be inserted before(after in case of `.before` name) the package
|
326
340
|
|
327
|
-
|
328
|
-
Will produce this output:
|
329
|
-
|
341
|
+
* `[.diagram_include_block]` - macro to automatically include diagram images. Attribute `base_path` is a required attribute to supply path prefix where to look for a digram image. The logic is as follows:
|
330
342
|
[source,adoc]
|
331
343
|
-----
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
==== Class Definitions
|
344
|
+
{% for diagram in package.diagrams %}
|
345
|
+
[[figure-{{ diagram.xmi_id }}]]
|
346
|
+
.{{ diagram.name }}
|
347
|
+
image::{{ image_base_path }}/{{ diagram.xmi_id }}.png[]
|
348
|
+
|
349
|
+
{% if diagram.definition %}
|
350
|
+
{{ diagram.definition | html2adoc }}
|
351
|
+
{% endif %}
|
352
|
+
{% endfor %}
|
353
|
+
-----
|
354
|
+
Eg: script will take package diagrams supplied in xmi file and will try to include `image` with the name equal to diagram' xmi_id attribute plus `.png`. Also one can add any text to the macro text, it will be added as paragraph before each image include.
|
345
355
|
|
346
|
-
.
|
347
|
-
[cols="2a,6a",options="header"]
|
348
|
-
|===
|
349
|
-
|Class |Description
|
356
|
+
* `[.diagram_include_block, package="Another"]` - same as above, but diagram will be included only for supplied package name
|
350
357
|
|
358
|
+
* `[.include_block, base_path="spec/fixtures"]` - macro to inlude files(adoc/liquid) for each package name. Attribute `base_path` is a required attribute to supply path prefix where to look for file to include. Macro will look for a file called `base_path` + `/` `_package_name`(downcase, replace : -> '', ' ' -> '_') + `.adoc`[`.liquid`], eg for package 'My Package name' and `base_path` eq to `my/path`, macro will look for the following file path: `my/path/_my_package_name.adoc`.
|
351
359
|
|
352
|
-
|
353
|
-
«»
|
354
|
-
|
|
360
|
+
* `[.include_block, package="Another", base_path="spec/fixtures"]` - same as above, but include block will be included only for supplied package name
|
355
361
|
|
356
362
|
|
357
|
-
|
358
|
-
«»
|
359
|
-
|
|
363
|
+
Will produce this output:
|
360
364
|
|
361
|
-
|
362
|
-
|
365
|
+
[source,adoc]
|
366
|
+
-----
|
367
|
+
my text
|
368
|
+
== CityGML package
|
369
|
+
=== CityGML overview
|
363
370
|
|
371
|
+
Diagram text
|
364
372
|
|
373
|
+
[[figure-EAID_ACBB5EE3_3428_40f5_9C7C_E41923419F29]]
|
374
|
+
.CityGML Package Diagram
|
375
|
+
image::requirements//EAID_ACBB5EE3_3428_40f5_9C7C_E41923419F29.png[]
|
365
376
|
|
366
|
-
|
367
|
-
[cols="2,6",options="header"]
|
368
|
-
|===
|
369
|
-
|Name |Description
|
377
|
+
BuildingFurnitureFunctionValue is a code list that enumerates the different purposes of a BuildingFurniture.
|
370
378
|
|
379
|
+
[[figure-EAID_938AE961_1C57_4052_B964_997D1894A58D]]
|
380
|
+
.Use of ISO and OASIS standards in CityGML
|
381
|
+
image::requirements//EAID_938AE961_1C57_4052_B964_997D1894A58D.png[]
|
371
382
|
|
372
|
-
|
373
|
-
|
383
|
+
The CityGML package is organized into
|
384
|
+
2 packages with 1 modules:
|
374
385
|
|
386
|
+
[arabic]
|
387
|
+
. Another package
|
388
|
+
. CityTML package
|
375
389
|
|
376
|
-
|
377
|
-
|
|
390
|
+
my text
|
378
391
|
|
379
|
-
|
380
|
-
|===
|
392
|
+
Content for CityGML package
|
381
393
|
|
394
|
+
==== Defining tables
|
382
395
|
|
396
|
+
[arabic]
|
397
|
+
.<<tab-P-another-C-abstractatomictimeseries>> -- Elements of Another::AbstractAtomicTimeseries
|
383
398
|
|
384
|
-
|
385
|
-
|
399
|
+
[[tab-P-another-C-abstractatomictimeseries]]
|
400
|
+
.Elements of Another::AbstractAtomicTimeseries
|
401
|
+
[width="100%",cols="a,a,a,a,a,a,a,a"]
|
386
402
|
|===
|
387
|
-
|Name
|
388
|
-
|
389
|
-
|
403
|
+
h|Name: 7+| AbstractAtomicTimeseries
|
404
|
+
h|Definition: 7+|
|
405
|
+
h|Stereotype: 7+| interface
|
406
|
+
h|Abstract: 7+|
|
407
|
+
.1+h|Associations: 7+| (none)
|
408
|
+
.4+h|Public attributes:
|
409
|
+
| _Name_
|
410
|
+
2+| _Definition_
|
411
|
+
| _Derived_
|
412
|
+
| _Obligation_
|
413
|
+
| _Maximum occurrence_
|
414
|
+
| _Data type_
|
415
|
+
| adeOfAbstractAtomicTimeseries
|
416
|
+
2+|
|
390
417
|
|
|
391
|
-
|
418
|
+
| C
|
419
|
+
| *
|
420
|
+
| ADEOfAbstractAtomicTimeseries
|
421
|
+
| observationProperty
|
422
|
+
2+|
|
423
|
+
|
|
424
|
+
| M
|
425
|
+
| 1
|
426
|
+
| CharacterString
|
427
|
+
| uom
|
428
|
+
2+|
|
429
|
+
|
|
430
|
+
| C
|
431
|
+
| 1
|
432
|
+
| CharacterString
|
433
|
+
h|Constraints: 7+| (none)
|
392
434
|
|===
|
393
435
|
|
394
|
-
|
395
|
-
==== Additional Information
|
396
|
-
|
397
|
-
text after Another package
|
398
|
-
|
399
|
-
|
400
|
-
=== CityGML
|
401
|
-
|
402
|
-
[[rc_citygml-model_section]]
|
403
|
-
==== CityGML
|
404
|
-
|
405
|
-
==== Requirements
|
406
|
-
|
407
|
-
==== Class Definitions
|
408
|
-
|
409
|
-
==== Additional Information
|
436
|
+
=== Additional Information
|
410
437
|
|
411
438
|
text after CityGML package
|
412
|
-
|
413
|
-
|
414
|
-
= footer
|
415
|
-
footer text
|
416
|
-
|
417
439
|
-----
|
418
440
|
|
419
441
|
In addition to just supplying XMI file, this macro also supports YAML
|
@@ -0,0 +1,53 @@
|
|
1
|
+
module Metanorma
|
2
|
+
module Plugin
|
3
|
+
module Lutaml
|
4
|
+
module Liquid
|
5
|
+
class LocalFileSystem
|
6
|
+
attr_accessor :roots, :patterns
|
7
|
+
|
8
|
+
def initialize(roots, patterns = ["_%s.liquid"])
|
9
|
+
@roots = roots
|
10
|
+
@patterns = patterns
|
11
|
+
end
|
12
|
+
|
13
|
+
def read_template_file(template_path)
|
14
|
+
full_path = full_path(template_path)
|
15
|
+
raise FileSystemError, "No such template '#{template_path}'" unless File.exist?(full_path)
|
16
|
+
|
17
|
+
File.read(full_path)
|
18
|
+
end
|
19
|
+
|
20
|
+
def full_path(template_path)
|
21
|
+
raise ::Liquid::FileSystemError, "Illegal template name '#{template_path}'" unless %r{\A[^./][a-zA-Z0-9_/]+\z}.match?(template_path)
|
22
|
+
|
23
|
+
result_path = if template_path.include?('/')
|
24
|
+
roots
|
25
|
+
.map do |root|
|
26
|
+
patterns.map do |pattern|
|
27
|
+
File.join(root, File.dirname(template_path), pattern % File.basename(template_path))
|
28
|
+
end
|
29
|
+
end
|
30
|
+
.flatten
|
31
|
+
.find { |path| File.file?(path) }
|
32
|
+
else
|
33
|
+
roots
|
34
|
+
.map do |root|
|
35
|
+
patterns.map do |pattern|
|
36
|
+
File.join(root, pattern % template_path)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
.flatten
|
40
|
+
.find { |path| File.file?(path) }
|
41
|
+
end
|
42
|
+
|
43
|
+
unless roots.any? { |root| File.expand_path(result_path).start_with?(File.expand_path(root)) }
|
44
|
+
raise ::Liquid::FileSystemError, "Illegal template path '#{File.expand_path(result_path)}'"
|
45
|
+
end
|
46
|
+
|
47
|
+
result_path
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
{{ text }}
|
2
|
+
|
3
|
+
{% for diagram in package.diagrams %}
|
4
|
+
[[figure-{{ diagram.xmi_id }}]]
|
5
|
+
.{{ diagram.name }}
|
6
|
+
image::{{ image_base_path }}/{{ diagram.xmi_id }}.png[]
|
7
|
+
|
8
|
+
{% if diagram.definition %}
|
9
|
+
{{ diagram.definition | html2adoc }}
|
10
|
+
{% endif %}
|
11
|
+
{% endfor %}
|
@@ -1,27 +1,23 @@
|
|
1
1
|
{% for package in context.packages %}
|
2
|
+
{% assign package_name = package.name | downcase | replace: ":", "" | replace: " ", "_" %}
|
3
|
+
{% if additional_context.before %}
|
4
|
+
{{ additional_context.before.text }}
|
5
|
+
{% endif %}
|
2
6
|
{% assign before_package_key = 'before;' | append: package.name %}
|
3
7
|
{% if additional_context[before_package_key] %}
|
4
|
-
{{ additional_context[before_package_key] }}
|
8
|
+
{{ additional_context[before_package_key].text }}
|
5
9
|
{% endif %}
|
6
10
|
{% assign is_package_spare = package.name | slice: 0,5 %}
|
7
11
|
{% if is_package_spare == 'old: ' %}{% continue %}
|
8
12
|
{% elsif is_package_spare == 'Spare' %}{% continue %}
|
9
13
|
{% endif %}
|
10
|
-
{% assign package_name = package.name | downcase | replace: ":", "" | replace: " ", "_" %}
|
11
14
|
|
12
15
|
{% capture equalsigns %}{% for count in (1..depth) %}={% endfor %}{% endcapture %}{{equalsigns}} {{ package.name }} package
|
13
16
|
{{equalsigns}}= {{ package.name }} overview
|
14
17
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
//.{{ diagram.name }}
|
19
|
-
//image::../../xmi-19170-only/Images/{{ diagram.xmi_id }}.png[]
|
20
|
-
//
|
21
|
-
//{% if diagram.definition %}
|
22
|
-
//{{ diagram.definition | html2adoc }}
|
23
|
-
//{% endif %}
|
24
|
-
//{% endfor %}
|
18
|
+
{% if additional_context.diagram_include_block %}
|
19
|
+
{% include "diagrams_block", package_name: package_name, image_base_path: additional_context.diagram_include_block.base_path, text: additional_context.diagram_include_block.text %}
|
20
|
+
{% endif %}
|
25
21
|
|
26
22
|
{% if package.packages.size > 0 %}The {{ package.name }} package is organized into
|
27
23
|
{{ package.packages.size }} packages{% assign modules_nested_size = 0 %}{% for module in package.packages %}{% assign modules_nested_size = modules_nested_size | plus: module.packages.size %}{% endfor %}{% if modules_nested_size > 0 %} with {{modules_nested_size}} modules{% endif %}:
|
@@ -38,7 +34,7 @@
|
|
38
34
|
{% endif %}
|
39
35
|
{% endfor %}
|
40
36
|
|
41
|
-
{% if package.classes.size > 0 %}
|
37
|
+
{% if package.classes.size > 0 or package.enums.size > 0 or package.data_types.size > 0 %}
|
42
38
|
|
43
39
|
{{equalsigns}}= Defining tables
|
44
40
|
|
@@ -83,26 +79,41 @@
|
|
83
79
|
{% include "packages_data_type" %}
|
84
80
|
{% endfor %}
|
85
81
|
|
86
|
-
|
87
|
-
// {% capture requirement_filename %}requirements/REQ_{{ package_name }}{% endcapture %}
|
88
|
-
// {% capture requirement_content %}{% include requirement_filename %}{% endcapture %}
|
89
|
-
// {% unless requirement_content contains "Liquid error" %}
|
90
|
-
// The following requirements apply:
|
91
|
-
// {{ requirement_content }}
|
92
|
-
//
|
93
|
-
// {% for num in (1..5) %}
|
94
|
-
// {% capture nested_requirement_filename %}requirements/REQ_{{ package_name }}_{{num}}{% endcapture %}
|
95
|
-
// {% capture nested_requirement_content %}{% include nested_requirement_filename %}{% endcapture %}
|
96
|
-
// {% unless nested_requirement_content contains "Liquid error" %}
|
97
|
-
// {{ nested_requirement_content }}
|
98
|
-
// {% endunless %}
|
99
|
-
// {% endfor %}
|
100
|
-
// {% endunless %}
|
82
|
+
{% endif %}
|
101
83
|
|
84
|
+
{% if additional_context.include_block %}
|
85
|
+
{% assign block = additional_context.include_block %}
|
86
|
+
{% capture block_filename %}{{ block.base_path }}/{{ package_name }}{% endcapture %}
|
87
|
+
{% capture block_content %}{% include block_filename %}{% endcapture %}
|
88
|
+
{% unless block_content contains "Liquid error" %}
|
89
|
+
{% if block.text %}
|
90
|
+
{{ block.text }}
|
91
|
+
{% endif %}
|
92
|
+
{{ block_content }}
|
93
|
+
{% endunless %}
|
102
94
|
{% endif %}
|
95
|
+
|
96
|
+
{% assign include_block_package_key = 'include_block;' | append: package.name %}
|
97
|
+
{% assign block = additional_context[include_block_package_key] %}
|
98
|
+
{% if block %}
|
99
|
+
{% capture block_filename %}{{ block.base_path }}/{{ package_name }}{% endcapture %}
|
100
|
+
{% capture block_content %}{% include block_filename %}{% endcapture %}
|
101
|
+
{% unless block_content contains "Liquid error" %}
|
102
|
+
{% if block.text %}
|
103
|
+
{{ block.text }}
|
104
|
+
{% endif %}
|
105
|
+
{{ block_content }}
|
106
|
+
{% endunless %}
|
107
|
+
{% endif %}
|
108
|
+
|
103
109
|
{% assign after_package_key = 'after;' | append: package.name %}
|
104
110
|
{{equalsigns}}= Additional Information
|
105
111
|
{% if additional_context[after_package_key] %}
|
106
|
-
{{ additional_context[after_package_key] }}
|
112
|
+
{{ additional_context[after_package_key].text }}
|
107
113
|
{% endif %}
|
114
|
+
{% if package.packages.size > 0 and render_nested_packages %}{% assign nested_depth = depth | plus: 1 %}{% include "packages", depth: nested_depth, context: package %}{% endif %}
|
108
115
|
{% endfor %}
|
116
|
+
|
117
|
+
{% if additional_context.after %}
|
118
|
+
{{ additional_context.after.text }}
|
119
|
+
{% endif %}
|
@@ -5,6 +5,7 @@ require "asciidoctor"
|
|
5
5
|
require "asciidoctor/reader"
|
6
6
|
require "lutaml"
|
7
7
|
require "lutaml/uml"
|
8
|
+
require "lutaml/formatter"
|
8
9
|
require "metanorma/plugin/lutaml/utils"
|
9
10
|
|
10
11
|
module Metanorma
|
@@ -41,7 +42,7 @@ module Metanorma
|
|
41
42
|
|
42
43
|
# if no :imagesdir: leave image file in lutaml
|
43
44
|
def generate_file(parent, _reader, uml_document)
|
44
|
-
formatter = ::Lutaml::
|
45
|
+
formatter = ::Lutaml::Formatter::Graphviz.new
|
45
46
|
formatter.type = :png
|
46
47
|
|
47
48
|
imagesdir = if parent.document.attr("imagesdir")
|
@@ -16,7 +16,6 @@ module Metanorma
|
|
16
16
|
Asciidoctor::Extensions::Preprocessor
|
17
17
|
MARCO_REGEXP =
|
18
18
|
/\[lutaml_uml_datamodel_description,([^,]+),?(.+)?\]/
|
19
|
-
SUPPORTED_NESTED_MACROSES = %w[before after].freeze
|
20
19
|
LIQUID_INCLUDE_PATH = File.join(
|
21
20
|
Gem.loaded_specs["metanorma-plugin-lutaml"].full_gem_path,
|
22
21
|
"lib", "metanorma", "plugin", "lutaml", "liquid_templates"
|
@@ -67,25 +66,30 @@ module Metanorma
|
|
67
66
|
|
68
67
|
def collect_additional_context(input_lines, end_mark)
|
69
68
|
additional_context = {}
|
69
|
+
block_lines = []
|
70
70
|
while (block_line = input_lines.next) != end_mark
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
end
|
81
|
-
additional_context[macro_keyword] = nested_context_value
|
82
|
-
.join("\n")
|
83
|
-
end
|
71
|
+
block_lines.push(block_line)
|
72
|
+
end
|
73
|
+
block_document = (Asciidoctor::Document.new(block_lines, {})).parse
|
74
|
+
block_document.blocks.each do |block|
|
75
|
+
attrs = block.attributes
|
76
|
+
name = attrs.delete('role')
|
77
|
+
package = attrs.delete('package')
|
78
|
+
macro_keyword = [name, package].compact.join(";")
|
79
|
+
additional_context[macro_keyword] = { 'text' => block.lines[1..-2].join("\n") }.merge(attrs)
|
84
80
|
end
|
85
81
|
additional_context
|
86
82
|
end
|
87
83
|
|
88
84
|
def create_context_object(lutaml_document, additional_context, options)
|
85
|
+
if options.length.zero?
|
86
|
+
return {
|
87
|
+
'render_nested_packages' => true,
|
88
|
+
"packages" => lutaml_document.to_liquid['packages'].first['packages'].first['packages'],
|
89
|
+
"additional_context" => additional_context
|
90
|
+
}
|
91
|
+
end
|
92
|
+
|
89
93
|
root_package = lutaml_document.to_liquid['packages'].first
|
90
94
|
all_packages = [root_package, *root_package['children_packages']]
|
91
95
|
{
|
@@ -143,7 +147,7 @@ module Metanorma
|
|
143
147
|
|
144
148
|
def table_template
|
145
149
|
<<~LIQUID
|
146
|
-
{% include "packages", depth: 2, context: context, additional_context: context.additional_context %}
|
150
|
+
{% include "packages", depth: 2, context: context, additional_context: context.additional_context, render_nested_packages: context.render_nested_packages %}
|
147
151
|
LIQUID
|
148
152
|
end
|
149
153
|
end
|
@@ -1,5 +1,6 @@
|
|
1
1
|
require "expressir/express/cache"
|
2
2
|
require "metanorma/plugin/lutaml/liquid/custom_filters"
|
3
|
+
require "metanorma/plugin/lutaml/liquid/multiply_local_file_system"
|
3
4
|
|
4
5
|
::Liquid::Template.register_filter(Metanorma::Plugin::Lutaml::Liquid::CustomFilters)
|
5
6
|
|
@@ -25,8 +26,8 @@ module Metanorma
|
|
25
26
|
context_name:, document:, include_path: nil)
|
26
27
|
liquid_template = ::Liquid::Template.parse(template_string)
|
27
28
|
# Allow includes for the template
|
28
|
-
|
29
|
-
liquid_template.registers[:file_system] = ::Liquid::LocalFileSystem.new(
|
29
|
+
include_paths = [Utils.relative_file_path(document, ""), include_path].compact
|
30
|
+
liquid_template.registers[:file_system] = ::Metanorma::Plugin::Lutaml::Liquid::LocalFileSystem.new(include_paths, ["_%s.liquid", "_%s.adoc"])
|
30
31
|
rendered_string = liquid_template
|
31
32
|
.render(context_name => context_items,
|
32
33
|
strict_variables: true,
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: metanorma-plugin-lutaml
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ribose Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-08-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: liquid
|
@@ -257,6 +257,8 @@ files:
|
|
257
257
|
- lib/metanorma-plugin-lutaml.rb
|
258
258
|
- lib/metanorma/plugin/lutaml/express_remarks_decorator.rb
|
259
259
|
- lib/metanorma/plugin/lutaml/liquid/custom_filters.rb
|
260
|
+
- lib/metanorma/plugin/lutaml/liquid/multiply_local_file_system.rb
|
261
|
+
- lib/metanorma/plugin/lutaml/liquid_templates/_diagrams_block.liquid
|
260
262
|
- lib/metanorma/plugin/lutaml/liquid_templates/_packages.liquid
|
261
263
|
- lib/metanorma/plugin/lutaml/liquid_templates/_packages_class.liquid
|
262
264
|
- lib/metanorma/plugin/lutaml/liquid_templates/_packages_data_type.liquid
|