Module: Markdown::Merge::LinkDefinitionFormatter
- Defined in:
- lib/markdown/merge/link_definition_formatter.rb
Overview
Formats link reference definitions for output.
Markdown parsers (especially cmark-based ones like Markly/Commonmarker)
consume link reference definitions during parsing and resolve them into
inline links. This means they don’t appear as nodes in the AST.
This formatter reconstructs the markdown syntax from LinkDefinitionNode
instances so they can be included in the merged output.
Class Method Summary collapse
-
.format(node) ⇒ String
Format a link definition node.
-
.format_all(nodes, separator: "\n") ⇒ String
Format multiple link definitions.
Class Method Details
.format(node) ⇒ String
Format a link definition node
29 30 31 32 33 34 35 36 |
# File 'lib/markdown/merge/link_definition_formatter.rb', line 29 def format(node) return node.content if node.content && !node.content.empty? # Reconstruct from components output = "[#{node.label}]: #{node.url}" output += " \"#{node.title}\"" if node.title && !node.title.empty? output end |
.format_all(nodes, separator: "\n") ⇒ String
Format multiple link definitions
43 44 45 |
# File 'lib/markdown/merge/link_definition_formatter.rb', line 43 def format_all(nodes, separator: "\n") nodes.map { |node| format(node) }.join(separator) end |