metanorma-document 0.2.5 → 0.2.6

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: '08953283a82f46382002daac11ebb5befc241c798702b21d189db6943ba91f46'
4
- data.tar.gz: 56e998c5b5b02599f863c29136491711f0dcb2b78da77c5c81bdc62967619e70
3
+ metadata.gz: 27e82b07d3f2f3edd230cf27c0b18671597160bca302e2f06ac848210d2a667b
4
+ data.tar.gz: ebab43042eaadc336ad64bb5d46389ff0e82262bbd9ecfa1e7035ed369219023
5
5
  SHA512:
6
- metadata.gz: acdce24a10e9919a5dd2396ed6c51a30387686671f3ec8e17125bfea76adaba020709007ff36cbbc9697e0a5c95e02155a4c8993f95406e895a2958d2d7b7bd6
7
- data.tar.gz: 3d59fb7d487a8ac32042f4827054c1f2bd301359073bf27840a215f8eae267b91130232124041cec706662e189503b0206c8449cccf57dc562ff2cc6d1104598
6
+ metadata.gz: f99ecc2897bbfef8283a6bddf89bfdb0d5a95010e2158eec5a7bc874ff5cef73f87bd317c507c5610acb30461274ad58e32693b72ed829e0efc696fc12c49d9e
7
+ data.tar.gz: 9f1fdf2062229aa79771f4cddbe7146c399a86d0474e9bf4f3a72031e1337d51c156d87dc424c614a46d216294e68f0c07987dae2ce1ebb27e763a609142654b
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Metanorma
4
4
  module Document
5
- VERSION = "0.2.5"
5
+ VERSION = "0.2.6"
6
6
  Version = VERSION
7
7
  end
8
8
  end
@@ -94,7 +94,7 @@ module Metanorma
94
94
  render_definition_list render_sourcecode render_table
95
95
  render_figure render_quote render_formula render_note
96
96
  render_image render_stem_content register_figure_entry
97
- render_liquid
97
+ render_liquid render_block_children
98
98
  ].freeze
99
99
 
100
100
  def initialize(renderer)
@@ -874,6 +874,51 @@ module Metanorma
874
874
  @output << %(<a id="#{escape_html(safe_attr(bookmark, :id).to_s)}"></a>)
875
875
  end
876
876
 
877
+ # Renders the typed child collections of a block element (paragraphs,
878
+ # lists, nested blocks) in a standard order. Used by Drops and section
879
+ # rendering to avoid duplicating the enumeration in each consumer.
880
+ #
881
+ # +children+ is a Hash mapping attr names to render-method symbols:
882
+ # { paragraphs: :render_paragraph, ul: :render_unordered_list, ... }
883
+ #
884
+ # Each key is sent to +model+ via safe_attr; non-nil results are
885
+ # dispatched to the corresponding render method.
886
+ def render_block_children(model, children:)
887
+ children.each do |attr, render_method|
888
+ values = safe_attr(model, attr)
889
+ next if values.nil?
890
+
891
+ Array(values).each { |v| public_send(render_method, v) }
892
+ end
893
+ end
894
+
895
+ # Standard child set for container blocks (example, note, etc.)
896
+ BLOCK_CHILDREN = {
897
+ paragraphs: :render_paragraph,
898
+ ul: :render_unordered_list,
899
+ ol: :render_ordered_list,
900
+ dl: :render_definition_list,
901
+ sourcecode: :render_sourcecode,
902
+ table: :render_table,
903
+ figure: :render_figure,
904
+ quote: :render_quote,
905
+ formula: :render_formula,
906
+ }.freeze
907
+
908
+ # Minimal child set for simple blocks (admonition, note with content only)
909
+ SIMPLE_CHILDREN = {
910
+ paragraphs: :render_paragraph,
911
+ }.freeze
912
+
913
+ # Note-style child set (paragraphs + lists + dl, no nested blocks)
914
+ NOTE_CHILDREN = {
915
+ paragraphs: :render_paragraph,
916
+ ul: :render_unordered_list,
917
+ ol: :render_ordered_list,
918
+ dl: :render_definition_list,
919
+ quote: :render_quote,
920
+ }.freeze
921
+
877
922
  # --- Section rendering ---
878
923
 
879
924
  def render_basic_section(section, level: 1, **_opts)
@@ -1431,7 +1476,7 @@ module Metanorma
1431
1476
  return stem.math.to_xml
1432
1477
  rescue StandardError
1433
1478
  math_items = Array(stem.math)
1434
- return math_items.map { |m| m.is_a?(Lutaml::Model::Serializable) ? m.content.to_s : m.to_s }.join
1479
+ return math_items.join
1435
1480
  end
1436
1481
  end
1437
1482
  if stem.asciimath
@@ -9,7 +9,8 @@ module Metanorma
9
9
  id = renderer.safe_attr(admonition, :id)
10
10
 
11
11
  content_html = renderer.capture_output do
12
- admonition.paragraphs&.each { |para| renderer.render_paragraph(para) }
12
+ renderer.render_block_children(admonition,
13
+ children: BaseRenderer::SIMPLE_CHILDREN)
13
14
  end
14
15
 
15
16
  new(
@@ -9,17 +9,8 @@ module Metanorma
9
9
  label = renderer.extract_block_label(example, "EXAMPLE")
10
10
 
11
11
  content_html = renderer.capture_output do
12
- if example.paragraphs && !example.paragraphs.empty?
13
- example.paragraphs.each { |para| renderer.render_paragraph(para) }
14
- end
15
- example.ul&.each { |ul| renderer.render_unordered_list(ul) }
16
- example.ol&.each { |ol| renderer.render_ordered_list(ol) }
17
- example.dl&.each { |dl| renderer.render_definition_list(dl) }
18
- example.sourcecode&.each { |sc| renderer.render_sourcecode(sc) }
19
- example.table&.each { |t| renderer.render_table(t) }
20
- example.figure&.each { |f| renderer.render_figure(f) }
21
- example.quote&.each { |q| renderer.render_quote(q) }
22
- example.formula&.each { |f| renderer.render_formula(f) }
12
+ renderer.render_block_children(example,
13
+ children: BaseRenderer::BLOCK_CHILDREN)
23
14
  end
24
15
 
25
16
  new(
@@ -14,9 +14,8 @@ module Metanorma
14
14
  else
15
15
  renderer.render_mixed_inline(note)
16
16
  end
17
- note.ul&.each { |ul| renderer.render_unordered_list(ul) }
18
- note.ol&.each { |ol| renderer.render_ordered_list(ol) }
19
- note.dl&.then { |dl| renderer.render_definition_list(dl) }
17
+ renderer.render_block_children(note,
18
+ children: BaseRenderer::NOTE_CHILDREN)
20
19
  end
21
20
 
22
21
  new(
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metanorma-document
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.5
4
+ version: 0.2.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2026-05-07 00:00:00.000000000 Z
11
+ date: 2026-05-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: lutaml-model