Class: Markbridge::Renderers::Discourse::Tag

Inherits:
Object
  • Object
show all
Defined in:
lib/markbridge/renderers/discourse/tag.rb

Overview

Base class for rendering tags Can be subclassed for complex tags or initialized with a block for simple tags

Direct Known Subclasses

Markbridge::Renderers::Discourse::Tags::AlignTag, Markbridge::Renderers::Discourse::Tags::AttachmentTag, Markbridge::Renderers::Discourse::Tags::BoldTag, Markbridge::Renderers::Discourse::Tags::CodeTag, Markbridge::Renderers::Discourse::Tags::ColorTag, Markbridge::Renderers::Discourse::Tags::EmailTag, Markbridge::Renderers::Discourse::Tags::EventTag, Markbridge::Renderers::Discourse::Tags::HeadingTag, Markbridge::Renderers::Discourse::Tags::HorizontalRuleTag, Markbridge::Renderers::Discourse::Tags::ImageTag, Markbridge::Renderers::Discourse::Tags::ItalicTag, Markbridge::Renderers::Discourse::Tags::LineBreakTag, Markbridge::Renderers::Discourse::Tags::ListItemTag, Markbridge::Renderers::Discourse::Tags::ListTag, Markbridge::Renderers::Discourse::Tags::MentionTag, Markbridge::Renderers::Discourse::Tags::ParagraphTag, Markbridge::Renderers::Discourse::Tags::PollTag, Markbridge::Renderers::Discourse::Tags::QuoteTag, Markbridge::Renderers::Discourse::Tags::SizeTag, Markbridge::Renderers::Discourse::Tags::SpoilerTag, Markbridge::Renderers::Discourse::Tags::StrikethroughTag, Markbridge::Renderers::Discourse::Tags::SubscriptTag, Markbridge::Renderers::Discourse::Tags::SuperscriptTag, Markbridge::Renderers::Discourse::Tags::TableCellTag, Markbridge::Renderers::Discourse::Tags::TableRowTag, Markbridge::Renderers::Discourse::Tags::TableTag, Markbridge::Renderers::Discourse::Tags::UnderlineTag, Markbridge::Renderers::Discourse::Tags::UploadTag, Markbridge::Renderers::Discourse::Tags::UrlTag

Instance Method Summary collapse

Constructor Details

#initialize(&block) ⇒ Tag

Initialize a tag

Parameters:

  • block (Proc, nil)

    optional block for rendering



11
12
13
# File 'lib/markbridge/renderers/discourse/tag.rb', line 11

def initialize(&block)
  @render_block = block
end

Instance Method Details

#render(element, interface) ⇒ String

Render a node to Discourse Markdown

Parameters:

Returns:

  • (String)

    the rendered markdown



19
20
21
22
23
24
25
# File 'lib/markbridge/renderers/discourse/tag.rb', line 19

def render(element, interface)
  if @render_block
    @render_block.call(element, interface)
  else
    raise NotImplementedError, "#{self.class} must implement #render or provide a block"
  end
end