Class: Slamdown::Conversion::Rendering::Strategy::Kramdown

Inherits:
Base
  • Object
show all
Defined in:
lib/slamdown/conversion/rendering/strategy.rb

Overview

Adds Kramdown IALs and emits native definition-list syntax while sharing all ordinary rendering primitives.

Constant Summary collapse

IAL_TOKEN =
/\A[A-Za-z_][A-Za-z0-9_-]*\z/.freeze

Instance Method Summary collapse

Methods inherited from Base

#escape_link_ampersands?, #pad_space_bounded_code_span?

Instance Method Details

#decorate_block(node, syntax) ⇒ Object



113
114
115
116
# File 'lib/slamdown/conversion/rendering/strategy.rb', line 113

def decorate_block(node, syntax)
	attribute_list = ial(node)
	attribute_list ? "#{syntax}\n#{attribute_list}" : syntax
end

#decorate_inline(node, syntax) ⇒ Object



108
109
110
111
# File 'lib/slamdown/conversion/rendering/strategy.rb', line 108

def decorate_inline(node, syntax)
	attribute_list = ial(node)
	attribute_list ? syntax + attribute_list : syntax
end

#escape_definition_marker?Boolean

Returns:

  • (Boolean)


104
105
106
# File 'lib/slamdown/conversion/rendering/strategy.rb', line 104

def escape_definition_marker?
	true
end

#html_for_space_bounded_code_span?Boolean

Returns:

  • (Boolean)


100
101
102
# File 'lib/slamdown/conversion/rendering/strategy.rb', line 100

def html_for_space_bounded_code_span?
	true
end

#render_definition_list(renderer, node) ⇒ Object



118
119
120
121
122
123
124
125
126
127
128
# File 'lib/slamdown/conversion/rendering/strategy.rb', line 118

def render_definition_list(renderer, node)
	groups = definition_groups(node).map do |terms, descriptions|
		lines = terms.map { |term| renderer.render_inlines(term.children, :line_start => true).strip }
		descriptions.each do |description|
			content = renderer.render_container_contents(description)
			lines << prefix_lines(content, ": ", "  ")
		end
		lines.join("\n")
	end
	decorate_block(node, groups.join("\n\n"))
end