Class: Markawesome::CardTransformer
- Inherits:
-
BaseTransformer
- Object
- BaseTransformer
- Markawesome::CardTransformer
- Defined in:
- lib/markawesome/transformers/card_transformer.rb
Overview
Transforms card syntax into wa-card elements Primary syntax: ===params?ncontentn===
- Alternative syntax: :::wa-card params?ncontentn:
-
Supported attributes:
appearance: outlined (default), filled, filled-outlined, plain, accent orientation: vertical (default), horizontalCard header: first bold line (not a heading) becomes the header slot
Constant Summary collapse
- CARD_ATTRIBUTES =
{ appearance: %w[outlined filled filled-outlined plain accent], orientation: %w[vertical horizontal] }.freeze
Class Method Summary collapse
Class Method Details
.render_as_markdown(content, _options = {}) ⇒ Object
40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/markawesome/transformers/card_transformer.rb', line 40 def self.render_as_markdown(content, = {}) primary_regex = /^===([^\n]*)\n(.*?)\n===/m alternative_regex = /^:::wa-card\s*([^\n]*)\n(.*?)\n:::/m transform_proc = proc do |_params_string, card_content| parts = parse_card_content(card_content.to_s.strip) render_card_markdown(parts) end patterns = dual_syntax_patterns(primary_regex, alternative_regex, transform_proc) apply_multiple_patterns(content, patterns) end |
.transform(content) ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/markawesome/transformers/card_transformer.rb', line 20 def self.transform(content) # Define both regex patterns - capture any params primary_regex = /^===([^\n]*)\n(.*?)\n===/m alternative_regex = /^:::wa-card\s*([^\n]*)\n(.*?)\n:::/m # Define shared transformation logic transform_proc = proc do |params_string, card_content| card_content = card_content.strip attributes = AttributeParser.parse(params_string, CARD_ATTRIBUTES) card_parts = parse_card_content(card_content) build_card_html(card_parts, attributes) end # Apply both patterns patterns = dual_syntax_patterns(primary_regex, alternative_regex, transform_proc) apply_multiple_patterns(content, patterns) end |