317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
|
# File 'lib/markdown_composer/document_index/markdown_parser.rb', line 317
def to_immutable(document_end)
all = body_nodes + child_sections.flat_map { |child| [ child.heading_node, *child.to_immutable(document_end).all_nodes ] }
end_line = ([ heading_node&.end_line, *all.map(&:end_line) ].compact.max || start_line)
ComposerSection.new(
id: id,
source_key: source_key,
heading_node: heading_node,
level: level,
title_text: title_text,
body_nodes: body_nodes,
child_sections: child_sections,
all_nodes: all,
source_position: source_position,
parent_section_id: parent_section_id,
start_line: start_line,
end_line: [ end_line, document_end ].min
)
end
|