Sha256: c50b3e779162797fec311bc7f5281541291c166247b87a6a0d170a40c1d5dc2e
Contents?: true
Size: 1.35 KB
Versions: 1
Compression:
Stored size: 1.35 KB
Contents
module MdEmoji class Render < Redcarpet::Render::HTML def preprocess(document) if include_emoji?(document) replace_emoji(document) else document end end def block_code(text, lang) "<pre><code#{%{ class="#{lang}"} if lang}>#{revert_emoji(text)}</code></pre>" end def codespan(text) "<code>#{revert_emoji(text)}</code>" end # Replaces valid emoji characters, ie :smile:, with img tags # # Valid emoji charaters are listed in +MdEmoji::EMOJI+ def replace_emoji(text) text.gsub(/:(\S+):/) do |emoji| emoji_code = emoji #.gsub("|", "_") emoji = emoji_code.gsub(":", "") if MdEmoji::EMOJI.include?(emoji) file_name = "#{emoji.gsub('+', 'plus')}.png" default_size = %{height="20" width="20"} %{<img src="/assets/emojis/#{file_name}" class="emoji" } + %{title="#{emoji_code}" alt="#{emoji_code}" #{default_size}>} else emoji_code end end end private # Returns +true+ if emoji are present in +text+, otherwise returns +false+ def include_emoji?(text) text && text[/:\S+:/] end # Replaces emoji images with plain text def revert_emoji(text) text.gsub(/<[^>]+class="emoji"\stitle="(:\S+:)"[^>]+>/) do |emoji| $1 end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
md_emoji-0.0.5 | lib/md_emoji/render.rb |