Class: Markawesome::ComparisonTransformer
- Inherits:
-
BaseTransformer
- Object
- BaseTransformer
- Markawesome::ComparisonTransformer
- Defined in:
- lib/markawesome/transformers/comparison_transformer.rb
Overview
Transforms comparison syntax into wa-comparison elements
Primary syntax: |||\n
\n
\n|||
Primary syntax with position: |||50\n
\n
\n|||
Alternative syntax: :::wa-comparison\n
\n
\n:::
Alternative syntax with position: :::wa-comparison 50\n
\n
\n:::
Expects exactly two image elements inside the wrapper
Class Method Summary collapse
Class Method Details
.render_as_markdown(content, _options = {}) ⇒ Object
41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/markawesome/transformers/comparison_transformer.rb', line 41 def self.render_as_markdown(content, = {}) content = content.gsub(/^\|\|\|(\d+)?\n(.*?)\n\|\|\|/m) do |match| images = extract_images(::Regexp.last_match(2)) images.length == 2 ? render_comparison_markdown(images) : match end content.gsub(/^:::wa-comparison\s*(\d+)?\n(.*?)\n:::/m) do |match| images = extract_images(::Regexp.last_match(2)) images.length == 2 ? render_comparison_markdown(images) : match end end |
.transform(content) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/markawesome/transformers/comparison_transformer.rb', line 13 def self.transform(content) # Process primary syntax content = content.gsub(/^\|\|\|(\d+)?\n(.*?)\n\|\|\|/m) do |match| position = Regexp.last_match(1) inner_content = Regexp.last_match(2).strip images = extract_images(inner_content) if images.length == 2 build_comparison_html(inner_content, position) else match # Return original match if not exactly 2 images end end # Process alternative syntax content.gsub(/^:::wa-comparison\s*(\d+)?\n(.*?)\n:::/m) do |match| position = Regexp.last_match(1) inner_content = Regexp.last_match(2).strip images = extract_images(inner_content) if images.length == 2 build_comparison_html(inner_content, position) else match # Return original match if not exactly 2 images end end end |