class Middleman::Gemoji::Converter
Attributes
app[R]
base_path[R]
options[R]
Public Class Methods
new(app, options)
click to toggle source
# File lib/middleman-gemoji/converter.rb, line 8 def initialize(app, options) if !app.is_a?(Middleman::Application) raise "app is not Middleman::Application" end @app = app @options = options set_base_path end
Public Instance Methods
convert(content)
click to toggle source
# File lib/middleman-gemoji/converter.rb, line 18 def convert(content) return content if content.blank? if has_body?(content) emojify_inner_body(content) else emojify(content) end end
emoji_file_exist?()
click to toggle source
# File lib/middleman-gemoji/converter.rb, line 69 def emoji_file_exist? Dir.exist?( File.join(@app.root, @app.config.source, @options[:emoji_dir], 'unicode') ) end
emojify(content)
click to toggle source
# File lib/middleman-gemoji/converter.rb, line 28 def emojify(content) content.to_str.gsub(/:([\w+-]+):/) do |match| emoji = Emoji.find_by_alias($1) if emoji image = [] image << %(alt="#{$1}") image << src(emoji.image_filename) image << size if size image << style if style %(<img class="gemoji" #{image.join(' ').strip} />) else match end end end
emojify_inner_body(content)
click to toggle source
emojify only in the body tag
# File lib/middleman-gemoji/converter.rb, line 46 def emojify_inner_body(content) pattern = /<body.+?>(.+?)<\/body>/m content.to_str.gsub(pattern) do |html| emojify(html).gsub(pattern, '\1') end end
has_body?(content)
click to toggle source
# File lib/middleman-gemoji/converter.rb, line 53 def has_body?(content) !(/<body.+?>.+?<\/body>/m =~ content.to_str).nil? end
set_base_path()
click to toggle source
# File lib/middleman-gemoji/converter.rb, line 75 def set_base_path @base_path = 'https://assets-cdn.github.com/images/icons/emoji/' if emoji_file_exist? if /^http/ =~ @app.config[:http_prefix] @base_path = File.join(app.config[:http_prefix], options[:emoji_dir]) else @base_path = File.join('/', app.config[:http_prefix], options[:emoji_dir]) end end end
size()
click to toggle source
# File lib/middleman-gemoji/converter.rb, line 61 def size %(width="#{@options[:size]}" height="#{@options[:size]}") if @options[:size] end
src(path)
click to toggle source
# File lib/middleman-gemoji/converter.rb, line 57 def src(path) %(src="#{File.join(@base_path, path)}") end
style()
click to toggle source
# File lib/middleman-gemoji/converter.rb, line 65 def style %(style="#{@options[:style]}") if @options[:style] end