Class: Kramdown::Converter::Slack

Inherits:
Base
  • Object
show all
Defined in:
lib/kramdown/converter/slack.rb

Overview

Converts a Kramdown::Document to Slack. api.slack.com/docs/message-formatting

Defined Under Namespace

Classes: OlBulletGenerator, UlBulletGenerator

Instance Method Summary collapse

Instance Method Details

#__convert_todo(el) ⇒ Object Also known as: convert_html_element, convert_dd, convert_dl, convert_dt, convert_footnote, convert_math, convert_raw, convert_table, convert_tbody, convert_td, convert_tfoot, convert_thead, convert_tr, convert_xml_comment, convert_xml_pi



127
128
129
# File 'lib/kramdown/converter/slack.rb', line 127

def __convert_todo(el)
  inner(el)
end

#convert(el) ⇒ Object



8
9
10
11
12
13
14
15
16
# File 'lib/kramdown/converter/slack.rb', line 8

def convert(el)
  if el.type == :html_element
    converter = :"convert_html_#{el.value}"
    converter = :convert_html_element unless respond_to? converter
  else
    converter = :"convert_#{el.type}"
  end
  send(converter, el)
end

#convert_a(el) ⇒ Object Also known as: convert_html_a



72
73
74
# File 'lib/kramdown/converter/slack.rb', line 72

def convert_a(el)
  el.attr["href"]
end

#convert_blank(el) ⇒ Object Also known as: convert_br, convert_comment



32
33
34
# File 'lib/kramdown/converter/slack.rb', line 32

def convert_blank(el)
  ""
end

#convert_blockquote(el) ⇒ Object



64
65
66
# File 'lib/kramdown/converter/slack.rb', line 64

def convert_blockquote(el)
  "> #{inner(el)}"
end

#convert_codeblock(el) ⇒ Object



68
69
70
# File 'lib/kramdown/converter/slack.rb', line 68

def convert_codeblock(el)
  "```\n#{el.value}```\n\n"
end

#convert_codespan(el) ⇒ Object Also known as: convert_html_code



59
60
61
# File 'lib/kramdown/converter/slack.rb', line 59

def convert_codespan(el)
  "`#{el.value}`"
end

#convert_del(el) ⇒ Object Also known as: convert_html_del



54
55
56
# File 'lib/kramdown/converter/slack.rb', line 54

def convert_del(el)
  "~#{inner(el)}~"
end

#convert_em(el) ⇒ Object Also known as: convert_html_i, convert_html_em



48
49
50
# File 'lib/kramdown/converter/slack.rb', line 48

def convert_em(el)
  "_#{inner(el)}_"
end

#convert_entity(el) ⇒ Object



121
122
123
# File 'lib/kramdown/converter/slack.rb', line 121

def convert_entity(el)
  el.value.char
end

#convert_header(el) ⇒ Object Also known as: convert_html_h1, convert_html_h2, convert_html_h3, convert_html_h4, convert_html_h5, convert_html_h6



99
100
101
# File 'lib/kramdown/converter/slack.rb', line 99

def convert_header(el)
  "\n\n#{convert_strong(el)}\n"
end

#convert_hr(el) ⇒ Object



109
110
111
# File 'lib/kramdown/converter/slack.rb', line 109

def convert_hr(el)
  "----------------------------------------------\n\n"
end

#convert_html_br(el) ⇒ Object



38
39
40
# File 'lib/kramdown/converter/slack.rb', line 38

def convert_html_br(el)
  "\n"
end

#convert_img(el) ⇒ Object Also known as: convert_html_img



77
78
79
# File 'lib/kramdown/converter/slack.rb', line 77

def convert_img(el)
  el.attr["src"]
end

#convert_li(el) ⇒ Object Also known as: convert_html_li



94
95
96
# File 'lib/kramdown/converter/slack.rb', line 94

def convert_li(el)
  "  #{bullet.next} #{inner(el).strip}\n"
end

#convert_ol(el) ⇒ Object Also known as: convert_html_ol



88
89
90
91
# File 'lib/kramdown/converter/slack.rb', line 88

def convert_ol(el)
  @bullet = OlBulletGenerator.new
  "#{inner(el)}\n"
end

#convert_p(el) ⇒ Object



23
24
25
# File 'lib/kramdown/converter/slack.rb', line 23

def convert_p(el)
  "#{inner(el).strip.gsub(/\n/, " ")}\n\n"
end

#convert_smart_quote(el) ⇒ Object



113
114
115
# File 'lib/kramdown/converter/slack.rb', line 113

def convert_smart_quote(el)
  SMART_QUOTES.fetch(el.value)
end

#convert_strong(el) ⇒ Object Also known as: convert_html_b, convert_html_strong



42
43
44
# File 'lib/kramdown/converter/slack.rb', line 42

def convert_strong(el)
  "*#{inner(el)}*"
end

#convert_text(el) ⇒ Object Also known as: convert_abbreviation



27
28
29
# File 'lib/kramdown/converter/slack.rb', line 27

def convert_text(el)
  el.value
end

#convert_typographic_sym(el) ⇒ Object



117
118
119
# File 'lib/kramdown/converter/slack.rb', line 117

def convert_typographic_sym(el)
  TYPOGRAPHIC_SYMBOLS.fetch(el.value)
end

#convert_ul(el) ⇒ Object Also known as: convert_html_ul



82
83
84
85
# File 'lib/kramdown/converter/slack.rb', line 82

def convert_ul(el)
  @bullet = UlBulletGenerator.new
  "#{inner(el)}\n"
end

#inner(el) ⇒ Object Also known as: convert_root



18
19
20
# File 'lib/kramdown/converter/slack.rb', line 18

def inner(el)
  el.children.map { |el| convert(el) }.join
end